基于MATLAB的人声音特征的识别和控制设计

摘  要

语音识别控制技术是人机交流技术重要的研究方向,也是人工智能的基础技术,这项技术目前已经广泛运用于各个领域。

本次设计内容是一个语音识别控制系统,具体是利用MATLAB调用笔记本电脑的声卡采集声音的功能,采集人说话的语音信号,再对语音信号进行预处理、端点检测、特征参数提取等操作。如果是在模板训练过程就将参数储存起来,保存为模板语音,如果是在语音识别过程中,有待测语音输入时用DTW(Dynamic Time Warping)的模板匹配算法将语音信号参数与模板参数进行匹配。该算法是为了解决发同一音而发音时间长短的不同的问题,采用对输入语音信号进行伸长或缩短直到与标准模式的长度一致,将模板参数和待识别参数按照一定的规整路径进行一个最小距离计算,找出最佳的匹配模板。匹配的结果通过红外模块从笔记本发往单片机,让单片机控制电机的启动停止,转动速度等,其中转速的控制部分是利用的PID(Proportion Integral Derivative)控制算法。

为了研究语音识别,本论文做了大量的模板训练,总共训练了五个动作词汇。然后逐一进行了测试,识别率良好,系统的响应时间在规定的范围内,系统的抗噪性能比较好,控制也比较稳定,实现了课题要求。

关键词:语音识别  控制系统  模板比配  DTW

ABSTRACT

The speech recognition technology is an important research direction of Human-computer communication technology, and is also the basic technology of artificial intelligence. This technology has been widely used in various fields.

This design is a speech recognition control system, which uses MATLAB to call the voice card of the notebook computer to collect the sound function, collect the voice signal of the speaker, and then preprocess the voice signal, detect the endpoint, extract the feature parameters and so on, and save the template voice. The template matching algorithm of DTW (Dynamic Time Warping) is used to measure the speech input. The minimum distance between the template parameters and the parameters to be identified is calculated according to a regular path. The best matching template is found. The matching results are sent from the notebook to the single chip by the infrared module, and the single chip microcomputer is used to control the start of the motor. The speed control is the PID control algorithm.

In order to study speech recognition, this paper has done a lot of template training, training a total of five action words. Then one by one is tested, the recognition rate is good, the response time of the system is within the prescribed range, the system's noise immunity performance is better, and has achieved the request of the subject.

Keywordsvoice recognition;control system;model-matching;DTW

1  绪 论

1.1 选题背景、目的及意义

随着社会的快速发展,人民的生活水平逐渐提高,人们已经进入了互联网信息时代,对生活智能的追求再提高。在智能生活中,语音识别技术是一种人机交流的重要手段,语音识别在市场的应用和分布中十分普遍,同时在一些实际的应用中,语音识别技术是作为一个十分具有竞争力的关键点。比如在声音控制的领域中,计算机能够准确地识别出输入的语音内容是一个关键点,另外,还要根据识别结果来完成对应的动作。

计算机的发展日益迅猛,对这些设备的尺寸要求也越来越严格,并且有时候需要有特殊需求,比如在行走或驾驶时需要进行信息的输入,传统的键盘输入方式已不能满足用户要求,而需要更方便、自然地在行进中有效地输入信息。采用语音识别技术可以解放用户的手眼,有效地改变人机交互手段,如目前在一些手持计算机手机等嵌入式电子产品上已经使用语音识别技术来进行控制[1]。

为此,本课题就基于MATLAB的人声音特征的识别与控制展开研究。需要实现利用语音进行控制,用户需要说出指令,经过MATLAB处理的指令信号传入单片机,由单片机执行指令,人机交互十分方便,在目前的物联网时代有着广泛的运用前景,本课题也可以认为是人工智能时代的应用研究。语音的特点跟很多因素有关系,比如音调、音色、语速、说话人的情绪等。所以最为重要的是,建立合理的语音数学模型以及提取出语音信号参数的特征。本次毕业设计中对语音信号处理方面进行具有一定使用价值的研究

1.2 国内外现状分析

在21世纪,经济的和信息技术的发展都比较迅速,科学技术水平的上升在很大程度上提高了人们的生活水平。从以前的老式手机到现在几乎人手一部的智能机只用了短短的几年时间,人工智能也逐渐进入人们的生活当中,人们不再局限于用键盘输入来满足自己的需求了,在这种情况下语音识别系统出现了,这项技术的发展不仅给人们带来了便利,也是人工智能系统最基本的功能。

