如何在Python中将4声道立体声文件转换为单声道,最好使用pydub?提前致谢
答案 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
问题跟踪器,则可以测试以上内容。
让我知道。