基于Matlab仿真的孤立词语音识别技术研究
基于MATLAB的特定人语音识别算法设计毕业设计

本科毕业设计基于MATLAB的特定人语音识别算法设计摘要语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信网中最重要、最基本的组成部分之一。
而在随着科技技术的发展的今天,除了人与人之间的自然语言通信之外,人与机或机器与机器之间也开始使用语言。
也就是因为如此,需要涉及到语音识别技术。
为了解决机器能“听懂”人类的语言,在科技如此迅猛发展的今天,语音识别技术一直受到各国科学界的关注,其对计算机发展和社会生活的重要性也日益凸显出来。
在孤立字语音识别中,如语音密码锁,汽车控制等领域,都运用到了特定人语音识别技术,也就是DTW算法,相对于HMM算法,DTW算法具有简单操作。
在相同环境下,两者识别效果相差不大,但是HMM算法要复杂得多,主要体现在HMM算法在训练阶段需要提供大量的语音数据,而DTW算法则不需要额外的计算。
所以在特定人语音识别当中,DTW算法被广泛使用。
在本次设计中,将运用到MATLAB平台来对语音信号进行处理及识别。
相对于C语言而言,MATLAB平台更能给用户提供一个简单易懂的代码分析窗口。
而且在个性化设计中,MATLAB可以为用户提供一个人性化界面--GUI。
所以,此次设计,通过MATLAB 平台建立一个GUI界面,接着对一组语音信号的输入进行预处理及端点检测,提取特征参数(MFCC),形成参考模块。
然后再对一组相同的语音信号输入进行同样的操作作为测试模块,与参考模块进行DTW算法进行匹配,输出匹配后的识别结果。
关键词:MATLAB GUI 端点检测MFCC DTWDesign of Speech Recognition Algorithm Based on Specific MATLABCai Jingzuo(College of Engineering, South China Agricultural University, Guangzhou 510642, China) Abstract:Language is a way of human exchange of information the most convenient, quick, highly developed in the information society, for voice transmission, by using the digital method of storage, recognition, synthesis and enhancement is one of the most important parts of the whole, the most basic digital communication network. While with the development of science and technology today, in addition to natural language communication between people, between people and machine or machine and machine are also starting to use the language. It is because of this, need to involve the speech recognition technology. In order to solve the machine can "hear" the human language, the technology is so rapid development today, the speech recognition technology has been the subject of scientific attention of all countries, the importance of computer development and social life is increasingly prominent.In the isolated word speech recognition, such as voice password lock, auto control field, are applied to the speech recognition technology, which is relative to the DTW algorithm, HMM algorithm, DTW algorithm has the advantages of simple operation. In the same environment, both the recognition effect is similar, but HMM algorithm is much more complex, mainly reflected in the HMM algorithm need to provide a large amount of speech data in the training phase, while the DTW algorithm does not need the extra computation. So in the speaker-independent recognition, DTW algorithm is widely used.In this design, will apply to the MATLAB platform to carry on the processing and recognition of speech signal. Compared with the C language, MATLAB platform can provide users with a simple code analysis window. But in the personalized design, MATLAB can provide a human user interface --GUI. So, the design, the establishment of a GUI interface through the MATLAB platform, and then a set of the input speech signal pretreatment, endpoint detection, feature parameter extraction (MFCC), the formation of the reference module. Then a group of the same speech signal input to the same operation as a test module, matching with reference to DTW algorithm module, output matching recognition results.Key words:DTW GUI Endpoint detection MFCC DTW目录1 前言 (1)1.1语音识别的历史背景 (1)1.1.1国外研究历史及现状 (2)1.1.2 国内研究历史及现状 (3)1.2 语音识别技术的应用及研究方向 (4)1.3语音识别系统的基本构成 (5)2 语音信号的数字模型及采集 (6)2.1概述 (6)2.2 语音的发音原理 (6)2.2.1 人的发声器官 (6)2.2.2 语音生成 (8)2.3 语音的听觉机理 (9)2.3.1 听觉器官 (9)2.3.2 耳蜗的信号处理原理 (10)2.4 MATLAB中的语音信号模型 (12)2.4.1 wavrecord函数 (12)2.4.2 wavplay函数 (13)3 语音信号的端点检测 (13)3.1 概述 (13)3.2 MATLAB的语音端点检测算法 (16)3.2.1 短时能量的计算 (16)3.2.2 过零率的计算 (17)3.2.3 端点检测的流程 (19)4语音信号非线性预测分析 (20)4.1 概述 (20)4.2 MFCC的基本原理 (20)4.3 实验结果 (21)5特定人语音识别算法-DTW算法 (22)5.1 DTW算法原理 (22)5.2 DTW算法流程及实验结果 (24)5.2.1 算法流程 (24)5.2.2实验结果 (25)6GUI设计 (26)6.1概述 (26)6.2 GUI界面的打开 (27)6.3作品演示 (29)7结论 (31)参考文献 (31)附录 (32)附录A语音识别主函数 (32)致谢 (38)本科生毕业设计成绩评定表1前言语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信网中最重要、最基本的组成部分之一。
Matlab技术语音识别应用

