如何在Python中将4声道立体声文件转换为单声道

时间:2018-01-24 04:36:21

标签: audio pydub

如何在Python中将4声道立体声文件转换为单声道,最好使用pydub?提前致谢

2 个答案:

答案 0 :(得分:1)

从pydub文档中,我想你可以尝试类似的东西:

from pydub import AudioSegment 

song = AudioSegment.from_wav("example.wav") #read wav
song.export("out.wav", parameters=["-ac", "1"])             # export wav (1 channel)

据我了解文档,"参数"的值基于ffmpeg文档(audio options)。所以你可以使用ffmpeg的所有参数。在这里,我只是将音频通道的数量设置为1。

答案 1 :(得分:1)

除了@Patrice回答,根据github pydub repo上的this discussion,如果格式为ffmpeg,导出会返回而不会使用参数执行wav

您可能需要修改pydub.AudioSegment,如下所示,ffmpeg实际执行导出时提供的可选参数。

更改第600行

if format == "wav":
    data = out_f
else:
    data = NamedTemporaryFile(mode="wb", delete=False)

为:

if format == "wav" and parameters is None:
        data = out_f
    else:
        data = NamedTemporaryFile(mode="wb", delete=False)

第616行:

 if format == 'wav':
            return out_f

为:

 if format == 'wav' and parameters is None:
            return out_f

然后ffmpeg会相应地接受参数和流程。

我没有“quadrophonic”音频样本来测试这个“理论”,如果你可以上传到你的github问题跟踪器,则可以测试以上内容。 让我知道。