• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 电子设计 > 电源技术 > 电源技术 > 嵌入式实时音乐语音识别系统的实现

嵌入式实时音乐语音识别系统的实现

录入:edatop.com    点击:

引言

随着电子音乐的快速发展, 迫切需要一种更智能、更便捷的用户操作系统。自动音乐语音识别系统能够提供便利的人机交互[1],方便人们自己学习音乐知识, 将成为一种主要方法,也是一个发展的方向。目前, 实验室环境中自动语音识别系统已经取得了很好的效果, 但是应用于电子音乐方面的自动音乐语音识别却很少。当自动语音识别应用于电子音乐时, 必须对识别方法进行相应改进, 才能满足其对运算速度、内存资源等方面的要求。为了解决这个问题, 本文将结合音乐语音的特点,设计并实现嵌入式音乐语音识别系统。

1系统硬件电路设计系统

硬件电路设计的原理框图如图1所示,它主要由音乐语音信息采集部分、音乐语音处理DSP部分、程序数据存储器FLASH部分、数据存储器SRAM部分、键盘管理部分、音源芯片语音输出部分、以及电源部分组成。音乐语音信息采集部分主要由MCU GPL162001来完成,该芯片自带12bit ADC和72个I/O口,方便键盘管理,。音乐语音处理DSP部分选用了目前通用的TI公司的TMS320VC5402 16位微处理器,处理速度快,最快运行速度可达100MIPS,功耗低,是一款理想的DSP处理器。考虑到速度要求较快,DSP的晶振选用100MHZ的晶振。另外,由于音乐输出要求有专业的乐音效果,电路中选择了由中芯微公司提供的64和弦MIDI音频处理芯片。此外,TMS320VC5402片上没有FLASH且片内RAM只有16K,考虑到语音数据比较大,我们外扩了1M的FLASH芯片和64K的SRAM芯片。 DSP(TMS320VC5402) 是整个硬件系统的信号处理中心,完成音乐语音识别工作, 进行RAM及FLASH 存储芯片的数据管理与调度, 并向主控芯片 MCU 提供反馈信息。电源的工作电压为3.3V。

 图1  系统原理图                 

2系统的软件实现

和大部分语音识别系统一样,音乐语音识别系统本质也是一种模式识别系统。它的基本流程图如图2所示,主要包括语音信号预处理,端点检测,特征参数求取和语音识别等几个步骤。

图2 系统识别算法流程图

2.1语音信号预处理

语音信号预处理主要是对语音信号进行前期的优化处理,方便后面的端点检测和语音识别,语音信号预处理主要包括分帧处理、预加重处理、加窗处理、滤波和消除毛刺处理等。

2.1.1语音信号的分帧

语音信号的特征是随着时间而变化的,只有在一段短的时间间隔中,语音信号才保持相对稳定一致的特征, 通常这段时间取5~50ms。在程序中取200个采样点,对于8k的采样频率,即相当于25ms。帧间重叠为100个采样点,亦即12.5ms。

2.1.2预加重

由于语音信号平均功率谱受声门激励和口鼻辐射影响,800HZ以上的高频信号按6DB/倍频跌落,所以求语音信号频谱时,频率越高相应成分越少,高频部分的频谱比低频部分难求,所以要进行预加重处理。在数字语音信号处理中,数字语音信号通常都通过一个低阶的系统(典型的是一个一阶的滤波器),即 式中, 为预加重系数,通常 最为常用的取值是在0.95附近。由于本系统采用的是 =0.94

2.1.3加窗

对每一帧语音进行加窗实质是语音波形乘窗函数,为减少时间窗两端的坡度,使窗口边缘两端平滑过渡到零,减小语音帧的截断效应, 这里采用典型的应用在语音识别系统中加hamming窗。

2.1.4滤波、消除毛刺

      由于语音信号包含很多噪声信号,这些噪声信号在时域中表现出高频随机、毛刺等信号,这些信号很可能影响识别的效果,所以,对信号进行带通滤波和消除毛刺处理能很好提高识别的精度。由于人声主要在60-1000HZ ,采用50-1000HZ的FIR带通滤波器对原信号进行滤波,即可获得良好的效果。 消除毛刺影响主要采用语音信号峰谷值检测的方法,把相邻两峰值之间很不明显的谷值和相邻两谷值之间很不明显的峰值去掉,对语音曲线中一些较小的毛刺进行曲线整形,消除那些明显的毛刺! [p]

