0

我正在尝试制作/创建一个 5.1 和一个 7.1 环绕声文件,但我很难找到一种方法来做到这一点。我正在使用 ubuntu 12.04,并且可以访问 octave / matlab / python。我了解如何在 octave / matlab / python 中创建音频文件,但不确定如何为 5.1 和 7.1 环绕文件创建正确的文件格式。

4

2 回答 2

1

我相信 Vorbis 是唯一支持环绕声的免费声音编解码器。曾经有一些python项目可以处理这种格式,但它们似乎不再维护了。

您可以尝试浏览这些旧项目(即pyvorbis)。

或者,您可以尝试使用这个matlab 项目,看看一个普通的 6 通道 vorbis 文件是否适用于 5.1 环绕声(快速浏览一下规范让我认为它应该)。

于 2012-07-18T18:15:36.220 回答
0

如果您能够创建 6 个(用于 5.1)或 8 个(7.1)单独的单声道音频文件,每个扬声器一个(front_left.wav、front_center.wav、...),您可以使用以下命令行加入它们:

ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-BL|5.0-BR[a]" -map "[a]" output.wav

此行来自https://trac.ffmpeg.org/wiki/AudioChannelManipulation,其中包含其他几个有用的频道操作示例。LFE(低频效果)是指低音炮。ffmpeg可用于 Windows、Mac 和 Linux(例如作为同名的 Debian 软件包)。

如果您想直接从 Python 创建多声道音频文件,请查看pydub包(它在后台使用 ffmpeg 库)。

要探测给定的音频文件是否具有多声道内容,您可以使用ffprobeffmpeg 套件:

ffprobe -hide_banner output.wav 

其中显示例如:

Input #0, wav, from 'output.wav':
  Metadata:
    encoder         : Lavf58.20.100
  Duration: 00:00:01.28, bitrate: 1536 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, 5.1, s16, 1536 kb/s
于 2020-10-06T21:35:20.983 回答