当前课程知识点:计算机音乐 > 第七章 音频同步 > 7.3 音乐特征提取 Chroma > 音乐特征提取Chroma
同学们大家好
接下来我们要在CQT特征的基础之上
介绍半音阶特征
CQT特征是以对数频谱对音高进行
半音阶的一个划分
那么如果我们把一个八度的12个半音
均匀的排列在一个圆上面
所有的音符将会以
螺旋上升的方式进行排布
并且不同的相隔八度的音
将会等距地分布在垂直于水平面的一条
直线上面
例如不同八度的C不同八度的D
那么它都会排布在一条垂直于
水平面的直线上面
那么接下来我们将对CQT特征
进行进一步的压缩
我们会把不同八度的声音
全部的都压缩在同一个八度上面
比如说我们将会把半音阶的音高
进行进一步的分组
例如我们可以把不同八度的C
分类在一个叫做Chroma C的一个组里面
然后把不同八度的C#
分在一个叫做Chroma C#的组里面
然后把不同八度的D
分在一个叫做Chroma D的组里面
那么对同一组的CQT频谱
例如Chroma C下面的所有不同八度的
C的CQT频谱
那么我们就会进行加和
这样话任何一个音的特征
都会体现成一个12维的向量
例如刚才我们听到了这段演奏的音频
那么我们在CQT的频谱下面
从肉眼上是能够
看到和弦是在什么地方
而旋律又在什么地方的
但是如果在计算机程序当中
我们基本上是以
频谱的强度作为依据的
那么这时候就经常需要处理在
不同八度的频谱
那么例如前面的这个
哆咪唆这样的一个大三和弦
在频谱当中它的根音其实就是
下面这三条代表频率的黑线
那么由于不同的钢琴的音色的问题
那么上方的谐频
有些钢琴它的谐频也是会比较强的
而且有可能这些谐频会更加的明显
但是如果按照八度进行压缩
提取半音阶的频谱
这时候不同的八度的声音都会被压缩到
同一个窗口当中
从而在音高的表达上面就会更加的清晰
那么接下来我们将再次地借助
librosa模块来提取音频的半音阶特征
librosa的半音阶特征模块
在Feature extraction这个栏目下面
那么我们可以看到我们既可以用
短时浮力变换去提取半音阶接模块
可以用CQT变换去提取半音阶模块
那么我们来看一下这个CQT变换
提取半音阶模块的使用
我们只需要去露着这音频
然后用feature.chromaCQT就可以
对半音阶的特征进行提取
那么接下来我们就在
排产程序里面来实现一下
我们要处理的音频依然是刚才的这段
钢琴的半音阶的音频
也就是我们听到的这段钢琴的发音键音
那么我们按照官方文档的要求
首先把这个音频读到
通过拉librosa.load进行读取
读取完之后我们通过
Feature.chromaCQT这样话就可以显示
这段音频的半音阶频谱
好我们运行一下
好运行结束之后
我们可以看到这段半音阶的频谱
就显示出来了
那么它比起CQT的特征会更加的明显
并且所有数据都被压缩到了
12个格子里面
等于说每个音都是一个12维的特征
这样话我们在
进行音频同步的时候
拿这个特征来做比对
是非常的合适的
那么这里面
其实还有一些小的问题需要处理
比如说音与音之间的边缘
会有一些异常的一些亮条
那么这些亮条其实是
可以通过一些平滑处理来解决的
那在librosa里面提供了一个叫做
Chroma cens这样的一个特征
那么这个特征
当然有些参数你可以自己去设置
它最重要的一个处理
就是对能量进行了
标准化
除此之外
还会对数据进行
相应的平滑
那我们在他的示例文档里面会看到
原来在Chroma CQT里面
他的音与音之间边缘是非常明显的
那么经过这平滑以及标准化之后
音与音之间边缘就被平滑掉了
这样话我们在处理
音与音之间边缘的时候
就不会出现异常的亮条了
因为这些亮条是很容易
在音频同步的处理过程中
造成一些异常的情况
那么让我们来看一下
通过Chroma cens这样一个标准化
以及平滑处理之后的半音阶
会是什么样的
那在接下来实际程序里面
我们在上一个程序的基础上增加了一个
Chroma cens的特征
并且通过一个子图的形式把
它与CQT半音阶特征进行比较
我们运行一下看看
我们可以看到在Chroma cens
这样的标准化
并且进行过平滑的半音阶特征里面
音与音之间的间隔就被平滑掉了
同时数值的范围也进行了一个标准化
那么用这样的特征去进行
音频同步的话会非常的合适
那么后面章节
我们基本上都会用chrome SARS
这个特征来做特征的比对
并且实现音频的同步
以上就是有关半音阶特征的介绍
那么在下一节当中
我们需要对不同的音频的
半音阶特征进行匹配
从而实现音频的同步
让我们来期待一下
-欢迎辞
-1.1 计算机音乐导言
--计算机音乐导言
-1.2 计算机音乐课程主要内容
-1.3计算机音乐课程资源
-1.4 音乐的基本表达
--音乐的基本表达
-第一章作业
-2.1时域音频处理概述
--时域音频处理概述
-2.2 分窗处理1:OLA叠放
-2.3 分窗处理2:音量计算
-2.4 端点检测
--端点检测
-2.5 振幅包络
--振幅包络
-2.6 音频信号相乘
--音频信号相乘
-2.7 环形调制
--环形调制
-2.8 频率调制
--频率调制
-2.9 频率调制在音乐上的应用
-第二章作业
-3.1 频谱概述
--频谱概述
-3.2 傅里叶变换
--傅里叶变换
-3.3 短时傅里叶变换
--短时傅里叶变换
-3.4 加法合成
--加法合成
-3.5 线性滤波器
--线性滤波器
-3.6 京剧锣鼓经分析
--京剧锣鼓经分析
-第三章作业
-4.1 音色合成概述
--音色合成概述
-4.2 质点弹簧阻尼模型
--质点弹簧阻尼模型
-4.3 双线性滤波器
--双线性滤波器
-4.4 Modal合成
--Modal合成
-第四章测试
-5.1 一维振动模型概述
--一维振动模型概述
-5.2 弦振动模型
--弦振动模型
-5.3 达朗贝尔的行波解
--达朗贝尔的行波解
-5.4 梳状滤波器
--梳状滤波器
-5.5 Karplus Strong算法
-5.6 管状气鸣乐器模型
--管状气鸣乐器模型
-第五章作业
-6.1 音高跟踪概述
--音高跟踪
-6.2 时域音高跟踪
--时域音高跟踪
-6.3 频域音高跟踪
--频域音高跟踪
-6.4 K歌评分
--K歌评分
-第六章作业
-7.1 音频同步概述
--音频同步概述
-7.2 音乐特征提取 CQT
-7.3 音乐特征提取 Chroma
-7.4 动态时间规划概述
--动态时间规划概述
-7.5 动态时间规划实现
--动态时间规划实现
-第七章作业