CN106157973B - 音乐检测与识别方法 - Google Patents

音乐检测与识别方法 Download PDF

Info

Publication number
CN106157973B
CN106157973B CN201610583217.9A CN201610583217A CN106157973B CN 106157973 B CN106157973 B CN 106157973B CN 201610583217 A CN201610583217 A CN 201610583217A CN 106157973 B CN106157973 B CN 106157973B
Authority
CN
China
Prior art keywords
music
fundamental frequency
signal
matched
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610583217.9A
Other languages
English (en)
Other versions
CN106157973A (zh
Inventor
芮义斌
李秀珍
张跃龙
谢仁宏
李鹏
郭山红
严丽萍
季佳恺
陈奇
赵若冰
魏知寒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN201610583217.9A priority Critical patent/CN106157973B/zh
Publication of CN106157973A publication Critical patent/CN106157973A/zh
Application granted granted Critical
Publication of CN106157973B publication Critical patent/CN106157973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B15/00Teaching music
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

本发明公开了一种音乐的检测与识别方法,包括以下步骤:1、对音乐信号进行采集并对相应的乐谱信息进行提取;2、结合乐谱信息设计低通滤波器,通过半波整流后低通滤波得到音乐信号的包络,从而实现音符初步切分;3、对切分的每一段音乐分高低通道与乐谱匹配,信号经过低通滤波后采用谐波峰值排序比较法,经过高通滤波后采用基频峰值排序比较法,综合两通道的匹配结果得到第段音乐信号与乐谱键号矩阵第行的匹配结果;4、经过多次比较最终得到钢琴演奏者的每个音乐事件的演奏正误结果。本发明的音乐检测与识别方法能够实现对演奏音乐中各个音乐事件的演奏正误判断,有利于提高音乐教学的质量。

Description

音乐检测与识别方法
技术领域
本发明属于音频信号处理领域,特别是一种演奏音乐的检测与识别方法。
背景技术
随着物质生活水平的不断提高,越来越多的人通过学习乐器来提高自身的音乐素质。在音乐教学过程中老师需要花费大量时间在曲目的多次演奏、以及纠正学生的指法与错音上,如果能够准确检测并识别演奏的音乐,并反馈演奏正误结果,学生就可以有针对性的改正错误,从而提高学习效率,同时减轻音乐老师的教学负担。
随着音乐信号处理技术的发展,产生了多种音乐检测与识别的方法,现阶段的检测方法可以大致分为基于特征分析、基于统计模型、基于矩阵分解三种,其中效果最好的是基于特征分析的方法,即从时域、频域、时频域提取信号特征。提取信号特征之后通过建立数学模型实现音乐识别。大多数方法是针对数字音乐信号即midi信号进行分析检测,提取到的特征稳定,便于音乐识别。而实际演奏音乐具有节奏、情感和旋律等语义要素,且会受演奏者的技术水平和现场演奏环境影响,这使得演奏音乐的检测识别具有更高的复杂性。
专利申请号为CN201010299618.4,发明名称为“语音/音乐识别方法及装置”的中国专利,在上一帧音频信号的编码模式为音乐模式时,判断当前帧之前的指定个数帧的帧能量的变化率和所述当前帧的帧能量是否满足打击乐条件;在当前帧之前的指定个数帧的帧能量的变化率和所述当前帧的帧能量满足打击乐条件时,确定当前帧的编码模式为音乐模式。该方法可以实现语音模式和音乐模式的判断,其局限性在于无法实现音乐中各个音符的检测与识别。
专利申请号为CN201210516769.X,发明名称为“单声道多音音乐信号的自动转录方法及装置”的中国专利,通过将多音音乐信号分离成多路单音音乐信号,对分离出的各路单音音乐信号分别进行音色和旋律、节奏及节拍的提取,获得演奏乐器信息和音频信息,进而根据所述演奏乐器信息和所述音频信息获得高准确率的多音音乐乐谱。该方法可以实现演奏音乐与乐谱的转换,其局限性在于没有实现对演奏音乐与已知乐谱的比较,无法起到找错改错的作用。
由上可知,现有技术能够实现音乐模式判断和音乐信号转录,但无法实现对演奏音乐中各个音乐事件的演奏正误判断。
发明内容
本发明所解决的技术问题在于提供一种用于音乐教学的音乐检测与识别方法。
实现本发明目的的技术解决方案为:一种音乐检测与识别方法,包括以下步骤:
步骤1、对音乐信号进行采集并对相应的乐谱信息进行提取;
步骤2、对音乐信号进行音符切分,具体是通过半波整流后低通滤波得到音乐信号的包络,从而将音乐信号划分为多个音乐片段;
步骤3、对切分的每一段音乐进行高低通道划分,将其划分为高通道信号与低通道信号,之后将高通道信号与低通道信号分别与乐谱进行匹配,综合两通道的匹配结果得到第i段音乐信号与乐谱键号矩阵第j行的匹配结果,记为si_mj;
步骤4、综合步骤3中得到的所有音乐片段的结果,最终得到钢琴演奏者的音乐事件演奏正误结果。
本发明与现有技术相比,其显著优点为:1)本发明的音乐检测与识别方法主要结合乐谱中的先验信息,降低了基频检测的难度,提高了检测效率;2)本发明的音乐检测与识别方法中直接对信号包络检波实现音符初步切分,计算复杂度低,运行速度快;3)本发明的音乐检测与识别方法结合钢琴单音特性,在基频检测时进行高低通双通道处理,提高了多基频检测的准确度;4)本发明的音乐检测与识别方法可以实现多音音乐的检测识别,对单音音乐同样适用;5)本发明的音乐检测与识别方法将切分的音乐片段与乐谱一一匹配,便于实现音乐的实时检测;6)本发明的音乐检测与识别方法能够实现对演奏音乐中各个音乐事件的演奏正误判断,有利于提高音乐教学的质量。
下面结合附图对本发明作进一步详细描述。
附图说明
图1是本发明的音乐检测与识别方法框图。
图2是钢琴曲《小奏鸣曲》前六小节的乐谱。
图3是音乐信号包络峰值提取和音符切分结果图,其中图3(a)为《小奏鸣曲》前六小节的音乐信号包络;图3(b)是音符切分结果。
图4是为第i段音乐信号与乐谱键号矩阵第j行的匹配比较的框图。
图5是谐波峰值排序方法流程图。
图6是基频峰值排序方法流程图。
图7以小奏鸣曲第六小节中第一段音乐信号为例说明匹配比较的仿真图,其中图7(a)为第一段音乐信号的频谱图;图7(b)为低通滤波后信号的频谱图;图7(c)为高通滤波后信号的频谱图。
图8为输出演奏正误结果流程图。
图9为演奏乐曲《小奏鸣曲》的一部分演奏正误结果图。
具体实施方式
结合图1,本发明的一种音乐检测与识别方法,包括以下步骤:
步骤1、对音乐信号进行采集并对相应的乐谱信息进行提取;对乐谱信息进行提取具体是对乐谱对应的MIDI文件进行解析,提取出乐谱中的音符时值和音高信息。
步骤2、对音乐信号进行音符切分,具体是通过半波整流后低通滤波得到音乐信号的包络,从而将音乐信号划分为多个音乐片段;低通滤波处理时所用滤波器的通带截止频率为(1/T)Hz,所述T为乐谱中时值最小的音符演奏时间。
步骤3、对切分的每一段音乐进行高低通道划分,将其划分为高通道信号与低通道信号,之后将高通道信号与低通道信号分别与乐谱进行匹配,综合两通道的匹配结果得到第i段音乐信号与乐谱键号矩阵第j行的匹配结果,记为si_mj;具体为:
步骤3-1、以中央C键为界限,将频率f作为通带截止频率设计低通、高通滤波器,所述中央C键的键名为x,对应频率为f;
步骤3-2、采用谐波峰值排序的方法将低通信号与低音乐谱进行匹配,所述谐波峰值排序方法具体为:
步骤3-2-1、取出乐谱键号矩阵M第j行中低于x键的部分{m1,m2,…mq}对应的q个基频序列{f(m1),f(m2),…,f(mq)};
步骤3-2-2、对低通信号Sl作傅里叶变换,得到信号频谱;
步骤3-2-3、提取上述频谱中的峰值;
步骤3-2-4、将上述峰值从大到小进行排序;
步骤3-2-5、确定前3×q个峰值对应的频率{fp(1),fp(2),…,fp(3q)};
步骤3-2-6、对第k个基频与对应的峰值频率fp(l)进行匹配,k的取值范围为[1,q],l的取值范围为[1,3×q],所用匹配公式为:
其中fp(l)是待测基频的倍频,a为倍数,若小于0.02,则将检测到的谐波个数num(k)自增1,否则谐波个数不变;所述检测到的谐波个数num(k)的初始值为0;
步骤3-2-7、判断检测到的谐波个数num(k)是否大于等于f_len(k),若大于等于则判断该基频f(mk)存在,记为value(k)=1,将匹配的基频个数num_l自增1;否则,该基频f(mk)不存在,记为value(k)=0,匹配的基频个数num_l不变;
所述为低音单音在频谱中至少能够找到的谐波个数,其中floor(x)为取整函数;
步骤3-2-8、判断匹配的基频个数num_l是否等于基频个数q,若等于则信号低频部分基频与乐谱一致,记为value_l=1,否则记为value_l=0;
步骤3-3、采用基频峰值排序的方法将高通信号与高音乐谱进行匹配,所述基频峰值排序方法具体为:
步骤3-3-1、取出乐谱键号矩阵M第j行高于x键的部分{m1,m2,…mq}对应的q个基频序列{f(m1),f(m2),…,f(mq)};
步骤3-3-2、对高通信号Sh作傅里叶变换,得到信号频谱;
步骤3-3-3、提取上述频谱中的峰值;
步骤3-3-4、将上述峰值从大到小进行排序;
步骤3-3-5、确定前q个峰值对应的频率{fp(1),fp(2),…,fp(q)};
步骤3-3-6、对第k个基频与对应的峰值频率fp(k)进行匹配,k的取值范围为[1,q],若小于0.02,则判断该基频f(mk)存在,记为value(k)=1,将匹配的基频个数num_h自增1;否则,该基频f(mk)不存在,记为value(k)=0,匹配的基频个数num_h不变;
步骤3-3-7、判断匹配的基频个数是否等于基频个数q,若等于则信号高频部分基频与乐谱一致,记为value_h=1,否则记为value_h=0;
步骤3-4、综合两通道的匹配结果,如果两通道检测到的基频均与对应乐谱一致,即value_l=1且value_h=1,则判断第i段音乐信号与乐谱键号矩阵第j行一致,记为si_mj=1,否则判断第i段音乐信号与乐谱键号矩阵第j行不一致,记为si_mj=0。
步骤4、综合步骤3中得到的所有音乐片段的结果,最终得到钢琴演奏者的音乐事件演奏正误结果。具体为:
步骤4-1、设待匹配的音乐片段为Si(i=1,2,…,s_len),其中s_len是音乐片段个数,将乐谱信息表示为N*P的矩阵,待匹配的第j行乐谱键号矩阵记为Mj(j=1,2,…,N);将待匹配的音乐片段序数temp_j初始化为1,待匹配的乐谱键号矩阵行数j初始化为1;
步骤4-2、初始化i=temp_j,按步骤3方法将第i个音乐片段与乐谱第j行进行匹配得到比较结果si_mj;
步骤4-3、判断匹配结果,若匹配结果si_mj为0,则认为该段音乐信号是无用片段,将i自增1,并返回步骤4-2,直至i等于len为止,所述len为一个小节中音乐事件的个数;如果向后匹配比较len次之后匹配结果仍为零,则判断乐谱第j个音乐事件演奏错误,即value(j)=0;
若匹配结果si_mj为1,则判断乐谱第j个音乐事件演奏正确,即value(j)=1,同时令待匹配的音乐片段序数temp_j=j+1;
步骤4-4、将j自增1,之后返回步骤4-2,当j=N+1时,乐谱中所有音乐事件演奏正误判断完毕。
下面结合实施例对本发明做进一步详细的描述:
实施例
图1为音乐检测与识别方法框图,音乐检测与识别方法主要包括音乐信号采集、提取乐谱信息、音符切分、音乐信号与乐谱匹配比对和输出演奏正误结果五个部分。下面以钢琴演奏音乐为例说明本发明的音乐检测与识别方法。
钢琴的发音过程是演奏者触键,然后通过机械传导呢毡榔头击弦而发声。钢琴的琴槌本身连着琴键,当琴键被按下时,琴槌便会打落在琴弦上并借着琴弦的振动使钢琴发声。
假设琴弦长为l,槌敲击的区间为(x0-δ≤x≤x0+δ)。敲击点为x=x0处,弦的运动初速度为v0,弦振动的加速度为a,振动时间为t,此时钢琴弦振动方程为:
从方程看出,钢琴琴弦振动是所有驻波的叠加,其中正弦、余弦函数所组成的泛音序列与1/n成比例进行衰减,而弹拨弦振动的泛音列与1/n2成比例衰减。
钢琴音乐中,基频决定音高,倍频影响音色。钢琴上的88个琴键几乎包含了整个乐音体系的音列,它的基音频率范围为27.5Hz~4186Hz。表1是钢琴88键对应的基音频率。
表1 钢琴88键对应的基音频率
音名 A #A(bB) B C #C(bD) D #D(bE) E F #F(bG) G #G(bA)
键号 1 2 3 4 5 6 7 8 9 10 11 12
频率/Hz 27.5 29.14 30.9 32.703 34.648 36.708 38.891 41.203 43.654 46.249 48.999 51.913
键号 13 14 15 16 17 18 19 20 21 22 23 24
频率/Hz 55 58.27 61.7 65.406 69.296 73.416 77.782 82.407 87.307 92.499 97.999 103.826
键号 25 26 27 28 29 30 31 32 33 34 35 36
频率/Hz 110 116.5 123 130.81 138.59 146.83 155.56 164.814 174.614 184.997 195.998 207.652
键号 37 38 39 40 41 42 43 44 45 46 47 48
频率/Hz 220 233.1 247 261.63 277.18 293.67 311.13 329.628 349.228 369.994 391.995 415.305
键号 49 50 51 52 53 54 55 56 57 58 59 60
频率/Hz 440 466.2 494 523.25 554.37 587.33 622.25 659.255 698.456 739.989 783.991 830.609
键号 61 62 63 64 65 66 67 68 69 70 71 72
频率/Hz 880 932.3 988 1046.5 1108.7 1174.7 1244.5 1318.51 1396.91 1479.978 1567.982 1661.219
键号 73 74 75 76 77 78 79 80 81 82 83 84
频率/Hz 1760 1865 1976 2093 2217.5 2349.3 2489 2637.02 2793.83 2959.955 3135.963 3322.438
键号 85 86 87 88
频率/Hz 3520 3729 3951 4186
通过麦克风将演奏的钢琴音乐信号采集到计算机中,计算机声卡可以实现模数转换,即连续信号离散化。钢琴音乐属于多音音乐,对于多音音乐,具有相同开始时间的所有音高被称为一个音乐事件。钢琴乐谱有双行谱表,即高音、低音谱表。MIDI文件中的二、三音轨对应乐谱中的高音、低音谱表,通过解析MIDI文件,可以提取各音轨包含的音符时值和音高信息。将两个音轨的音高信息合并即可得到N行P列的乐谱键号矩阵,矩阵中的每一行表示了一个音乐事件对应的所有键号,表2是《小奏鸣曲》第六小节的乐谱键号矩阵,其中第1列为高音谱表,2-4列为低音谱表。
表2
56 44 40 37
57 0 0 0
56 44 40 37
55 0 0 0
56 44 40 37
57 0 0 0
56 44 40 37
55 0 0 0
将钢琴振动信号看成是一个低频信号对一个高频信号的幅度调制,通过半波整流后低通滤波即可得到音乐信号的包络。设计滤波器时需结合乐谱中的先验知识,图2为钢琴曲《小奏鸣曲》前六小节的乐谱,可以看到该乐曲为2/4拍,假设1拍为1s,该乐谱中时值最小的音符为十六分音符,演奏时间约0.25s,此时将低通滤波器的通带频率设置为4Hz可以较为准确地提取信号包络。
采用中值滤波对信号包络进行平滑处理,并用梯度法提取包络中的极大极小值,极大值对应的位置为一个音符的起点,极小值对应的位置为一个音符的终点。图3(a)为《小奏鸣曲》前六小节的音乐信号包络,图中标注了包络极大极小值的位置,其中红色圆圈部分的极大值并非音符起始点。图3(b)是音符切分结果,实线部分为一个音乐片段的起点,虚线部分为一个音乐片段的终点,可以看到在切分过程中出现了多分的情况。由于钢琴音乐信号复杂,国内外现有的音符切分方法均不能百分之百的切分信号,所以不能将切分出的信号与乐谱信息直接一一对应,需要多次匹配,最终得到音乐检测结果。
根据钢琴演奏音乐信号的频域特点,基频的峰值并不总是最大,对于低频信号,峰值最大处可能是其倍频,因此针对低频信号要采取谐波分析的方式,高频信号只分析基频即可。图4为第i段音乐信号与乐谱键号矩阵第j行匹配比较的框图。
以钢琴49键即中央C音(频率440Hz)为界限,分别设计通带频率为440Hz的低通滤波器和高通滤波器,乐谱键号矩阵也以49为界按照高音低音重新分配。信号经过低通滤波器之后采用谐波峰值排序的方法与低音乐谱匹配,图5为谐波峰值排序方法流程图,算法描述为:
(1)取乐谱键号矩阵M第j行低于49键的部分{m1,m2,…mq},对应基频序列{f(m1),f(m2),…,f(mq)},由此得到待检测的q个基频;
(2)对低通后的音乐信号Sl作fft;
(3)提取频谱峰值;
(4)将峰值从大到小排序;
(5)取前3×q个峰值分别得到对应的频率{fp(1),fp(2),…,fp(3q)};
(6)初始化k=1,匹配的基频个数num_l初始化为0;
(7)初始化l=1;
(8)令误差err=0.02,如果则可以确定fp(l)是待测基频的倍频,a为倍数,将检测到的谐波个数num(k)自增1;
(9)重复步骤(8)直到l=3×q;
(10)信号经过低通滤波之后,各低音单音在频谱中至少能够找到的谐波个数为:
其中floor(x)为取整函数,返回小于或者等于指定表达式的最大整数;
(11)如果检测到的谐波个数num(k)大于等于f_len(k),则判断该基频f(mk)存在,记为value(k)=1,将匹配的基频个数num_l自增1;若该基频f(mk)不存在,记为value(k)=0;
(12)返回到步骤(7),直到k=q结束,即完成每个待测基频的检测;
(13)如果每个待测基频都检测到了,即num_l=q,则信号低频部分基频与乐谱一致,记为value_l=1,否则不一致,记为value_l=0。
信号经过高通滤波器之后采用基频峰值排序的方法与高音乐谱匹配,图6为基频峰值排序方法流程图,算法描述为:
(1)取出乐谱键号矩阵M第j行高于49键的部分{m1,m2,…mq}对应的q个基频序列{f(m1),f(m2),…,f(mq)};
(2)对高通信号Sh作傅里叶变换,得到信号频谱;
(3)提取上述频谱中的峰值;
(4)将上述峰值从大到小进行排序;
(5)确定前q个峰值对应的频率{fp(1),fp(2),…,fp(q)};
(6)初始化k=1,匹配的基频个数num_h初始化为0;
(7)对第k个基频与对应的峰值频率fp(k)进行匹配,k的取值范围为[1,q],令误差err=0.02,若小于0.02,则判断该基频f(mk)存在,记为value(k)=1,将匹配的基频个数num_h自增1;否则,该基频f(mk)不存在,记为value(k)=0,匹配的基频个数num_h不变;
(8)重复步骤(8)直到k=q结束,即完成每个待测基频的检测;
(9)判断匹配的基频个数是否等于基频个数q,如果每个待测基频都检测到了,即num_h=q,信号高频部分基频与乐谱一致,记为value_h=1,否则记为value_h=0。
综合两通道的匹配结果,如果两通道检测到的基频均与对应乐谱一致,即value_l=1且value_h=1,则判断第i段音乐信号与乐谱键号矩阵第j行一致,记为si_mj=1,否则判断第i段音乐信号与乐谱键号矩阵第j行不一致,记为si_mj=0。
以小奏鸣曲第六小节中第一段音乐信号为例说明匹配比较的方法,该音乐信号待匹配的乐谱键号数组为{56,44,40,37},对应基频序列为{659.255Hz,329.628Hz,261.626Hz,220Hz},图7(a)为第一段音乐信号的频谱图,图7(b)为低通滤波后的频谱图,其中菱形、方形、圆形分别表示37键、40键、44键对应的基频和倍频,图7(c)为高通滤波后的频谱图,其中圆形表示56键对应的基频。根据两通道的匹配结果可以说明该段音乐信号与待匹配乐谱一致。
切出的每段信号进行多次匹配比较后需给出最终的演奏正误结果。图8为输出演奏正误结果流程图,描述如下:
(1)待匹配的音乐片段为Si(i=1,2,…,s_len),其中s_len是音乐片段个数。将乐谱信息表示为N*P的矩阵,待匹配的第j行乐谱键号矩阵记为Mj(j=1,2,…,N)。将待匹配的音乐片段序数temp_j初始化为1,待匹配的乐谱键号矩阵行数j设置为1;
(2)初始化i=temp_j,将第i个音乐片段与乐谱第j行进行匹配比较,比较结果记为si_mj;
(3)若匹配结果si_mj为0,则认为该段音乐信号是无用片段,将i自增1,即i=i+1,重复步骤(2),设匹配比较的最大次数len为一个小节中音乐事件的个数,如果向后匹配比较len次之后匹配结果仍为零,则判断乐谱第j个音乐事件演奏错误,即value(j)=0;
若匹配结果si_mj为1,则判断乐谱第j个音乐事件演奏正确,即value(j)=1,同时令待匹配的音乐片段序数temp_j=j+1;
(4)将j自增1,即j=j+1,重复步骤(2)(3),当j=N+1时,乐谱中所有音乐事件演奏正误判断完毕,由此实现整首乐曲检测与识别。图9为演奏乐曲《小奏鸣曲》的一部分演奏正误结果图。
由上可知,本发明音乐检测与识别方法结合乐谱先验知识,将切分的音乐片段与乐谱一一匹配,能够实现对演奏音乐中各个音乐事件的演奏正误判断,有利于提高音乐教学的质量。