国外的语音识别技术发展较早,技术也已比较成熟,声音信号处理的研究最早可以追溯到19世纪70年代。然后这项技术在20世纪得到了充分的发展。从1952年美国贝尔实验室发表关于一些小词汇识别的论文开始,语音识别拉开了序幕[2]。之后美国的一个无线电公司和 MIT Lincoln对语音识别做了进一步的研究,其中研究所在1956年开发了一种关于特定人的语音识别系统。三年后MIT Lincoln在此基础上加以改进,成功开发了不限定人的语音识别系统。这时候语音识别的发展还不完整,只能是利用不同音节的傅里叶变换后的频谱参数进行分辨。直到20世纪60-70年代,随着数字信号处理领域的理论算法成熟和计算机产业的迅速发展,语音识别才作为一个重要的研究课题而展开,并逐步取得一系列实质性的进展[3]。后来DTW算法和线性预测算法的引入解决了人说话语速不同的问题,掀起了语音识别研究的热潮。近年来,随着语音信号处理技术的日益成熟,出现基于此处理技术的新方向,如语音拨号、发短信、移动设备中的嵌入式命令控制 ,以及基于关键词检出的口语会话系统等[4]。根据语音识别技术在人们生活上的应用情况来看,这项技术已经被广泛接收。

我国在语音信号处理方面的研究起步较晚。中科院在上个世纪50年代才开始语音识别技术的研究,最初是利用电子管电路对元音进行识别而不是计算机识别,从70年代才开始着手于计算机语音识别。在我国的“八五”计划和“863”计划中,汉语语音识别得到了大力支持。同时,由于中国在国际上地位与日俱增,汉语语音识别也越来越被国外研究机构和公司重视,IBM、 Microsoft、APPLE、 Motorola、 Intel、L&H等公司都在国内设立研究机构,投入到汉语语音识别系统的开发中,强有力地推动了汉语语音识别研究的发展[5]。1992年,清华大学电子工程系和电子器件公司研制成功了THED-919有关于孤立词汇的特定人语音识别系统。在非特定人方面,清华大学计算机系在1987年研制的声控电话号码查询系统在那个时候投入了实际的使用中。现在来说,对于汉语发音连续语音识别系统的研究成果已经十分接近最高水平了,这种情况看来,语音控制方面的技术也得到了全面的发展。

目前,已经进入机器人时代,人工智能也是家喻户晓,人们与人工智能交流的方式普遍是通过语言交流,因为语言交流是最直接的交流方式。但是考虑到有些有语言功能障碍的人,目前肢体语言识别也处于研究状态。在2017年4月,卡内基梅隆大学计算机实验室打造了OpenPose——能够识别出人的肢体语言的一个库,并且在6月正式启动了这项工程[6] 

本次毕业设计就是针对于语音识别技术展开研究,分析了语音特征参数提取,模板匹配DTW算法的原理。从语音采集,信号处理一直到最后的语音识别,整个过程虽然原理不复杂,但也有许多值得注意的地方。语音识别最终的目的是为了实现语音控制。

2  语音识别与控制系统方案设计

2.1 语音识别方式选择

目前语音识别的研究方向有3个:基于声道模型和语音知识的方法、利用人工神经网络的方法以及模版匹配的方法[7]。其中,方法1需要建立人类发音的数学模型,让计算机能够听懂人类的话。方法2是模仿人的大脑的神经活动,学习一门新的语音,从字到词语,从词语到句子,需要大量的数据库。方法3是模版匹配的方法,这种方法是目前使用得最多的方法,而且其算法相对简单,所以本次设计选择的是模板匹配方法。在模板匹配中也有多种匹配方式:

① 矢量量化方法(VQ)

矢量量化是将人的语音样品训练变为码本,辨别中把样品语音遵循训练得到的码本展开编码,其确定标准为量化形成的失真度。使用矢量量化进行语音识别,具有速度非常快的优势,并且辨别准度也很高

② 隐马尔可夫模型方法(HMM)

隐马尔可夫模型技术有着非常广泛的使用。它将语音转换成为一些符号,并且把这些符号的序列合成看作随机的过程,此种符号在导出时表示为系统发声状态。简单地说HMM模型就是关于概率矩阵一个数学模型,从已知推断未知。

③ 动态时间规整方法(DTW)

说话人信息不但存在稳定性原因(发声的器官构成与惯性),并且还存在变化性原因(语音速度及其声调,发声轻重与规律)。把辨别模板和参考模板在时间一致下进行对比,然后按照一定的距离检测出这两块模板之间的相同程度[5]

