我正在尝试使用python脚本转换一些音频文件。源文件夹包含.wav和.aiff音频文件,具有不同的比特率和采样率。
输入文件示例

我需要将所有音频文件转换为单16位44.1khz .wav
输出文件示例

目前,我成功地使用放音文件库打开并将.wav文件写入/转换为PCM_16类型。
我不知道如何将.aiff文件转换为.wav文件。
我知道Python使用.aiff库处理aifc文件,但它似乎不包含任何类型的转换功能。
我怎么能这么做?
发布于 2016-12-18 23:47:33
免责声明:可能不是您想要的答案,因为它并不是“仅限Python”;然而,当我尝试使用一个大型的脚本处理媒体文件时,我发现这个方法比为我所需要的每种媒体格式搜索和阅读一堆库的文档更容易。
安装一个媒体转换器(f.e.,我使用FFmpeg),它的命令可以从Windows命令行或Linux终端执行。然后可以从Python脚本调用这些命令:
from subprocess import call
call('ffmpeg -i D:/Audio/IN/sample.aiff -acodec pcm_s16le -ac 1 -ar 44100 D:/Audio/OUT/sample.wav')(这里'-ac 1‘是指1声道,也就是说,我们转换为单声道。)您也可以从任何视频格式以类似的方式提取音频。
发布于 2016-12-19 07:39:47
这不是问题。您已经使用的soundfile模块确实支持AIFF文件的开箱即用.只需指定文件名,您就完成了!
您可以使用函数格式()获取支持的格式列表。soundfile模块使用遮罩下的libsndfile库。他们的主页上有一个支持的格式列表 (其中包含AIFF)。
正如@Wolfram所提到的,您当然也可以使用FFmpeg。另一个很好的外部音频转换工具是SoX。
https://stackoverflow.com/questions/41213423
复制相似问题