我该如何使用Python将4通道立体声文件转换为单声道,最好使用pydub?谢谢。
根据pydub文档,我认为您可以尝试类似以下的代码:
from pydub import AudioSegment
song = AudioSegment.from_wav("example.wav") #read wav
song.export("out.wav", parameters=["-ac", "1"]) # export wav (1 channel)
github
pydub
仓库上的这个讨论,如果格式是wav
,则导出将返回没有执行带参数的ffmpeg
。您可能需要修改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
接受参数并相应处理。
我没有一个“四声道”音频样本来测试这个“理论”,如果你可以上传到你的 github
问题跟踪器,上面可以进行测试。让我知道。