【发布时间】:2018-01-24 04:36:20
【问题描述】:
如何在 Python 中将 4 声道立体声文件转换为单声道,最好使用 pydub?提前致谢
【问题讨论】:
-
请注意:四个声道不是立体声 - 立体声是两个声道(左声道和右声道)。 4 声道音频的术语是“quadropphonic”
如何在 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)
据我了解文档,“参数”的值基于 ffmpeg 文档 (audio options)。因此,您可以使用 ffmpeg 中的所有参数。在这里,我只是将音频通道数设置为 1。
【讨论】:
除了@Patrice 回答,根据githubpydub repo 上的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接受参数并进行相应处理。
我没有“quadropphonic”音频样本来测试这个“理论”,如果你可以上传到你的github问题跟踪器,上面可以测试。
告诉我。
【讨论】: