使用Ruby,PHP或Python进行音频水印

时间:2011-10-07 15:47:58

标签: php python ruby audio watermark

我正在开发一个项目,我需要以各种格式对一堆音频文件进行后期处理。

  • 首先,需要将文件转换为.WAV格式。
  • 其次,根据长度,我需要在每个新的.WAV文件中以特定间隔插入一个短的可听水印。

第一部分很简单,使用LAME编码器cli。 第二部分是困难的地方 - 我已经尝试了一些LAME和FFmpeg的方法,但似乎无法让它工作。

该脚本在后台作为cron作业运行,因此可以使用完整的cli访问。

如果可能的话,如果有人可以指向一个示例脚本/ gem或以某种相关方式执行此操作的类,那将会很棒。

2 个答案:

答案 0 :(得分:1)

这变得复杂了。你需要实际混合音频,据我所知,这是不可能与FFMPEG。如果您使用MP3,将其转换为WAV以便您可以使用它并将其重新编码回MP3,那么您将遇到的另一个问题是质量下降。

我认为您可以使用Sox:http://sox.sourceforge.net/

首先使用FFMPEG将音频解码为WAV,根据需要调整采样率和位深度。

然后,呼叫soxmixhttp://linux.die.net/man/1/soxmix

答案 1 :(得分:1)

如果您已准备好采用Python路由,我建议SciPy,它可以将WAV文件读入NumPy数组:

from scipy.io import wavfile
fs, data = wavfile.read(filename)

official documentation包含详细信息)。

可以通过NumPy的数组操作例程方便地操作声音。

然后,

scipy.io.wavfile可以将文件写回WAV格式。

SciPy和NumPy是一般科学数据工具。更多music-centric Python modules可以在官方网站上找到。