用Ruby、PHP或Python进行音频水印处理
我正在做一个项目,需要对一堆不同格式的音频文件进行后期处理。
- 首先,这些文件需要转换成 .WAV 格式。
- 其次,根据文件的长度,我需要在每个新的 .WAV 文件的特定间隔插入一个短的可听水印。
第一步比较简单,可以使用 LAME 编码器的命令行工具来完成。第二步就比较复杂了——我尝试过用 LAME 和 FFmpeg 的几种方法,但就是无法搞定。
这个脚本是在后台作为定时任务运行的,所以可以完全使用命令行。
如果有人能给我指个方向,推荐一个示例脚本、库或者类,能实现这个功能,那就太好了。
2 个回答
1
如果你准备好使用Python来处理音频文件,我建议你试试SciPy,它可以把WAV文件读取成NumPy数组:
from scipy.io import wavfile
fs, data = wavfile.read(filename)
(你可以在官方文档里找到详细信息。)
通过NumPy的数组操作功能,你可以方便地处理声音数据。
然后,scipy.io.wavfile可以把处理后的文件再写回WAV格式。
SciPy和NumPy是一些通用的科学数据处理工具。你还可以在官方网站上找到更多与音乐相关的Python模块。
1
这事儿有点复杂。你需要真正地混合音频,而根据我所知道的,FFMPEG 这个工具是做不到的。还有一个问题是,如果你把 MP3 格式的音频转换成 WAV 格式来处理,然后再转回 MP3,音质会下降。
我觉得你可以试试 Sox 这个工具:http://sox.sourceforge.net/
首先,用 FFMPEG 把音频解码成 WAV 格式,必要时调整采样率和位深度。
然后,调用 soxmix
:http://linux.die.net/man/1/soxmix