2.2端点检测

      端点检测是语音识别中的的一个关键,也是一个难点,端点检测的好坏直接影响后面的语音特征参数提取,影响语音识别的效果。其目的就是从带有噪声的语音中检测出说话人的语音命令, 找出语音段开始和结束的时点。本系统使用语音信号的能量曲线结合过零率来进行端点检测[5],整个过程如图3所示。由于人声的乐音信号范围在50-1000HZ,首先对原语音信号进行不同频段的信号滤波,得到六个频段滤波后的能量曲线, E(1)为50-1000HZ段的语音信号,E(2)100-1000HZ段的语音信号,E(3)200-1000HZ段的语音信号 ,E(4)400-1000HZ段的语音信号,E(5)600-1000HZ段的语音信号,E(5)800-1000HZ段的语音信号。能量分割是依据峰谷点检测来进行的,利用能量曲线峰谷点地变化,把能量曲线中的语音段分割出来,且把语音段的起点和终点作为我们要求得端点。但是由于语音信号变化情况复杂,尤其是语音连读紧密的情况下,基于能量曲线的语音分割方法可能分割不开,所以,本系统采用了改进的能量曲线分割算法,通过对语音信号能像曲线分析,我们发现,不同频段的能量曲线反映的特征不同,对语音信号进行不同频段的滤波最后得到的能量曲线放映的语音端点信息也不同,有些语音信号在高频段的能量曲线中能很好的分割开,所以,对语音信号进行六个频段的滤波得出的基于能量曲线分割的改进算法,在判决依据中,赋予E(1)的权值为1,而E(2)、E(3)、E(4)、E(5)、E(6)要求两个以上相同才被视为端点。基于所有能量曲线的分割点都要看过零率的门限是否满足要求,改进算法的用意是在尽可能准确的情况下尽量分割开语言信号, 尽量保证不错分, 尽量提高分割的准确度,避免误分。

图3 端点检测流程图

2.3语音特征参数提取

语音识别参数的提取较多,由于噪声的的存在,考虑音乐语音识别系统的对识别的精度要求较高,本系统采用了经典的美尔频标倒谱参数MFCC[4],MFCC参数建立在 Fourier 频谱分析的基础上,它的核心思想是利用人耳的感知特性,在语音的频谱范围内设置若干个带通滤波器,每个滤波器具备三角或者正弦的形滤波特性,计算相应滤波器组的信号能量,再通过 DCT 计算对应的倒谱系数,

图4 MFCC参数求取过程

2.4语音信号的训练与识别 

音乐语音识别系统是一个专业性很强的词汇量较小的语音识别系统,由于识别的速度要求较快,乐音中的词汇量较少,通常情况下人声能唱到的乐音的范围只有几十个(一般在4个八度以内)。本系统采用采用了计算相对简单而有效的DTW算法来进行语音识别。该算法基于动态规划的思想,将语音信号的每一帧信号的特征参数提取出来,就转化成了一组特征向量。语音识别就是要将这个特征向量同模板库中已存的语音特征向量(参考模板)进行模板匹配,寻找距离最短的模板。语音识别需要语音模板库的建立,也就是语音模型的训练。参照音乐语音音高频率对照表,我们只对人声范围(60HZ-1000HZ即乐音中音名从C- )共四个八度32个音高进行训练,针对每首曲子中音高的范围都是在一定范围以内的,所以往往我们训练训练的样本更少,较小的词汇量使乐音识别的速度得到大大提高。

3实验结果与分析

我们对系统的识别性能进行了测试。由6个测试者(3男3女音乐专业人士)在安静室内环境下,选择方向性较好的麦克风,进行测试实验。由于男生和女生一般能发音的音高不一样,一般男生比女生偏低,首先让6位测试者对照音名表把他(她)能发的音的全部录音、训练,再随机选择几首曲子进行测试,实验结果表明, 在对特定人的乐音识别中,由于女生发音口齿比较清晰,男生比较发音浑厚,男生的正确识别率在95%以上,女生的正确识别率在97%以上,平均正确识别率在96%以上,满足实用化要求。

4结 论

本文介绍了一种基于DSP的嵌入式音乐语音识别系统的软硬件系统。在传统的语音识别方法上结合音乐语音的特点作了一些改进,叙述了音乐语音识别系统硬件结构、软件流程,采用了一种基于多频段能量曲线分割结合过零率来检测端点的新方法,简化了运算量,进一步提高了识别性能,把语音识别技术很好的用在电子音乐方面,实现了嵌入式实时音乐语音识别,实验结果表明,本系统精度高,基本能满足实用化需求。

本文作者创新点:

(1)把语音识别方法应用于电子音乐方面,设计并实现专业的音乐语音识别软硬件系统,巧妙采用了滤波、消除毛刺等预处理方法,训练了专业的音乐语音样本,提高语音识别精度。

(2)建立了一种基于多频段能量曲线分割结合过零率来检测端点的新方法,在保证不错分的情况下,提高了语音分割的正确率,同时结合过零率的门限,提高了端点检测的精度。

射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...

天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...

上一篇:单片机两大延时方法总结
下一篇:详解数字电源的优势

射频和天线工程师培训课程详情>>

  网站地图