好的声音库?

8

我需要从音频信号中提取重叠的音频帧。然后,我需要将它们转换为频率数据(FFT / 类似于频谱图),并分析频率信息。

例如,如果我有一个持续1分钟的mp3文件,我希望将该文件拆分成更小的文件,从00:00.000到00:03.000,从00:00.010到00:03.010。然后,我需要查看每个子文件的频率分布。

哪些编程语言具有良好的音频工具可以帮助我完成这项任务?是否有可用的Linux命令行工具?如果使用Node.js或Haskell(我最熟悉的语言)就更好了,特别是Node.js。


在Python中,我已经成功地使用了Audiolab和Numpy。 - Vortico
我也会使用Python / Numpy。如果你想处理mp3文件,你需要一个解码库,比如ffmpeg。你可以使用子进程调用从Python中调用ffmpeg。 - TJD
2
不够建设性 - 许多(大多数?)编程语言都有可以帮助您完成任务的库。您可以通过搜索网络来找到它们。 - maerics
3
当你在问题标题中加入“好”这个词时,我就知道这是一个主观性问题,不适合在Stack Overflow上进行。这并不意味着这不是一个好问题,也不意味着答案没有帮助……但是关于质量的讨论和建议不适合在这里进行。 - Phrogz
我已经在网上搜索了几个小时了。问题在于如何知道好的起点。我怎么可能听说过SuperCollider呢? - Sean Clark Hess
显示剩余2条评论
3个回答

3

MATLAB。

GNU Octave 是免费的类似克隆版本。


哇,Matlab真贵啊。谢谢提供替代方案。 - Sean Clark Hess
@SeanClarkHess:昂贵相对于什么,伙计?编写和调试所有代码需要多少成本?此外,如果你是全职学生,Matlab的学生折扣曾经非常好,你必须是一个完全的白痴才会错过它。(在2003年,我进行了复习工作。我去了大学电脑商店购买了Microsoft捆绑软件包。我看到了学生版的Matlab。我花了零秒钟决定说“也给我一个。”) - John R. Strohm
与免费版相比,我正在为我的创业公司准备一份内部演示文稿。因此,商业许可证。我永远不会将其用于生产代码,只用于演示。我对Matlab的熟悉程度不比普通的老代码高,所以对我来说可能并没有更快。我需要一个“随便玩玩”的Matlab许可证 :) - Sean Clark Hess
@SeanClarkHess:对于初创公司的演示,你应该能够使用GNU Octave得到所需的内容。数据点:MATLAB单用户商业许可证价格为2150美元。将其与高端PC或良好示波器的价格进行比较。就此而言,在考虑间接费用之前和之后,将其与初级工程师的价格进行比较。 - John R. Strohm

2

我正在玩Python和Scipy,但是没有人把他们的代码放在答案里:) 谢谢!我可能会尝试Haskell版本,但FFT函数让我的大脑受伤了。 - Sean Clark Hess
请注意:libsndfile(hsndfile封装的库)不支持mp3格式。http://www.mega-nerd.com/libsndfile/FAQ.html#Q020 - Iarek

1

你考虑过SuperCollider吗?它是一个功能齐全的语言,比其他语言的大多数库具有更多的音频处理特性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接