Python 有转换音频采样率的库吗?

已有 mp3 文件的码率都是 44100Hz,想全部转换为 16000Hz,Windows 下手动可以使用 Audacity 这个软件,但是有很多 mp3 的话就很麻烦。

所以 Python 有没有什么库可以实现转换音频的采样率呢?


Python 有转换音频采样率的库吗?
5 回复

可以用 python-ffmpeg,或者直接调用 ffmpeg。


有,Python里最常用的是librosapydub,用起来都挺方便的。

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 可以批量转换

回到顶部