如何在 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 从立体声转换为单声道?的主要内容,如果未能解决你的问题,请参考以下文章

ue4 将音频从 48 立体声转换为 16 单声道

在 Python 中用 24 位数据从立体声 wav 文件 wav 中读取单个通道的数据

Python将立体声.flac转换为单声道

如何在 iOS 中将 2 个单声道文件转换为一个立体声文件?

如何以编程方式在 Android 中将 .mid 转换为 .wav 文件?

如何在 Node JS 中将原始 PCM 流转换为 Discord 机器人的 opus 或 wav 流?