以上三种方法,各有优点缺点,其中矢量量化方法主要是用于说话人识别的场合,而这次的设计不针对特定的人,而是识别语音的内容,所以不合适使用。隐马尔可夫模型建立起数学模型比较复杂,对出初学者而言难度有点大。所以综合以上,最终选择用动态时间规整(DTW)算法来实现本次设计。选择动态时间规整(DTW)算法的主要原因是,算法相对容易理解,在人语音识别领域应用比较广泛,比其他几种方法更容易编程实现。最终的识别率来看也是比较理想的,软件设计一将会对此做详细介绍

2.2 语音识别/控制系统总体设计

语音识别就是指通过一定的数据信号处理,让机器理解说话人的意思。识别语音内容是从许多个词汇中分辨出该词汇的内容,是一种一对多的关系,这种技术利用的方式一般为模式匹配。语音控制就是将识别出的命令通过特定的一种通讯方式发送到下位机,实现对下位机单片机的控制,从而达到语音识别的目的。

要实现语音识别控制,就必须先对样本进行训练,训练后才可以达到识别的目的。样品训练一般表示为对数据的挖掘,通过对大量的样品训练,再从中抽取其实质参数。模式匹配即根据一种特殊的算法,让待识别的样本与训练后的样本的特征参数进行相似度的计算分析,最后得到一个最佳匹配。

语音识别/控制系统,显然包括了识别和控制两个部分,系统的主要组成部分包括上位机和下位机两个部分:

上位机模块:上位机主要是笔记本,笔记本声卡采集语音信息,利用MATLAB的数据处理功能首先对声音信号进行预处理、特征参数提取,语音规整,然后利用模板匹配算法进行语音识别,最后转化为指令发送到下位机,上位机和下位机之间的通讯方式为红外通讯。

下位机模块:下位机主要是基于单片机,接收到上位机信号后,单片机开始运行,控制被控对象完成相应的动作,本次控制对象对直流电机,通过语音信号控制电机的正反转,加速、减速、停止动作。

图2.1 语音识别/控制系统框图

3  硬件设计

3.1 硬件总体设计

① 硬件系统设计

本次设计中需要用到的硬件主要有PC一台、单片机一个、红外解码模块两个、直流电机一个、电机驱动模块一个、电容电阻若干、电源系统。其中电源是用的6干电池供电,通过一个5V稳压模块给单片机以及各个原件供电

笔记本作为上位机实现语音识别过程,51单片机作为下位机的控制器,控制电机的动作,上位机下位机通过红外模块进行通讯。硬件系统总体设计如下:

图3.1 硬件系统总体设计

② 硬件选择说明

1)单片机

单片机的种类很多,本次选择的是常用的51单片机。因为该单片机有一个串口中断,足够本次的通信使用,8bit数据传颂,而且其价格相对便宜,编程采用C51很容易理解。

2)红外模块

本次使用红外模块的作用主要是为了建立起通讯,对于红外模块的要求就是能够发送红外线,能够接收识别红外线,对于红外线发射的波长和类型要求不高,因为只要使用同一种类的两个模块都能互相识别对方发射的红外波。综上,本次设计选择的是常用的YS-IRTM红外解码模块。

3.2 硬件原理图

① 51单片机最小系统

本次下位机控制系统主要是基于51单片机可编程控制器,51单片机是常用的微型控制器。高低电平信号通讯,高电平为5V低电平为0V,供电也是5V供电。其可编程输入输出引脚有32根,通过控制各个引脚输出的电平的高低实现控制功能。其内部自带处理器,寄存器以及中断系统,外部接有11.0592MHZ和12MHZ的晶振。原理图如下:

图3.2 单片机最小系统原理图

② 电机驱动模块

由于单片机本身驱动能力有限,所以要用到驱动模块来驱动电机。电机驱动模块主要由L298N驱动芯片和IN4001稳压二极管组成,L298N外接5V电源供电和12V电源供电和接地。L298N可以同时驱动两个电机转动,但本次设计只需要驱动一个电机,ENA端接单片机的PWM输出端,OUT1和OUT2接电机为电机供电IN1和IN2接单片机P26和P27端口。

图3.3 电机驱动模板原理图

③ 红外模块

该模块主要是为了实现上位机和下位机的通讯,上面集成有红外发射头,红外接收头,红外拓展头以及UART单片机串口通信接口。其中红外发射头是用于发射红外信号,波长为940nm 38k NEC编码信号的发射,红外接收头用于接收NEC红外信号[8]。进而才能让单片机进行分析解码操作;拓展头可以再外接红外发射头作为拓展使用;通讯接口主要是为了与单片机或者上位机建立连接,通讯方式为串口通讯。 