Matlab技术语音识别应用Matlab技术在语音识别应用中的重要性语音识别是一种将人类语音转换为可被计算机理解和处理的技术。
近年来,随着人工智能和机器学习的快速发展,语音识别技术得到了广泛的应用和研究。
而Matlab作为一种强大的数学计算工具,也在语音识别应用中发挥着举足轻重的作用。
一、声学模型的构建声学模型是语音识别系统中的一个重要组成部分。
它通过建立声学特征与文本之间的映射关系,实现对语音信号的识别和理解。
Matlab提供了丰富的工具箱和函数,可用于提取声学特征、训练和调优声学模型。
比如,使用Matlab中的音频处理工具箱,我们可以将语音信号转换为频域特征,例如梅尔频率倒谱系数(MFCC),这是一种常用的语音特征表示方法。
通过Matlab的训练和优化算法,我们可以构建高效准确的声学模型,提高语音识别的精度和性能。
二、语言模型的开发语言模型是指根据已有的语言数据,推断出言语的概率分布模型。
它可以用于解决音素和词汇的歧义问题,提高语音识别的准确性。
Matlab提供了强大的统计工具和机器学习算法,可以用于开发和优化语言模型。
例如,通过Matlab的自然语言处理工具箱,我们可以进行文本分析和处理,应用统计模型和概率算法,准确推断出不同词汇的概率分布。
这样,在语音识别过程中,可以将语言模型和声学模型结合,提高识别结果的可靠性和准确性。
三、噪声抑制和特征增强语音识别系统在现实应用中经常面临环境噪声和语音信号质量不佳的情况。
因此,噪声抑制和特征增强技术对于提高语音识别的性能非常重要。
Matlab提供了多种噪声抑制和语音增强算法,可以有效地减少环境噪声对语音信号的干扰,提高信号的质量。
例如,使用Matlab中的波形处理函数,我们可以对语音信号进行滤波和降噪,去除噪声成分。
另外,通过Matlab的频域分析工具和声学特征提取工具,可以对语音信号进行频谱平滑和特征增强处理,增加语音特征的可辨识度,提高语音识别的准确性。
Matlab在语音识别中的应用技巧

