前面提及过,音频指纹算法的思路。
也梳理开源了两个比较经典的算法。
https://github.com/cpuimage/shazam
https://github.com/cpuimage/AudioFingerprinter
后来一段时间,稍微看了下这两个算法,还有不少可以精简优化的空间。
例如抗噪,特征有效性等优化思路。
音频指纹切片后的hash特征信息还是太多了,
不过作为哼唱搜歌的基本应用,是足够的了。
不过我觉得还是可以再进一步提取歌曲的旋律特征的,在音频指纹的基础上更进一步。
旋律是最重要的音乐要素之一,多应用于音乐内容分析、音乐创作、音乐教育、抄袭检测等方面。
主旋律提取旨在从一段音乐中自动估计对应于主旋律单音音符序列的音高或基频。
流行音乐一般属于复杂的多音音乐,因此主旋律提取面临着许多挑战。
在这里要特别说一下,音频处理领域碰到的问题都是相似的。首当其冲主要是噪声,其次是音量和语速。
特别是在一些场景下的asr识别,例如实时对话,同声传译之类环境下,语速和音量的干扰影响很多时候多过于噪声。
而很多提供asr服务的厂商对这类情况支持不佳,而据我所知,讯飞的asr中是有内置前处理算法的。
好像有点偏题了,回到主题上来。
也就是说不管做音频还是音乐 上面提到的问题都会造成一定精度影响。
音频前处理算法是非常重要