Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 音频文件匹配程序_Iphone_C++_Objective C_Audio - Fatal编程技术网

Iphone 音频文件匹配程序

Iphone 音频文件匹配程序,iphone,c++,objective-c,audio,Iphone,C++,Objective C,Audio,我正试图在iPhone中编写一个程序,它可以将两个音频文件(如WAV)作为输入,比较它们,然后吐出一个数字,告诉你这些音频文件有多相似 如果有人做过类似的事情,知道如何去做,或者只是有一些想法,请让我知道。一切都将不胜感激 具体问题:什么语言合适?这件事有多难 大概需要几个小时?在哪里可以找到音频库/工具的良好来源 谢谢 我想说这很难,与其说是实现,不如说是给出了“相似”的合理定义 你说,你可能在研究自相关和FFT等技术,它们都是CPU密集型任务,所以我认为,完全编译的语言(C,C++,不知道O

我正试图在iPhone中编写一个程序,它可以将两个音频文件(如WAV)作为输入,比较它们,然后吐出一个数字,告诉你这些音频文件有多相似

如果有人做过类似的事情,知道如何去做,或者只是有一些想法,请让我知道。一切都将不胜感激

具体问题:什么语言合适?这件事有多难 大概需要几个小时?在哪里可以找到音频库/工具的良好来源


谢谢

我想说这很难,与其说是实现,不如说是给出了“相似”的合理定义

你说,你可能在研究自相关和FFT等技术,它们都是CPU密集型任务,所以我认为,完全编译的语言(C,C++,不知道ObjuleC)最适合实际计算。此外,对于此类任务,您还面临着一个动力不足的平台(如果只是因为未压缩的音频文件非常大的话),因此您需要进行一些优化


这本书:对所有与DSP相关的东西都是非常简明的阅读。

听起来与“Shazam”的功能类似-顺便说一句,很棒的iPhone应用程序,如果你还没有(它也是免费的)请查看它

不久前有一篇关于沙扎姆如何工作的文章。它获取一个声音指纹,并将其与其他歌曲的指纹进行比较,返回最接近的匹配

我想说的是,指纹识别中涉及到很多数学,可能是一些矩阵,可能是傅里叶变换,然后试图比较音频

-

编程可能需要一段时间。不过,如果你的数学技能能够胜任,这听起来是个不错的挑战:-)

-


编辑:发现我链接的网站上有一些源代码。它是用Java编写的,但在开始编写自己的代码之前,很值得一看

我正在一个语音识别应用程序上用Java开发类似的东西

我建议使用MFCC(需要计算FFT)进行特征提取,使用神经网络或其他某种机器学习技术进行训练和识别。使用从参考wav文件中提取的特征训练NN,更精确地说,是从该音频文件的连续等长切片/窗口中提取的特征。然后使用NN来检测另一个文件(也被分割成片)是否具有相同的特征

这是一个基本概念,您可以在此基础上进一步阐述自己的规范,或者确切地说,您希望您的应用程序做什么

关于Objective C中的库,我认为您可以找到一些用于信号处理部分(FFT等)的库,至于机器学习部分,我不知道您可以找到什么

至于编程时间,很难估计,因为它取决于很多细节。我想大概一周左右,但这只是一个合理的估计


ps:MFCC代表Mel频率系数:

你好,Jordan,谢谢你的回复,我查看了Shazam网站,但没有获得源代码。你能帮我吗这不是Shazam,而是试图复制Shazam的源代码。