当前课程知识点:计算机音乐 >  第六章 高音跟踪 >  6.4 K歌评分 >  K歌评分

返回《计算机音乐》慕课在线视频课程列表

K歌评分在线视频

下一节:音频同步概述

返回《计算机音乐》慕课在线视频列表

K歌评分课程教案、知识点、字幕

同学们大家好

接下来这一节

我们将会以K歌评分

作为音高跟踪算法这一章的实践

我们身边有很多音乐应用

基本上都实现了K歌评分的功能

比如像唱吧好唱天籁K歌

全民K歌咪咕爱唱等等

那么从音乐学上来说

对声乐作品进行评分

是一件非常高维度的工作

我们不仅需要对音准

节奏

强弱的控制等等这些可以

量化的指标进行评价

甚至还需要对

音色气息情感这些主观的指标也进行评价

但目前我们能看到的这些应用

主要还是以音高曲线作为

评分标准的

因此它们的基础便是音高跟踪

要完成K歌评分应用

我们还需要一个标准的数据库

那么有版权问题

在那些我们平时常听的流行歌当中

想获纯人声的分轨

并且对他们做一些标记呢

几乎是不可能的

但是也有一些研究者

自己录制了一些数据库

比如ikala互动媒体

制作的ikala数据库

以及专门用于声音分离比赛的

sisec数据库

也称之为dsd100

还有专门的用于旋律提取的

medleydb数据库

那么作为示例我们今天研究的对象便是

吴奇隆的一首老歌

祝你一路顺风的片段

当然ikala的数据库并不是

吴奇隆本人录制的

但由于参与ikala数据库录制的歌手

也是一些专业的歌手

所以我们可以用这个数据库的声音作为

参考的音高

我们先来听一下这段声音

让我们也可以来录制一下这段声音

然后去做一下比较

我知道你有千言

你有万语

却不肯说出口

那么我并不是专业的

所以

人听着这一段声音就会觉得有一些跑调

或者抢拍的问题

我们接下来就用python程序

来进行一下音高跟踪

并且可以对这两者的音高曲线进行比较

看一下这个差别具体在哪

这次我们将使用

一个第三方的模块aubio

这个模块来调用他的

已经写好的音高跟踪算法

aubio的python模块

它在官方的文档上面说

可以直接在TABLE上进行安装

但实际上最新的版本

在windows里面是不能用TABLE进行安装的

他最新版本的说明文档里面有说

我们可以用conda进行安装

那么在

Install aubio from source里面

我们可以看到

我们可以用conda来安装一个

已经编译好的文件

那么我们接下来就直接安装这个aubio

因为我们是windows版本的

所以我们按照他说的

在windows里面我们可以直接用conda install-C

从这个conda fourge里面去安装aubio

安装它需要一定的时间去下载

那么因为我们之前已经安装好了

所以其实待会它会提示安装已经装好了

好这里它会提示有一些控件需要更新

那么我们点Y继续就可以了

它会自动的下载更新

全部完成之后

我们就可以使用aubio这个库了

好我们根据aubio官方提供的文档

我们知道它在使用之前

需要从aubio里面去

import source跟pitch两个模块

那么import sourc主要是用来读取音频文件的

pitch是用来做音高跟踪的

那么下面的音频的读取方法都是

直接从aubio的官方文档里面摘取的

那么我们读了两个文件

一个文件是ikala test.way

这是ikala里面的

祝你一路顺风的这个

音频片段的样本

那么S2是我刚才唱的这个样本

那么我们打算比较一下这两个文件的

音高曲线是否匹配

那么这个pitch我们按照它的官方文档需要

去调用pitch函数

来构建一个pitch O这样的一个函数

那么在构建之前你需要

把windows S

就是作傅里叶变换的窗口的大小以及

窗距给进行一个输入

好那么接下来按照它的官方文档的推荐

我们需要用一个while循环

那么第一个while循环我们把

第一个音频的音高的曲线进行提取

并且全放在pitch1里面

第二个循环我们把

第二个文件的音高进行提取

并且放在pitch2里面

然后我们把这两个音高曲线绘制出来

运行一下看一下结果

好了我们存储的文件应该叫做kala test

好运行一下看一下结果

我们从这个结果里面能看到

蓝色的曲线是

ikala数据库里面的一个标准曲线

橙色曲线是我唱的一个版本

我们在音高提取过程中依然会遇到类似

我们自己写的音高提取程序一样

那么在间隔的地方

它会有提取的不准的地方

所以如果你要去设计这个

音高比对程序的时候

我们可以对音高的范围做一个限定

只有在人声的范围以内我们才做比较

那么超过了这个乐曲的范围

我们就不做这个比较

那么这也是可以

一定程度去

降低错误率的一个方法

那么从这曲线的匹配上来看

我们唱的版本有一点点

这个地方有一点点拖拍

那么这地方有一点点抢拍

但是从音高的曲线的整体的趋势来看

还是基本上跟

标准版本的趋势是一样的

那么课下同学们可以

想办法来设计一下这个

不同的音高曲线之间怎么做这个比对

可以自己来设计一下这个评分的程序

让我们来对这一章节的课程

进行一个总结

音高是我们在音乐生活当中

非常重要的信息

那么在时域当中它表现为信号的周期

当然由于我们平时处理的声音

基本上并不是严格的周期的信号

所以音高在时域上的定义是比较模糊的

那么如果我们考察的声音是和谐的乐音

也就是说它的峰值是成整数倍分布的

那么我们就可以在频域当中

把音高定义成峰值之间的间隔

这样后我们就可以用频域的处理方法

去求出这个间隔

但总而言之

无论是用哪种方法去计算音高

我们都只能对一个小窗口

去计算音高

因此音乐的音高

通常是随时间变化的

这时候窗口的大小的选择

就会显得尤其的重要

我们今天的课程只是介绍一些基本的算法

真正使用算法往往需要更多的一些预处理

甚至使用机器学习的方式进行

那么更多的扩展就交由同学们在课下进行

关于音高跟踪的介绍就介绍到这里

下节课我们再见

计算机音乐课程列表:

欢迎辞

-欢迎辞

第一章 基本概念

-1.1 计算机音乐导言

--计算机音乐导言

-1.2 计算机音乐课程主要内容

--计算机课程主要内容

-1.3计算机音乐课程资源

--计算机音乐课程资源

-1.4 音乐的基本表达

--音乐的基本表达

-第一章作业

第二章 时域音频处理

-2.1时域音频处理概述

--时域音频处理概述

-2.2 分窗处理1:OLA叠放

--分窗处理1: OLA叠放

-2.3 分窗处理2:音量计算

--分窗处理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算法

--Karplus Strong算法

-5.6 管状气鸣乐器模型

--管状气鸣乐器模型

-第五章作业

第六章 高音跟踪

-6.1 音高跟踪概述

--音高跟踪

-6.2 时域音高跟踪

--时域音高跟踪

-6.3 频域音高跟踪

--频域音高跟踪

-6.4 K歌评分

--K歌评分

-第六章作业

第七章 音频同步

-7.1 音频同步概述

--音频同步概述

-7.2 音乐特征提取 CQT

--音乐特征提取CQT

-7.3 音乐特征提取 Chroma

--音乐特征提取Chroma

-7.4 动态时间规划概述

--动态时间规划概述

-7.5 动态时间规划实现

--动态时间规划实现

-第七章作业

K歌评分笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。