我正在尝试使用python脚本转换一些音频文件。源文件夹包含.wav
和.aiff
个音频文件,具有不同的比特率和采样率。
INPUT文件示例
我需要将所有音频文件转换为 mono 16bit 44.1khz .wav
输出文件示例
目前,我已成功使用pysoundfile库打开并将.wav
个文件转换为PCM_16
类型。
我不知道该怎么办,将.aiff
个文件转换为.wav
个文件。
我知道Python使用.aiff
库处理aifc
个文件,但它似乎不包含任何类型的转换功能。
我该怎么做?
答案 0 :(得分:0)
免责声明:可能这不是您正在寻找的答案,因为它不是“仅限Python”;但是,当我尝试在大型Python脚本中处理媒体文件时,我发现这种方法比搜索和阅读我需要的每种媒体格式的一堆库的文档更容易。
安装媒体转换器(例如,我使用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个音轨,也就是说,我们转换为单声道。)您也可以用类似的方式从任何视频格式中提取音频。
答案 1 :(得分:0)
这不是问题。您正在使用的soundfile
模块确实支持开箱即用的AIFF文件。只需指定文件名就可以了!
您可以使用函数soundfile.available_formats()获取支持的格式列表。
soundfile
模块使用了引擎盖下的libsndfile
库。他们的主页上有一个list of supported formats(包含AIFF)。
就像@Wolfram提到的那样,你当然也可以使用FFmpeg。 另一个出色的音频转换外部工具是SoX。