Claims (4)

1.一种音乐检测与识别方法,其特征在于,包括以下步骤:
步骤1、对音乐信号进行采集并对相应的乐谱信息进行提取;
步骤2、对音乐信号进行音符切分,具体是通过半波整流后低通滤波得到音乐信号的包络,从而将音乐信号划分为多个音乐片段;
步骤3、对切分的每一段音乐进行高低通道划分,将其划分为高通道信号与低通道信号,之后将高通道信号与低通道信号分别与乐谱进行匹配,综合高通道信号和低通道信号的匹配结果得到第i段音乐信号与乐谱键号矩阵M第j行的匹配结果,记为si_mj;具体为:
步骤3-1、以中央C键为界限,将频率f作为通带截止频率设计低通滤波器和高通滤波器,所述中央C键的键名为x,对应频率为f;
步骤3-2、采用谐波峰值排序的方法将低通道信号与乐谱进行匹配,所述谐波峰值排序方法具体为:
步骤3-2-1、取出乐谱键号矩阵M第j行中低于x键的部分{m1,m2,…mq}对应的q个基频序列{f(m1),f(m2),…,f(mq)};
步骤3-2-2、对低通道信号Sl作傅里叶变换,得到信号频谱;
步骤3-2-3、提取上述频谱中的峰值;
步骤3-2-4、将上述峰值从大到小进行排序;
步骤3-2-5、确定前3×q个峰值对应的频率{fp(1),fp(2),…,fp(3q)};
步骤3-2-6、对第k个基频与对应的峰值频率fp(l)进行匹配,k的取值范围为[1,q],l的取值范围为[1,3×q],所用匹配公式为:
其中fp(l)为峰值频率,a为倍数,若小于0.02,则将检测到的谐波个数num(k)自增1,否则谐波个数不变;所述检测到的谐波个数num(k)的初始值为0;
步骤3-2-7、判断检测到的谐波个数num(k)是否大于等于f_len(k),若大于等于则判断该基频f(mk)存在,记为value(k)=1,将匹配的基频个数num_l自增1;否则,该基频f(mk)不存在,记为value(k)=0,匹配的基频个数num_l不变;
为低音单音在频谱中至少能够找到的谐波个数,其中floor(x)为取整函数;
步骤3-2-8、判断匹配的基频个数num_l是否等于基频个数q,若等于则低通道信号与乐谱一致,记为value_l=1,否则记为value_l=0;
步骤3-3、采用基频峰值排序的方法将高通道信号与乐谱进行匹配,所述基频峰值排序方法具体为:
步骤3-3-1、取出乐谱键号矩阵M第j行高于x键的部分{m1,m2,…mq}对应的q个基频序列{f(m1),f(m2),…,f(mq)};
步骤3-3-2、对高通道信号Sh作傅里叶变换,得到信号频谱;
步骤3-3-3、提取步骤3-3-2频谱中的峰值;
步骤3-3-4、将步骤3-3-3峰值从大到小进行排序;
步骤3-3-5、确定前q个峰值对应的频率{fp(1),fp(2),…,fp(q)};
步骤3-3-6、对第k个基频与对应的峰值频率fp(k)进行匹配,k的取值范围为[1,q],若小于0.02,则判断该基频f(mk)存在,记为value(k)=1,将匹配的基频个数num_h自增1;否则,该基频f(mk)不存在,记为value(k)=0,匹配的基频个数num_h不变;
步骤3-3-7、判断匹配的基频个数是否等于基频个数q,若等于则高通道信号与乐谱一致,记为value_h=1,否则记为value_h=0;
步骤3-4、综合高通道信号和低通道信号的匹配结果,如果高通道信号和低通道信号检测到的基频均与对应乐谱一致,即value_l=1且value_h=1,则判断第i段音乐信号与乐谱键号矩阵M第j行一致,记为si_mj=1,否则判断第i段音乐信号与乐谱键号矩阵M第j行不一致,记为si_mj=0;
步骤4、综合步骤3中得到的所有音乐片段的结果,最终得到钢琴演奏者的音乐事件演奏正误结果。
2.根据权利要求1所述的音乐检测与识别方法,其特征在于,步骤1中对乐谱信息进行提取具体是对乐谱对应的MIDI文件进行解析,提取出乐谱中的音符时值和音高信息。
3.根据权利要求1所述的音乐检测与识别方法,其特征在于,步骤2中低通滤波处理时所用滤波器的通带截止频率为(1/T)Hz,所述T为乐谱中时值最小的音符演奏时间。
4.根据权利要求1所述的音乐检测与识别方法,其特征在于,步骤4中综合上述所有音乐片段的结果,最终得到钢琴演奏者的音乐事件演奏正误结果,具体为:
步骤4-1、设待匹配的音乐片段为Si(i=1,2,…,s_len),其中s_len是音乐片段个数,将乐谱信息表示为N*P的矩阵,待匹配的第j行乐谱键号矩阵M记为Mj(j=1,2,…,N);将待匹配的音乐片段序数temp_j初始化为1,待匹配的乐谱键号矩阵M行数j初始化为1;
步骤4-2、初始化i=temp_j,按步骤3方法将第i个音乐片段与乐谱第j行进行匹配得到比较结果si_mj;
步骤4-3、判断匹配结果,若匹配结果si_mj为0,则认为该段音乐信号是无用片段,将i自增1,并返回步骤4-2,直至i等于len为止,所述len为一个小节中音乐事件的个数;如果向后匹配比较len次之后匹配结果仍为零,则判断乐谱第j个音乐事件演奏错误,即value(j)=0;
若匹配结果si_mj为1,则判断乐谱第j个音乐事件演奏正确,即value(j)=1,同时令待匹配的音乐片段序数temp_j=j+1;
步骤4-4、将j自增1,之后返回步骤4-2,当j=N+1时,乐谱中所有音乐事件演奏正误判断完毕。
CN201610583217.9A 2016-07-22 2016-07-22 音乐检测与识别方法 Active CN106157973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610583217.9A CN106157973B (zh) 2016-07-22 2016-07-22 音乐检测与识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610583217.9A CN106157973B (zh) 2016-07-22 2016-07-22 音乐检测与识别方法

