如何在Python中将4声道立体声文件转换为单声道,最好使用pydub?提前感谢
发布于 2018-01-24 20:18:29
从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。
发布于 2018-01-26 00:05:28
除了@Patrice之外,根据github pydub存储库上的this discussion,如果格式为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问题跟踪器,上面可以测试。让我知道。
https://stackoverflow.com/questions/48414889
复制相似问题