Matlab在语音识别中的应用技巧一、引言语音识别是人工智能领域中的重要研究方向之一。
它的目标是使计算机能够听懂人类的语音并进行相应的处理。
如今,语音识别已广泛应用于语音助手、智能客服、语音翻译等领域,给人们的生活带来了很大的便利。
在语音识别的研究中,Matlab作为一种强大的计算工具,发挥着重要的作用。
本文将介绍一些Matlab在语音识别中的应用技巧。
二、语音信号的预处理在进行语音识别之前,首先需要对语音信号进行预处理。
预处理的目标是提取语音特征,并减少噪声的干扰。
Matlab提供了许多函数和工具箱来实现这些功能。
以下是一些常用的预处理技巧:1. 语音信号的分帧和加窗语音信号通常是一个连续的信号,在进行处理之前需要将其分成若干个帧,并对每个帧应用一个窗函数。
这样可以使语音信号在时间上局部化,并减少频谱泄漏。
2. 预加重预加重是对分帧后的每个帧进行加权处理,目的是强调高频部分,减少低频部分的能量。
这样可以提高语音信号的辨识度。
3. 噪声抑制在语音信号中常常存在各种噪声,如环境噪声、机器噪声等。
为提高语音识别的准确性,需要对噪声进行抑制处理。
Matlab提供了一些强大的降噪算法,如Spectral Subtraction、Wiener Filtering等。
三、语音特征提取语音特征提取是语音识别的核心步骤之一。
它的目标是从语音信号中提取能够区分不同语音的特征。
以下是一些常用的语音特征提取技巧:1. 短时能量短时能量是指语音信号每个帧的能量大小。
它可以用来检测语音的起止位置,并判断是否为有声音的帧。
2. 短时过零率短时过零率是指语音信号每个帧中过零点的个数。
它可以用来检测语音的浊音与清音,以及语音的发音速度。
3. 倒谱系数(MFCC)MFCC是一种非常常用的语音特征提取方法。
它通过对语音信号的梅尔频谱进行离散余弦变换得到,具有较好的鲁棒性和可区分性。
四、语音识别算法语音识别算法是进行语音识别的核心部分。
如何在Matlab中进行语音识别与处理

如何在Matlab中进行语音识别与处理引言语音识别与处理是计算机科学领域中一项重要的技术,它旨在帮助计算机理解人类语言,并能够对语音进行分析与处理。
Matlab作为一种流行的科学计算软件,提供了强大的语音处理功能,为开发语音识别算法提供了便捷的工具和环境。
本文将介绍如何在Matlab中进行语音识别与处理的基本方法和步骤。
一、语音数据的获取和处理1.语音数据的获取在进行语音识别与处理之前,我们首先需要获取语音数据。
语音数据可以通过麦克风或外部录音设备进行采集,也可以从公共数据库或其他可用资源中获得。
Matlab提供了一系列的函数和工具箱,方便读取和处理不同格式的音频文件,如WAV、MP3等。
2.语音数据的预处理获取到语音数据后,我们需要对其进行预处理。
这包括去除噪声、降低采样率、抽取语音特征等操作。
Matlab提供了丰富的音频信号处理函数和算法,例如消噪滤波、谱分析、时频分析等,可用于对语音信号进行预处理和特征提取。
二、语音信号的特征提取1.短时能量和过零率短时能量和过零率是最常用的语音特征之一。
短时能量表示语音信号在短时间内的能量大小,过零率表示语音信号在短时间内过零的次数。
Matlab提供了一系列函数用于计算短时能量和过零率,如enframe、frame2sample等。
2.梅尔频率倒谱系数(MFCC)MFCC是一种常用的语音特征提取方法,它使用了梅尔滤波器组对频谱进行映射,并通过离散余弦变换(DCT)将频谱转换为倒谱系数。
Matlab提供了mfcc函数用于计算MFCC特征,并可通过调整滤波器组的参数来优化特征提取效果。
3.线性预测编码(LPC)LPC是一种基于线性预测模型的语音分析方法,它通过对语音信号进行线性预测来估计语音信号的参数。
Matlab提供了lpc函数用于计算LPC系数,并可通过解线性方程组来估计语音信号的预测残差。
三、语音识别算法的开发与实现1.基于模板匹配的识别算法模板匹配是一种简单而有效的语音识别方法,它通过比较输入语音信号和事先存储的模板语音信号进行匹配,找出最相似的模板。
MATLAB在机器语音识别与自然语音生成中的语音特征提取与语言模型建模研究