图3.4 红外模板原理图

4  软件设计

本次软件设计,一共分为两个部分,语音识别系统设计和控制系统设计。

其中语音识别系统的设计主要包括,模板训练、语音采集、端点检测、加窗分帧、特征参数提取、模板匹配、通讯程序以及人机交互界面设计几个部分。上位机的软件设计也是本次毕业设计的重点内容,语音识别的效果直接影响到了整个系统的运行。

控制系统软件设计是基于单片机的设计,主要分为串口通讯程序和电机控制程序两个部分。

4.1 语音识别系统设计

本次语音识别系统软件设计主要是基于MATLAB。MATLAB具有强大的数据处理功能,也被叫做矩阵实验室,在编程方面,MATLAB可以用C语言编写,同时MATLAB又提供许多可以调用的函数,另外利用MATLAB的GUI功能可以方便地绘制人机交互界面。本次语音识别系统软件设计分为,信号采集、信号预处理、特征参数提取、加窗分帧、端点检测等几个部分。软件流程图见下页:

图4.1 语音识别软件流程图

4.1.1 语音信号采集

一般来说,采集语音可以通过三个步骤来实现。第一是使用传感器进行语音信号的接收然后进行信号放大和信号调理。第二是使用A/D转换电路把语音模拟信号转化为数字信号。第三部分就是使用电路接口把数字信号传送到PC机。在本次设计过程中使用的笔记本自带的声卡,调用了MATLAB声卡的使用函数,所以能够直接使用电脑内存声卡功能采取语音。

MATLAB中声卡调用函数为:

fs =44000;

R = audiorecorder(fs,16,2);

其中fs为采样频率,频率越高保真度越好,但是也不能过于高,一般来说根据人声的特点采样频率再8000Hz以上都可以,采样频率越高对硬件的要求也越高。16表示采样的数据以16bit保存,2表示采集两个声道的语音信号。

4.1.2 语音信号预处理

语音采样之后要对信号进行预处理,首先要对信号的幅进行归一化[9]方便后续处理,避免不必要的干扰;然后通过高通滤波,滤除一些低频噪声。最后利用语音信号分帧分帧是利用语音的短时间平稳特性[10]。将很长的语音信号进行分段,一般为是10ms以内, 也就是在时间域上将波动很大的语音信号分为成具有短而平稳特性的语音信号来处理。具体来说,是通过对语音信号加入窗函数来实现的, 即rw (n)= r(n)* w(n),其中r(n)为原始的语音信号, rw(n)加入窗函数后的语音信号, w(n) 为窗函数。窗函数,就像一个移动窗户,只有在窗函数一个区间是非零值,其他区间都是0,所以当信号卷积窗函数时,就相当于只取了那个区间的值。在语音信号的处理中, 一般选用汉明窗来进行语音的分帧。分帧示例图如下:

第k帧

第k+1帧

    

帧移      帧长

图4.2 帧长帧移示例图

通过预处理,语音信号变得比较容易分析,提取参数也比较容易。预处理MATLAB实现代码如下:

k=double(k);

k=k/max(abs(k));      %归一化

k=filter([1 -0.9375],1,k); %高通滤波

k=enframe(k,256,80);  %调用窗函数

其中k为语音信号,在高通滤波器中参数为滤波器系数可以表示为方程 :

kj 为滤波后新得到的序列,ki为滤波前的序列,通过此差分滤波方程后语音信号会变得更平滑,有效地滤除一些低频的噪声。

预处理后的语音信号如下:

图4.3 预处理后语音信号

4.1.3 MFCC语音特征参数提取

MFCC是Mel频率倒谱系数的缩写。具体来说是对语音信号进行分帧处理后再对每一帧进行一种频谱特征参数的提取。如果是训练模板的语音样本就保存为一个模板参数文件,有待测语音信号进来时就调用模板参数文件进行模板匹配。MFCC语音特性参数提取在语音识别和说话人识别方面运用及其广泛,其处理的流程如下图:

图4.4 特征参数提取流程

① FFT 

FFT为快速傅里叶变换,主要是让信号显示出不同的性质。语音信号傅里叶变换以后,得到每帧语音信号的频谱系数[11]。同时也可以清楚地看出能量在频谱上的分布。进行FFT主要是因为在时间域里是很难分析信号的特性的,而在频域上很容易发现其规律。

② Mel滤波器组

Mel滤波器组是有n个三角形滤波器组组成的,让进行FFT后能量谱通过其中,其中心频率为f(n) [n=1,2…n];n通常取22-26,在本次设计中,所取参数为24。其原理如下公式:

         &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值