我正在尝试生成一个 wav 文件 G. 711 alaw使用 Pydub 从 mp3 文件压缩扩展图书馆。正在生成 wav 文件,但未将其重新采样到频率 8 kHz。我尝试过以下代码:
from_path = '/home/nikhil/Music/m1.mp3' #this is a mp3 file
to_path = '/home/nikhil/Music/m1.wav' #resulted file
from_format = 'mp3'
to_format = 'wav'
params = ["-acodec", "pcm_alaw", "-ar", "8000"]
AudioSegment.from_file(from_path, from_format).export(to_path, format=to_format, parameters=params)
有人可以帮助我吗?
最佳答案
我查看了导出方法中的代码,我意识到当输出格式为“wav”时不使用ffmpeg。
由于 wav 在内部使用,它只是将音频的内存版本直接写入磁盘(这样做是为了使 ffmpeg 成为可选依赖项,如果您只需要 wav 支持,则无需安装它)。
我有两个想法可以帮助您解决这个问题:
使用不同格式的 kwarg,例如“pcm”。我不确定这是否有效,而且我当前的机器上没有 ffmpeg 可供测试,但绝对值得一试。
from_path = '/home/nikhil/Music/m1.mp3' #this is a mp3 file to_path = '/home/nikhil/Music/m1.wav' #resulted file from_format = 'mp3' to_format = 'pcm' params = ["-acodec", "pcm_alaw", "-ar", "8000"] AudioSegment.from_file(from_path, from_format).export(to_path, format=to_format, parameters=params)
使用 pydub 的内部机制重采样到 8kHz:同样,我目前无法测试这一点...
from_path = '/home/nikhil/Music/m1.mp3' #this is a mp3 file to_path = '/home/nikhil/Music/m1.wav' #resulted file seg = AudioSegment.from_mp3(from_path) seg = seg.set_frame_rate(8000) seg.export(to_path, format="wav")
关于python - 如何使用 pydub 库从 mp3 文件生成带有 G.711alaw 的 wav?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300725/