首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中将4声道立体声文件转换为单声道

如何在Python中将4声道立体声文件转换为单声道
EN

Stack Overflow用户
提问于 2018-01-24 12:36:21
回答 2查看 1.7K关注 0票数 4

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

EN

回答 2

Stack Overflow用户

发布于 2018-01-24 20:18:29

从pydub文档中,我想你可以尝试这样的东西:

代码语言:javascript
复制
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。

票数 3
EN

Stack Overflow用户

发布于 2018-01-26 00:05:28

除了@Patrice之外,根据github pydub存储库上的this discussion,如果格式为wav,则导出返回时不会执行带参数的ffmpeg

您可能需要如下所示修改pydub.AudioSegment,以便ffmpeg使用导出中提供的可选参数实际执行。

更改第600行

代码语言:javascript
复制
if format == "wav":
    data = out_f
else:
    data = NamedTemporaryFile(mode="wb", delete=False)

至:

代码语言:javascript
复制
if format == "wav" and parameters is None:
        data = out_f
    else:
        data = NamedTemporaryFile(mode="wb", delete=False)

和第616行:

代码语言:javascript
复制
 if format == 'wav':
            return out_f

至:

代码语言:javascript
复制
 if format == 'wav' and parameters is None:
            return out_f

然后,ffmpeg接受参数并进行相应的处理。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48414889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档