哪些实用脚本能简化音频处理?

wen 实用脚本 5

本文目录导读:

哪些实用脚本能简化音频处理?

  1. 批量格式转换(使用 FFmpeg)
  2. 静音检测与剪切(使用 SoX)
  3. 音频降噪(使用 noise-repellent)
  4. 批量调整音量增益(使用 FFmpeg)
  5. 音频拼接(使用 FFmpeg)
  6. 从视频中提取音频(使用 FFmpeg)
  7. 实时录音与语音识别(使用 Python)
  8. 音频指纹识别(用于自动化标签管理)
  9. 注意事项

批量格式转换(使用 FFmpeg)

场景:将大量音频从一种格式转换为另一种(如 WAV 转 MP3、FLAC 转 AAC)。

Bash 脚本(Linux/macOS)

#!/bin/bash
for file in *.wav; do
    ffmpeg -i "$file" -codec:a libmp3lame -qscale:a 2 "${file%.wav}.mp3"
done

PowerShell(Windows)

Get-ChildItem *.wav | ForEach-Object {
    ffmpeg -i $_.Name -codec:a libmp3lame -qscale:a 2 ($_.BaseName + ".mp3")
}

说明-qscale:a 控制 MP3 质量(0-9,0 最高)。


静音检测与剪切(使用 SoX)

场景:自动检测并移除音频文件中的静音段落。

Bash 脚本

#!/bin/bash
for file in *.mp3; do
    sox "$file" "trimmed_$file" silence -l 1 0.1 1% -1 2.0 1%
done

参数说明

  • -l 1 0.1 1%:删除开头持续 0.1 秒且音量低于 1% 的静音。
  • -1 2.0 1%:删除结尾持续 2 秒且音量低于 1% 的静音。

音频降噪(使用 noise-repellent)

场景:去除背景噪音(如风扇声、环境音)。

Python 脚本(需安装 noisereducelibrosa

import noisereduce as nr
import soundfile as sf
import librosa
# 加载音频
audio, sr = librosa.load("noisy.wav", sr=None)
# 假设前 1 秒为纯噪音样本
noise_part = audio[:int(sr * 1)]
# 降噪
reduced_noise = nr.reduce_noise(y=audio, sr=sr, y_noise=noise_part)
# 保存
sf.write("clean.wav", reduced_noise, sr)

批量调整音量增益(使用 FFmpeg)

场景:统一多个音频文件的音量(归一化到 -14 LUFS)。

Bash 脚本

#!/bin/bash
for file in *.wav; do
    ffmpeg -i "$file" -filter:a loudnorm "normalized_$file"
done

说明loudnorm 滤波器会根据 EBU R128 标准归一化响度。


音频拼接(使用 FFmpeg)

场景:将多个音频文件按顺序合并为一个。

Bash 脚本

#!/bin/bash
# 创建文件列表
for f in *.wav; do echo "file '$f'" >> filelist.txt; done
# 拼接
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.wav
rm filelist.txt

从视频中提取音频(使用 FFmpeg)

场景:批量从视频文件提取音频。

Bash 脚本

#!/bin/bash
for file in *.mp4; do
    ffmpeg -i "$file" -vn -acodec mp3 "${file%.mp4}.mp3"
done

实时录音与语音识别(使用 Python)

场景:录制麦克风输入并转换为文本。

Python 脚本(需安装 speech_recognitionpyaudio

import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
    print("请说话...")
    audio = r.listen(source)
# 使用 Google 语音识别
try:
    text = r.recognize_google(audio, language='zh-CN')
    print("识别结果:", text)
except sr.UnknownValueError:
    print("无法识别")

音频指纹识别(用于自动化标签管理)

场景:识别未知音乐文件并添加元数据。

Python 脚本(使用 pyacoustid

import acoustid
import mutagen
# 获取音频指纹
duration, fingerprint = acoustid.fingerprint_file("unknown.mp3")
# 查询 AcoustID 数据库
results = acoustid.lookup(fingerprint)
# 假设第一个结果包含元数据
artist = results['results'][0]['recordings'][0]['artists'][0]['name']= results['results'][0]['recordings'][0]['title']
# 使用 mutagen 写入标签
audio = mutagen.File("unknown.mp3")
audio['TPE1'] = mutagen.id3.TPE1(encoding=3, text=artist)
audio.save()

注意事项

  • 安装依赖:大部分脚本需要安装 FFmpeg、SoX、Python 库等。
  • 错误处理:生产环境中建议加入异常捕获和日志。
  • 性能:处理大量文件时用 multiprocessingsubprocess 并行化。

这些脚本可以直接复用或根据具体需求调整参数,如果需要处理特定任务(如立体声转单声道、变速不变调),可以进一步细化。

抱歉,评论功能暂时关闭!