MATLAB在机器语音识别与自然语音生成中的语音特征提取与语言模型建模研究一、引言自然语言处理(NLP)是人工智能领域中的重要研究方向之一。
语音识别和语音生成作为NLP的两个关键问题,一直受到广泛的关注。
而在这两个问题中,语音特征提取和语言模型建模是至关重要的环节。
本文将以MATLAB为工具,探讨在机器语音识别和自然语音生成中,如何应用MATLAB进行语音特征提取和语言模型建模的研究。
二、语音特征提取语音信号是一种时域信号,要将其转化为适于机器识别的特征,需要进行特征提取。
在MATLAB中,可以通过一系列的信号处理算法实现语音特征的提取。
首先,对语音信号进行预加重处理,以增强高频信息。
然后,利用短时傅里叶变换(STFT)将时域信号转化为频域信号。
通过对STFT结果进行加窗操作,可以将信号分割为一系列帧。
每一帧的特征可以通过计算帧能量、过零率以及一些频域特征如梅尔频率倒谱系数(MFCC)来得到。
MFCC是一种常用的语音特征,它通过将语音信号的频谱映射到梅尔刻度上,并计算其倒谱系数,来表示语音的特征。
此外,零交叉率(ZCR)也是一种常用的特征提取方法。
通过计算语音信号每帧过零次数的平均值,可以得到语音信号的ZCR特征。
以上是一些常见的语音特征提取方法,在实际应用中,还可以根据具体情况选择适合的特征提取算法。
三、语音识别与语言模型建模语音识别的目标是将语音信号转化为文本。
为了达到这一目的,需要建立一个语言模型。
MATLAB提供了一些常用的模型算法,如隐马尔可夫模型(HMM)和深度学习(Deep Learning)。
在语音识别中,HMM是一种常见的模型。
HMM假设语音信号是由一系列隐藏的状态和对应的观测值组成的。
通过观察到的语音特征序列,使用前向算法或后向算法可以得到最有可能的隐藏状态序列,进而得到对应的文本。
而深度学习则是近年来在语音识别中得到广泛应用的一种模型。
深度学习使用神经网络对语音信号进行建模和训练。
MATLAB下的基于HMM模型的语音识别技术的实现

