使用 Ruby、PHP 或 Python 添加音频水印
我正在开发一个项目,需要对一堆各种格式的音频文件进行后处理。
- 首先,文件需要转换为.WAV 格式。
- 其次,根据它们的长度,我需要在每个新的 .WAV 文件中以一定的间隔插入一个短的声音水印。
第一部分很简单,使用 LAME 编码器 cli。 第二部分是它变得困难的地方 - 我已经尝试了一些使用 LAME 和 FFmpeg 的方法,但似乎无法让它工作。
该脚本在后台作为 cron 作业运行,因此可以使用完整的 cli 访问权限。
如果可能的话,如果有人能给我指出一个以某种相关方式执行此操作的示例脚本/gem 或类,那就太好了。
I'm working on a project where I need to post-process a bunch of audio files in various formats.
- Firstly, the files need to be converted to .WAV format.
- Secondly, depending on their length, I need to insert a short audible watermark at certain intervals in each of the new .WAV files.
The first part is easy, using the LAME encoder cli.
The second part is where it get's difficult - I've tried a few method with both LAME and FFmpeg, but can't seem get it working.
The script is running as a cron job in the background, so full cli access is available.
If possible, it would be great if someone could point me to an example script/gem or class that does this in some related way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这变得很复杂。您需要实际混合音频,据我所知,FFMPEG 不可能做到这一点。您将遇到的另一个问题是,如果您将 MP3 转换为 WAV 以便您可以使用它,然后将其重新编码回 MP3,则会出现质量损失。
我认为你可以使用Sox来实现这一点: http://sox.sourceforge.net/
首先使用FFMPEG进行解码将音频转换为 WAV,根据需要调整采样率和位深度。
然后,调用
soxmix
: http://linux.die.net /man/1/soxmixThis gets complicated. You need to actually mix the audio, which to my knowledge, isn't possible with FFMPEG. The other problem you're going to have is loss of quality if you take an MP3, convert it to WAV so you can work with it, and re-encode it back to MP3.
I think you can use Sox for this: http://sox.sourceforge.net/
Use FFMPEG first to decode the audio to WAV, adjusting sample rate and bit depth as necessary.
Then, call out to
soxmix
: http://linux.die.net/man/1/soxmix如果您准备好采用 Python 路线,我建议您使用 SciPy,它可以将 WAV 文件读入 NumPy 数组
:( 官方文档包含 细节)。
可以通过NumPy的数组操作例程方便地操作声音。
然后 scipy.io.wavfile 可以将文件写回 WAV 格式。
SciPy 和 NumPy 是通用科学数据工具。更多以音乐为中心的Python模块可以在官方网站上找到。
If you're ready to take the Python route, I would suggest SciPy, which can read WAV files into NumPy arrays:
(the official documentation contains details).
Sounds can be conveniently manipulated through the array manipulation routines of NumPy.
scipy.io.wavfile can then write the file back to the WAV format.
SciPy and NumPy are general scientific data tools. More music-centric Python modules can be found on the official web site.