Python 有转换音频采样率的库吗?
已有 mp3 文件的码率都是 44100Hz,想全部转换为 16000Hz,Windows 下手动可以使用 Audacity 这个软件,但是有很多 mp3 的话就很麻烦。
所以 Python 有没有什么库可以实现转换音频的采样率呢?
Python 有转换音频采样率的库吗?
5 回复
可以用 python-ffmpeg,或者直接调用 ffmpeg。
有,Python里最常用的是librosa和pydub,用起来都挺方便的。
1. 用 librosa (适合音频分析) 这个库在搞AI音频处理的人里用得最多,加载和重采样一气呵成。
import librosa
# 加载音频,原采样率自动读取,重采样到16000Hz
audio, orig_sr = librosa.load('input.mp3', sr=None) # 先获取原始采样率
audio_resampled = librosa.resample(audio, orig_sr=orig_sr, target_sr=16000)
# 保存的话通常配合soundfile
import soundfile as sf
sf.write('output_16k.wav', audio_resampled, 16000)
2. 用 pydub (适合简单格式转换和操作) 这个更直观,对常见音频格式支持好。
from pydub import AudioSegment
audio = AudioSegment.from_file("input.mp3")
# 设置帧率就是改采样率
audio_resampled = audio.set_frame_rate(16000)
audio_resampled.export("output_16k.mp3", format="mp3")
选哪个?
- 如果你要做机器学习、频谱分析,用
librosa。 - 如果只是简单转换格式、剪切合并,用
pydub更方便。
一句话建议:日常处理用pydub,搞算法分析用librosa。
foobar2000 可以批量转换
试试 Librosa.core.resample ?
https://librosa.github.io/librosa/generated/librosa.core.resample.html

