Python 如何使用pydub库从mp3文件生成带有G.711alaw的wav?

Python 如何使用pydub库从mp3文件生成带有G.711alaw的wav?,python,audio,audio-streaming,pydub,Python,Audio,Audio Streaming,Pydub,我试图生成一个wav文件与压缩从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"

我试图生成一个wav文件与压缩从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")
    

  • 第二个工作正常。第一个是bt当我试图在audacity中打开转换后的文件时,它说它的文件无效。