4

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

4

2 回答 2

3

从 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 文档(音频选项)。因此,您可以使用 ffmpeg 中的所有参数。在这里,我只是将音频通道数设置为 1。

于 2018-01-24T12:18:29.180 回答
1

除了@Patrice 的回答,根据关于repo 的讨论github pydub,如果 format 为,则导出返回而不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接受参数并进行相应的处理。

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

于 2018-01-25T16:05:28.200 回答