Publications (2)

Publication Number Publication Date
CN106157973A CN106157973A (zh) 2016-11-23
CN106157973B true CN106157973B (zh) 2019-09-13

Family

ID=58060310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610583217.9A Active CN106157973B (zh) 2016-07-22 2016-07-22 音乐检测与识别方法

Country Status (1)

Country Link
CN (1) CN106157973B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649811A (zh) * 2016-12-29 2017-05-10 广州酷狗计算机科技有限公司 构建乐谱库的方法和装置
CN107945809B (zh) * 2017-05-02 2021-11-09 大连民族大学 一种复调音乐多音高估计方法
CN107290043B (zh) * 2017-06-15 2023-07-28 贵州电网有限责任公司电力科学研究院 一种输电线路振动次数在线分布式监测方法
CN108038146B (zh) * 2017-11-29 2021-08-17 无锡同芯微纳科技有限公司 音乐演奏人工智能分析方法、系统及设备
CN109377818B (zh) * 2018-12-10 2020-08-18 北京金三惠科技有限公司 一种数字音乐教学系统的乐谱播放模块组件
CN109979483B (zh) * 2019-03-29 2020-11-03 广州市百果园信息技术有限公司 音频信号的旋律检测方法、装置以及电子设备
CN110299049B (zh) * 2019-06-17 2021-12-17 韶关市启之信息技术有限公司 一种电子乐谱的智能展现方法
CN111028860B (zh) * 2019-11-22 2021-08-06 深圳市康冠智能科技有限公司 音频数据处理方法、装置、计算机设备以及存储介质
CN111028615B (zh) * 2019-11-29 2022-01-07 尤剑 智能化乐器演奏教学方法、系统及存储介质
CN111477038A (zh) * 2020-05-12 2020-07-31 金延松 一种数字声乐教学仪
CN113658612B (zh) * 2021-08-25 2024-02-09 桂林智神信息技术股份有限公司 一种基于音频识别被弹奏琴键的方法及系统
WO2022052940A1 (zh) * 2020-09-09 2022-03-17 桂林智神信息技术股份有限公司 基于音频识别被弹奏琴键的方法及系统
CN112466334A (zh) * 2020-12-14 2021-03-09 腾讯音乐娱乐科技(深圳)有限公司 一种音频识别方法、设备及介质
CN113066512B (zh) * 2021-03-24 2024-02-23 平安科技(深圳)有限公司 佛教音乐识别方法、装置、设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446504B (zh) * 2010-10-08 2013-10-09 华为技术有限公司 语音/音乐识别方法及装置
CN104143324B (zh) * 2014-07-14 2018-01-12 电子科技大学 一种乐音音符识别方法
CN104200818A (zh) * 2014-08-06 2014-12-10 重庆邮电大学 一种音高检测方法
CN104835507B (zh) * 2015-03-30 2018-01-16 渤海大学 一种串并结合的多模式情感信息融合与识别方法

