600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 基于CQT和PCP的和弦识别算法

基于CQT和PCP的和弦识别算法

时间:2022-02-12 09:46:29

相关推荐

基于CQT和PCP的和弦识别算法

基于CQT和PCP的和弦识别算法

原理声学基础音乐理论基础音高十二平均律音程与和弦时频转换PCP特征向量过程源代码结语

原理

声学基础

声音是物体振动时产生的波动现象,通过介质传达,最终由人或动物的听觉器官感知

声音的特征特性可以通过音量、音调、音色三个基本要素来实现

音量,即响度,是人耳对声音强度的主观感知,通常与声波的幅度有关

音调,是人类的耳朵对于声音强弱的一种主观感觉,通常与声波的频率有关

音色,又叫音品,是人类用来辨别区分具有相等的响度、相同的音调的两个不同的声音的一种特殊的性质,可以说是人类的耳朵,对于声音频率和响度的一种综合反应

音乐理论基础

音高

音高取决于发出声音的物体的振动频率,两者有正相关关系

我们平常讲的“标准音”,就是每秒振动440次的小字一组A音(频率为440hz)

十二平均律

音律,就是乐音体系中各音的绝对准确高度及其相互关系

包括五度相生律、纯律和十二平均律

这里我们只说一下现代音乐中最多使用的十二平均律

“十二平均律”通俗来说就是根据固定的比例将弦分割成十二个比值相等的部分

用钢琴举例,每两个相邻的琴键(对应相邻的乐音)之间的比为2^(1/12)

音程与和弦

在乐音系统中,在一定的音高对应的两个乐音之间的间距关系被称为音程

和弦指的是,一组具有固定音程关系的声音

是将三个乐音或者三个以上的乐音,按照三度或者非三度,在纵向上加以重叠结合

和弦种类有很多,我们这个算法只涉及常见的大三和弦和小三和弦

这几乎可以用于大部分流行歌曲的和弦搭配

时频转换

我们知道每一个乐音都有相应的频率

反过来,只要提取到了相应的频率就可以找到对应的乐音

那么,对于构成一个和弦的多个音,说白了不就是一组频率嘛

但是,音乐是时间的艺术,我们常常都是在时域上提取信息

为了提取到频率的信息,就需要将时域转换到频域

可以这样理解,每一个频率的声波都是一个正弦波

我们听到的声音其实就是多个正弦波的线性和

转换到频域后,不同频率的幅度就会清晰的显示出来

时频转换的算法有很多,在这里我们使用CQT算法,因其更符合乐音频率的提取

理论上,这样我们就可以轻松的提取出构成和弦的音

PCP特征向量

音级轮廓图(PCP)特征是由 Fujishima 在 1999 年提出的

是一种用于频谱对应音级的 12 维特征向量,每一维向量分别代表了一个半音音级

将提取出来频率对应各个乐音,符合的乐音为1,不符合的为0

例如C Major的PCP特征向量为

[1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0]

对应C Major的构成就是

[C, C#, D, D#,E, F, F#,G, G#, A, A#, B]

过程

和弦识别算法主要包括以下几个部分:

读取音频文件,对音频在时域方面进行处理

时域频域转换

将提取到的谐波分量信息转化为色谱图

和弦与PCP匹配

源代码

本项目的源代码已完全公开

结语

欢迎热爱编程的小伙伴关注我的github博客

以及我的github仓库

里面有一些前端小技巧以及python算法设计跟大家一起分享

我们一起每天进步一点点!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
常数Q变换 CQT

常数Q变换 CQT

2018-10-31

什么是CQT

什么是CQT

2022-09-26

注册质量技师-CQT-介绍

注册质量技师-CQT-介绍

2022-11-03

CQT测试在什么地方()

CQT测试在什么地方()

2018-12-18