如何在 Python 中将 WAV 从立体声转换为单声道?

Posted

技术标签:

【中文标题】如何在 Python 中将 WAV 从立体声转换为单声道?【英文标题】:How can I convert a WAV from stereo to mono in Python? 【发布时间】:2011-07-04 11:33:58 【问题描述】:

我不想使用任何其他应用程序(如 sox) - 我想在纯 Python 中执行此操作。安装所需的 Python 库就可以了。

【问题讨论】:

【参考方案1】:

如果 WAV 文件是 PCM 编码的,那么您可以使用 wave。打开源文件和目标文件,读取样本,平均通道,然后写出。

【讨论】:

在我的尝试中似乎不再安装,但能够让 Jiaaro 的 pydub 工作。 没有什么要安装的。它带有 Python。 不需要设置参数。它们将从文件中读取。【参考方案2】:

我维护了一个开源库pydub,它使这变得非常简单

from pydub import Audiosegment
sound = AudioSegment.from_wav("/path/to/file.wav")
sound = sound.set_channels(1)
sound.export("/output/path.wav", format="wav")

一个警告:它使用 ffmpeg 来处理音频格式转换,但如果你只使用 wav 它可以是纯 python。

【讨论】:

谢谢!当然应该 set_channels(1) 用于立体声->单声道? 我喜欢简洁的包装。尝试在单声道输出上使用 Google Speech API。与使用 scipy 拆分通道相比,使用 pydub 的转录较低。虽然没有经过系统测试。

以上是关于如何在 Python 中将 WAV 从立体声转换为单声道?的主要内容,如果未能解决你的问题,请参考以下文章