M ATL AB 下 的 基 于 HM M 模 型 的 语 音 识 别 技 术 的 实 现
The R e i a i n fSpee alz t o o ch Rec ognii ton Technol ogy Ba ed s on M M n A TLA B H i M
CL n C umbe : 39 r TP 1
Doc ume ntc de: o A
Ari I 1 3 tde D: 00 -01 ( 01 4 01 -0 07 2 1 —0 7 3
1引言
语音识别技术 为人们提供一种 更 便 的人机界面 , 使人与 计算机之间 、 人与人之间的通信更加方便 、 。随着对语音识 快捷
2语音 识 别 技 术概 述
语 音识 别 属 于 模 式识 别 范 畴 ,它 与 人 的 认 知 过 程 一 样 , 其 过 程 分 为训 练 和 识 别 两 个 阶段 。 在 训 练 阶 段 , 音 识 别 系统 对 语
输入 的语音信号进行学习。学 习结 束后 , 把学 习内容组成语 音
模 型 库 存 储 起 来 ; 识 别 阶段 , 据 当前 输 入 的待 识 别 语 音 信 在 根 号, 在语 音模 型 库 中查 找 相 应 的词 义 或 语 义 。
别 技 术 深入 的研 究 , 已经 发展 成 为 一 门跨 越 多 领 域 的 综 合 学 它 科, 它 声 学 、 言 学 、 理 学 、 号 处 理 、 T 智 能 、 式 识 别 、 语 心 信 人 模
词条 的统计模 型 , 然后从待识别语音信 号中提取特征 , 与这些
模 型 进行 配 , 过 比较 匹配 分 数 以获 得 识 别 结果 。通 过 大 量 通 的语 音 , 能 够 获 得 一 个 稳 健 的统 计 模 型 , 够 适 应 实 际 语 音 就 能
基于MATLAB的孤立字语音识别试验平台

基于MATLAB的孤立字语音识别试验平台
李潇;王大堃
【期刊名称】《四川理工学院学报(自然科学版)》
【年(卷),期】2006(019)003
【摘要】文章研究了两种不同语音识别算法-动态时间伸缩算法(DTW)和隐马尔可夫模型(HMM),并在模式匹配原理的基础上,设计、实现了在Matlab环境中,应用DTW识别法及HMM识别法的孤立字语音识别实验平台.
【总页数】4页(P97-100)
【作者】李潇;王大堃
【作者单位】贵州大学计算机科学与工程学院,贵阳,550025;贵州大学计算机科学与工程学院,贵阳,550025
【正文语种】中文
【中图分类】TP391.42
【相关文献】
1.基于MATLAB的孤立词语音识别系统分析 [J], 肖雯娟
2.孤立词语音识别系统的MATLAB实现 [J], 杨熙;苏娟;彭勇群
3.孤立词语音识别系统的MATLAB实现 [J], 杨熙;苏娟;彭勇群
4.一种抗噪孤立字语音识别模型 [J], 徐文盛;戴蓓倩;方绍武;李辉
5.基于卷积神经网络的大容量汉语孤立字语音识别方法 [J], 白璐;王连明
因版权原因,仅展示原文概要,查看原文内容请购买。
孤立词语音识别程序

孤立词语音识别程序信息处理仿真实验语音处理部分实验目的------- 按所学相关语音处理的知识,自己设计一个孤立词语音识别程序,分析所设计系统的特性。
熟悉不同模块间如何进行有效的组合,以及模块内的设计,重点掌握特征参数的提取和模式识别方法,并对不同的特征参数提取方法和模式匹配方法有大概的了解,知道其不同的优缺点。
实验内容1、熟悉预处理、特征参数提取、模式匹配三个模块的原理,并设计这三个模块的matlab子程序。
2、设计主程序,将上述3个模块合理组合构成一个系统,训练模板并测试。
三、实验原理及设计步骤1、孤立词语音识别系统:先用端点检测将语音中有用的语音部分提取出来(即将头部和尾部的静音部分除掉),然后提取语音信号的Mel尺度倒谱参数(MFCC)进行动态归整(DTW算法)后与模板库里面的标准语音作比较,具体流程如下:失直灘图3.1孤立词语音识别系统2、各模块解析⑴预处理:包括反混叠失真滤波器、预加重器、端点检测和噪声滤波器。
这里将预加重器和噪声滤波器放在下一个模块里,所以预处理主要进行端点检测以捕捉到数据中的语音信息。
端点检测采用双门限法来检测端点。
同时,利用过零率检测清音,用短时能量检测浊音,两者配合。
整个语音信号的端点检测可以分为四段:静音、过渡段、语音段、结束。
程序中使用一个变量status来表示当前所处的状态。
在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。
在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要N 1 S(m) lnk 02X w(k) H m(k) 0 m M两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。
而如果在过渡段中两个参数中任意一个超过了高门限,就可以确信进入语音段了。
一些突发性的噪声可以引发短时能量或过零率的数值很高,但是往往不能维持足够长的时间,这些可以通过设定最短时间门限来判别。
当前状态处于语音段时,如果两个参数的数值降低到低门限以下,而且总的计时长度小于最短时间门限,则认为这是一段噪音,继续扫描以后的语音数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Matlab仿真的孤立词语音识别技术研究摘要:研究一种改进的语音识别算法---改进的端点检测(滑动帧)动态时间规整(DTW)算法, 以一个能识别数字0~10的语音识别系统的实现过程为例,阐述了基于DTW算法的特定人孤立词语音识别的基本原理和关键技术。
其中包括对语音端点检测方法、特征参数计算方法和DTW算法实现的详细讨论,最后给出了在Matlab下的编程方法和实验结果。
关键词:语音识别,端点检测,MFCC,动态时间规整算法,短时傅里叶变换Research Of Chinese Isolated Words Speech RecognitionBased on MatlabAbstract: The paper researched an improved speech recognition system which is the moving frame of endpoint detection and simplified algorithm of Dynamic Time Warping (DTW) With an example of the realization of a 0~10 identifiable speech recognition system, the paper described the basic principles and key technologies of isolated word speech recognition based on DTW algorithm, including method of endpoint detection, calculation of characteristic parameters, and implementation of DTW algorithm. Programming method under Matlab and experimental results are given at the end of the paper.Key: speech recognition,endpoint detection,MFCC,DTW, Short time Fourier transform1引言近年来,语音识别已经成为一个非常活跃的研究领域。
在不远的将来,语音识别技术有可能作为一种重要的人机交互手段,辅助甚至取代传统的键盘、鼠标等输入设备,在个人计算机上进行文字录入和操作控制。
而在手持式PDA、智能家电、工业现场控制等应用场合,语音识别技术则有更为广阔的发展前景21世纪是信息和网络的时代,Internet和移动通信、固话通信的网络把全球各地连接起来。
自然口语对话、电子商务、信息索取、数字图书馆、语音翻译、远程教育等一系列的人类活动都可在网络上实现。
语音识别系统的出现,会让人更加自由的沟通,让人在任何地方,任何时间,对任何事都能够通过语音交互的方式,方便地享受到更多的社会信息资源和现代化服务。
这必然会成为语音识别技术研究和应用的重要发展趋势[1][2]。
当前,根据识别的对象不同,语音识别任务大体可分为3类,即(1)孤立词识别(isolated word recognition),(2)关键词识别(或称关键词检出,keyword spotting)(3)连续语音识别。
孤立词识别的任务是识别事先已知的孤立的词,如“开机”、“关机”等;连续语音识别的任务则是识别任意的连续语音,如一个句子或一段话;连续语音流中的关键词检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词在何处出现,如在一段话中检测“计算机”、“世界”这两个词。
一般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、利用人工神经网络的方法以及模式匹配的方法。
其中模式匹配方法的发展比较成熟,目前已达到实用阶段,而其他两种方法由于其模型及语音知识过于复杂,现阶段还没有达到实用的阶段。
就模式识别来说常用技术有:动态时间规整(DTW)、隐马尔可夫模型(HMM)。
本文采用了动态时间规整(DTW)的方法来实现对孤立词的识别,具体用来识别0~10十一个数字。
2 语音识别简介2.1语音识别系统的分类语音识别是近年来十分活跃的一个研究领域。
在不远的将来,语音识别技术有可能作为一种重要的人机交互手段,辅助甚至取代传统的键盘、鼠标等输入设备,在个人计算机上进行文字录入和操作控制。
本文介绍了语音识别的基本流程、所用到的语音参数算法、语音识别的训练算法和识别算法做初步的探究,主要运用了特定人孤立词识别的DTW算法和非特定人识别的连续HMM算法的MATLAB识别系统。
语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词(Connected Word)识别和连续语音(Continuous Speech)识别。
孤立词识别是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个词条,一般用在语音电话拨号系统中。
连接词语音识别支持一个小的语法网络,其内部形成一个状态机,可以实现简单的家用电器的控制,而复杂的连接词语音识别系统可以用于电话语音查询、航空定票等系统。
连续语音识别是指对说话人以日常自然的方式发音,通常特指用于语音录入的听写机。
显然,连续非特定人语音识别的难度要大得多,因为不仅有说话人口音的问题,还有协同发音、断字断句、搜索等问题,除了考虑语音的声学模型外还要涉及到语言模型,如构词法、文法等。
2.2语音识别系统的基本构成语音识别系统的典型实现方案为:输入的模拟语音信号首先要进行预处理,包括预滤波、采样和量化、加窗、端点检测、预加重等。
语音信号经预处理后,接下来很重要的一环就是特征参数提取。
对特征参数的要求是:(1)提取的特征参数能有效地代表语音特征,具有很好的区分性。
(2)各阶参数之间有良好的独立性。
(3)特征参数要计算方便,最好有高效的计算方法,以保证语音识别的实时实现。
在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模版库。
在识别阶段,语音喜好经过相同的通道得到语音参数,生成测试模版,与参考模版进行匹配,将匹配分数最高的参考模版作为识别结果。
同时还可以在很多先验知识的帮助下,提高识别的准确率。
3 参数提取3.1语音识别系统概述语音识别系统的典型原理框图,如图3-1所示。
从图中可以看出语音识别系统的本质就是一种模式识别系统,它也包括特征提取、模式匹配、参考模式库等基本单元。
由于语音信号是一种典型的非平稳信号,加之呼吸气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。
预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。
经过预处理的语音数据就可以进行特征参数提取。
在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。
在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。
后续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输入的语音信号转变成文本或命令。
图3-1 语音识别系统的典型原理框图本文所描述的语音识别系统将对数字0~10共11段参考语音进行训练并建立模板库,之后将对多段测试语音进行识别测试。
系统实现了上图中的语音输入、预处理、特征提取、训练建立模板库和识别等模块,最终建立了一个比较完整的语音识别系统。
3.1 语音信号预处理语音信号的预处理模块一般包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。
在不同的系统中对各子模块会有不同的要求,如在嵌入式语音识别系统中一般要求有防混叠滤波电路[5]、A/D转换电路和采样滤波电路等,而在计算机上实验时则可由音频采集卡完成,无需实验者亲自动手。
3.1.1语音信号采集在Matlab环境中语音信号的采集可使用getaudiodata(recorder, dataType)函数采集[4],也可使用相关软件,如Adobe的Audition、Windows的“录音机”程序等,将录制成.wav文件然后使用wavread(file) 函数读入。
为了进行实时的的训练和识别处理,本系统的训练语音和识别语音全部getaudiodata(recorder, dataType)录制。
图3-2所示为数字10的采集语音言语数字3的信号波形图。
图3-2 数字10的语音波形3.1.2 分帧语音信号是一种典型的非平稳信号,它的均值函数u(x)和自相关函数R(xl,x2)都随时间而发生较大的变化[5][9]。
但研究发现,语音信号在短时间内频谱特性保持平稳,即具有短时平稳特性。
因此,在实际处理时可以将语音信号分成很小的时间段[2](约10~30ms),称之为“帧”,作为语音信号处理的最小单位,帧与帧的非重叠部分称为帧移,而将语音信号分成若干帧的过程称为分帧。
分帧小能清楚地描绘语音信号的时变特征但计算量大;分帧大能减少计算量但相邻帧间变化不大,容易丢失信号特征。
一般取帧长10-30ms,帧移为帧长的1/3~1/2。
在Matlab环境中的分帧最常用的方法是使用函数enframe(x,len,inc),其中x为语音信号,len为帧长,inc为帧移。
在一般情况下帧长取240,帧移取80,而这种方法的缺陷在于,采集语音的前半部分和后半部分,可以认为是静音段,静音段仍然采用相同长度的帧长没有必要,只会增加计算量。
因此本文中,提出了一种滑动帧的分帧方法,可以在语音静音段时,采用较长的窗:在语音和静音的过渡段时采用较小的窗,可以确切判断语音的起始点,一旦确定语音的起点就改用常规窗长。
公式3-1、3-2,计算出语音信号半帧的点数,31k =-」log[(fs/1000)/log2]+1 ()322k s =- ( )其中,fs 表示语音信号采样频率,」为向下取整符号,在Matlab 中可用floor 函数计算,s 表示每半帧的点数,因此在进行分帧是帧长len=2*s,帧移inc=s ,采用这种方法便可以有效的进行简化分帧运算。
3.1.3预加重对于语音信号的频谱,通常是频率越高幅值越小,在语音信号的频率增加两倍时,其功率谱的幅度下降6dB 。
因此必须对高频进行加重处理,一般是将语音信号通过一个一阶高通滤波器1-0.9375z-1,即为预加重滤波器。
其目的是滤除低频干扰,特别是50Hz 到60Hz 的工频干扰,将对语音识别更为有用的高频部分进行频谱提升。
在计算短时能量之前将语音信号通过预加重滤波器还可起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。
预加重滤波器在Matlab 中可由语句x=filter([1-0.9375],1,x)实现[2]。