【问题标题】:How do I convert a 4 channel stereo file to mono in Python如何在 Python 中将 4 声道立体声文件转换为单声道
【发布时间】:2018-01-24 04:36:20
【问题描述】:

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

【问题讨论】:

  • 请注意:四个声道不是立体声 - 立体声是两个声道(左声道和右声道)。 4 声道音频的术语是“quadropphonic”

标签: audio pydub


【解决方案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。

【讨论】:

    【解决方案2】:

    除了@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问题跟踪器,上面可以测试。 告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      相关资源
      最近更新 更多