音频PCM,音频采样率,音频的频率和功率;
双音多频技术?音乐均衡器,频域的增益或衰减;
频谱、频域与傅立叶变换算法;
-- 听声识曲公司为何得到Apple的青睐- https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/87568925
音乐识别服务和技术,最早流行的 Gracenote、SoundHound、Track ID、Tunatic,以及如今的第三方音乐 App 如 QQ音乐、网易云音乐,甚至微信“摇一摇”等也都具备音乐识别的功能。
在 2003 年 Shazam 联合创始人之一的 Avery Li-Chun Wang 就发表了一篇论文“An Industrial-Strength Audio Search Algorithm”(《一种工业级音频搜索算法》),提出了基于指纹(fringerprint)的音乐搜索算法,因其检索准确率较高,得到了不少算法工程师的关注。 声学指纹(Acoustic fingerprint)是通过特定算法从音频信号中提取的一段数字摘要,用于识别声音样本或者快速定位音频数据库中的相似音频。
Shazam 设计了一套非常灵活的音频搜索引擎。其算法抗噪声和扰动能力强,计算复杂度低,同时具有很高的可扩展性。即使外界噪音很强,它也可以迅速通过手机录制的一小段压缩音频从百万级的曲库中辨识出正确的歌曲。该算法运用分析音频频谱上的星状图来组合时间-频率信息构造哈希,从而可以将混合在一起的几首歌都辨识出来。此外,针对不同的应用,即使曲库非常大,检索速度也能达到毫秒级。 其核心简言之是,用户将某段音频中的一个片段上传至 Shazam,Shazam 会首先提取指纹,然后查询数据库,最后利用其精准的识别算法返回歌名。指纹可以看做该音频的哈希值(Hash),一个带有时间属性的数字集合。
计算机对音乐没有直观的理解,它只能将歌曲与其数据库中的其他歌曲进行对比匹配。为此,视频中 Real Engineering 重点提及了两个概念:“星状图”和“哈希函数”,并对基于“指纹”的搜索算法进行了通俗化解释。
减少计算时间的第一步就是减少分类歌曲的数据。Shazam 采用的称之为“指纹”的技术,可将这些频谱图转换成看起来像的“星状图”。
在计算机领域,哈希和哈希函数应用十分广泛。例如,在谷歌的搜索引擎算法中就应用了哈希函数,以确保文件可被下载。一句话解释就是,任意长度的输入通过哈希函数变换成固定长度的输出,该输出就是哈希值。
-- 双音多频(DTMF),音频信号
电话拨号有两种,脉冲和音频,所谓音频也称双音多频(DTMF)信号的拨号方式,双音多频既是电话拨号时每按一个键,有两个音频频率叠加成一个双音频信号,十二个按键由八个音频频率区分。
贝尔实验室的科学家们发明了DTMF(Dual Tone Multi-Frequency,双音多频),目的是为了能让电话系统自动接收号码然后完成呼叫,自动完成长途呼叫。
双音多频信号(DTMF)是电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。双音多频的作用是在通话过程中输出数字信号。
双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。用户每按一个键就发送一个高频和低频的正弦信号组合,比如在键盘上按“1”键,电话机就会发送一个697 Hz和1209 Hz的组合信号给电话交换机。交换机可以接收这些频率组合并确定用户所按的按键。
电话机中通常有16个按键,其中有10个数字键0~9和6个功能键*、#、A、B、C、D。由于按照组合原理,一般应有8种不同的单音频信号。因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术。根据CCITT的建议,国际上采用的多种频率为 687Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。用这8种频率可形成16种不同的组 合,从而代表16种不同的数字或功能键。
双音多频 DTMF(Dual Tone Multi Frequency),双音多频,由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信令有16个编码。利用DTMF信令可选择呼叫相应的对讲机 。
很多嵌入式系统都不具备进行连续实时FFT处理的能力,这时就适合采用Goertzel算法。
Goertzel优化算法比Goertzel基本算法所需的计算量小,但这是以损失相位信息为代价。 在 Goertzel优化算法中每个采样处理完全一样,但处理的结果与Goertzel基本算法不同。在Goertzel基本算法中,通常需要计算信号的实部 和虚部,然后将实部和虚部的计算结果转换为相应的幅度平方。而在优化Goertzel算法中则不需计算实部和虚部,直接计算下式: magnitude2 = Q12 + Q22-Q1*Q2*coeff
Android声音大小控制——AudioManager使用- https://blog.csdn.net/LuckChouDog/article/details/42124103
android setVolumeControlStream多媒体音量控制介绍- https://blog.csdn.net/love_xsq/article/details/50767283