Also Published As

Publication number Publication date
CN106157973A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106157973B (zh) 音乐检测与识别方法
US7619155B2 (en) Method and apparatus for determining musical notes from sounds
CN109448754B (zh) 一种多维度演唱评分系统
CN102664016B (zh) 唱歌评测方法及系统
Heittola et al. Musical instrument recognition in polyphonic audio using source-filter model for sound separation.
US6967275B2 (en) Song-matching system and method
CN103354092B (zh) 一种带检错功能的音频乐谱比对方法
CN104143324B (zh) 一种乐音音符识别方法
CN105719661B (zh) 一种弦乐器演奏音质自动判别方法
US8535236B2 (en) Apparatus and method for analyzing a sound signal using a physiological ear model
CN110599987A (zh) 基于卷积神经网络的钢琴音符识别算法
CN104200818A (zh) 一种音高检测方法
Zhu et al. Precise pitch profile feature extraction from musical audio for key detection
CN104992712A (zh) 能识别音乐自动成谱的方法
CN108038146B (zh) 音乐演奏人工智能分析方法、系统及设备
CN106935236A (zh) 一种钢琴演奏评估方法及系统
CN110364184A (zh) 基于深度卷积神经网络dcnn和ctc算法的音准评估方法
CN105976803B (zh) 一种结合乐谱的音符切分方法
CN110415730A (zh) 一种音乐分析数据集构建方法及基于其的音高、时值提取方法
Krishna et al. Identification of carnatic raagas using hidden markov models
Sridhar et al. Swara indentification for south indian classical music
CN112634841B (zh) 一种基于声音识别的吉他谱自动生成方法
Pikrakis et al. Tracking melodic patterns in flamenco singing by analyzing polyphonic music recordings
CN105244021B (zh) 哼唱旋律到midi旋律的转换方法
Spich et al. Drum music transcription using prior subspace analysis and pattern recognition

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant