Chromaprint是一个用于计算音频文件的AcoustID音频指纹的开源软件库。在iOS中生成AcoustID/Chromaprint声纹指纹
我正尝试从iOS上的本地文件生成此音频指纹。
该库可以建立在Windows,Linux和OS X上,它可以创建动态库以及接受音频文件的独立程序(fpcalc),解码音频并将其传递给chromaprint库以计算指纹。它并没有真正在iOS上运行,原因如下:
- 单机fpcalc程序无法在iOS上,因为你不能从一个应用程序
- 运行可执行文件的源代码给fpcalc运行程序使用chromaprint 和ffmpeg。从我读过的,ffmpeg很难在iOS上编译。 Chromaprint文档声明Accelerate框架可以在OS X/iOS中使用,但是没有示例代码可以实现这一点,我不知道从哪里开始。
我一直在为iOS构建库(CMake讨厌我)时遇到了一些麻烦,但我觉得上述问题更相关,因为即使编译了库,它也不会工作盒子外面。
我试图避免这是一个“为我写代码”的问题,但我非常困扰在为iOS生成chromaprint指纹的各个方面。我认为,我的目标是重新创建iOS上fpcalc程序的功能 - 解码音频文件(存储在设备上,任何音频类型)并将其传递到chromaprint库以生成指纹。
我在iOS上发现了this question关于声学指纹识别,但它与chromaprint/AcoustID无关,答案没有帮助。 Echoprint Codegen很有趣,但我需要一个chromaprint指纹。
我很高兴你能够正常工作,在我看来,使用扩展音频文件服务会比使用PCM转换文件更容易,将其保存在存储器中然后删除它,你通常只使用文件中的最初X秒的音频,所以你不需要转换整个文件。 – 2014-09-30 17:28:53
啊,对不起,我刚刚检查过代码,它实际上使用了这个库,在这种情况下,你应该能够想知道如何在不保存转换后的文件的情况下获取指纹 – 2014-09-30 17:30:56
@LukášLalinský是的,当然,您可以使用Apple的DoConvertFile函数中的代码来读取输入文件并完成所有的指纹工作。几小时的试验和错误(主要是错误),我只是转换整个文件而感到满意,我会在另一天优化它;) – ttarik 2014-09-30 17:37:36