语音识别报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“启动”的时域波形
1、 语音预加重:
由于语音信号在高频部分衰减,在进行频谱分析时,频率越高,所占的成分越小,进行语音预加重,可以提升语音高频部分,使频谱变得平坦,以方便进行频谱的分析和处理。通常的措施是采用数字滤波器进行预加重,传递函数是:11)(--=z z H α,其中α一般去0.92-0.98之间,所以在计算的时候取0.9375。
预加重后的波形
2、 分帧 加窗
语音信号具有较强的时变特性,其特性是随时间变化的,但是语音的形成过程与发音器官的运动有关,这种物理运动比起声音振动的速度十分缓慢,在较短的时间内,语音信号的特征可以被认为是保持不变的,通常对语音处理是通过截取语音中的一段进行处理的,并且短段之间彼此经常有一些叠加,这一段语音成为一帧语音,语音段的长度称为帧长,对每一帧处理的结果可用一组数来表示。一般取帧长为10—30ms 。采样频率是8000Hz ,所以取的帧长是256,帧移是178。分帧之后加汉明窗。
3、 端点检测
端点检测从背景噪声中找出语音的开始和终止点。
短时能量就是每帧语音信号振幅的平方和。
∑-==1
0)]([N m n m s E ;
短时能量曲线
短时过零率是每帧内信号通过零点的次数,是信号采样点符号的变化次数。
∑-=+-=1
)]1(sgn[)](sgn[21N m n m x m x Z ;
“启动”的过零率曲线
在实验室的安静的环境下,依靠短时能量和短时过零率就可进行语音信号的起止点判断。当背景噪声较小时,没有语音信号的噪声能量很小,而语音信号的短时能量增大到了一定数值,可以区分语音信号的开始点和终止点。当背景噪声较大时,可以用短时平均过零率和短时能量结合来判断。
基于能量一过零率的端点检测一般使用两级判决法,在开始进行端点检测之前,首先为短时能量和过零率分别确定两个门限。整个语音信号的端点检测可以分为四段:静音、过渡音、语音段、结束时的静音段,
(1)如果能量或过零率超越了低门限,就应该开始标记起点,进入过渡段。在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果在过渡段中两个参数中的任一个超过了高门限,就可以确信进入语音段了,并标记起始点。
(2)如果当前状态之前处于语音段,而此时两个参数的数值降低到底门限以下,并且持续时间大于设定的最长时间门限,那么就认为语音结束了,返回到参数值降低到底门限以下的时刻,标记结束点。
端点检测波形
4、 特征提取
检测到语音的起点后就可以开始对检测出来的语音信号段中抽取语音识别所需的信号特征,语音特征参数是分帧提取的,每帧特征参数一般构成一个矢量,因此语音特征量是一个矢量序列。语音信号中提取出来的矢量序列经过数据压缩后便成为语音的模板。
目前,有效的特征参数有线形预测编码(LPC)系数,线形预测编码倒谱(LPCC)系数和Mel 频率倒谱系数(MFCC),其中比较常用的是MFCC 。
MFCC 参数:
人耳对不同频率的声波有不同的听觉灵敏度,因此从低频到高频这一段频带内按临界带宽的大小由密到稀安排一组带通滤波器。对输入信号进行滤波,将每个带通滤波器输出的信号的量作为信号的基本特征,对此特征进行进一步处理后就可以作为语音识别系统的输入特征。
MFCC 参数也是按帧计算的,计算通常采用如下的流程:
(1)首先初始化Mel 三角滤波器组,取滤波器的个数是24个,其中心频率依次为28Hz 、89Hz 、154Hz 、224Hz 、300Hz 、383Hz 、472Hz 、569Hz 、674Hz 、787Hz 、910Hz 、1043Hz 、1187Hz 、1343Hz 、1512Hz 、1694Hz 、1892Hz 、2106Hz 、2338Hz 、2589Hz 、3154Hz 、3472Hz 、3817Hz 。
(2)首先对每一帧序列进行离散FFT 变换,取模的平方得到离散功率谱。
(3)计算功率谱通过24个滤波器后所得的功率值,得到24个参数m P ,对m P 去取对数得到m L 。
(4)对m L 进行离散余弦变换, )24/)5.0(cos(241n m L
C m m n -=∑=π
得到MFCC 参数,通常取前13个系数作为该语音的特征参数。
对每一帧进行MFCC 的计算,就得到了一个行数是语音的帧数,列数是13的表征语音特征的矩阵。
5、 矢量量化
在特征提取之后,对矢量序列要进行矢量量化,就是用若干离散的数字值(或称为标号)来表示各帧的13维参数矢量。
矢量量化过程:将语音信号的
(1) 首先对矢量序列进行聚类,根据语音信号的特征矢量聚类得到另一组量化矢量作为
码书,每个矢量成为码字,这组量化矢量长度选择32。
(2) 计算特征矢量与每个码字的失真度,用失真度最小的特征矢量的标号代替该特征矢
量,这样将一个矩阵转换为一个矢量。
6、 训练和识别
语音识别过程是根据模式匹配原则,计算未知语音模式与语音模板库中的每一个模板的距离测度,从而得到最佳的匹配模式。语音识别所应用的模型匹配方法主要有动态时间弯折、隐式马尔可夫模型和人工神经网络。
隐马尔科夫模型是用于描述随机过程统计特性的概率模型,在实际问题中,观察者只能看到观察值,而观察值并不与状态一一对应,因此,不能直接看到状态,而只能是通过一个随机过程去感知状态的存在及其特征。因此称之为隐马尔科夫模型(HMM )。在HMM 中有5个参数。
(1)N :模型中状态数目。记N 个状态为N θθ,, 1,记t 时刻所处状态为t q 。
(2)M :每个状态对应的可能的观察值数目。记M 个观察值为M νν,,1 ,记t 时刻观察到的观察值为t o 。
(3)π:初始状态概率矢量,),,(1N πππ =,其中N i q P i i ≤≤==1),(1θπ。
(4)A :状态转移概率矩阵,N N ij a A ⨯=)(,其中)|(1t t j t ij q q P a θθ===+。
(5)B :观察值概率矩阵,M N ij b B ⨯=)(,其中)|(j t j t ij q v o P b θ===。
这样,可以记一个HMM 为),,,,(B A M N πλ=。
语音信号本身是一个可观察序列,但它是由大脑中的(不可察序列)、根据言语需要和语法知识(状态选择)所发出的音素(词、句)参数流,所以,可以用HMM 模型来描述语音信号。语音识别中的孤立词识别,对每个孤立词建立一个HMM 模型,当输入一个孤立词时,先对它进行特征值的提取,利用矢量量化将矢量序列转换为一组符号,然后计算这组符号和每个HMM 上的输出概率,概率最值所对应的孤立词就是识别结果。
孤立词的语音识别中主要解决三个问题:
(1)给定观察值序列T o o o O ,,2,1 =,(T 是语音信号帧的长度)和模型λ的情况下,计算给定模型参数时观察值序列的概率)|(λO P 。
(2)给定观察值序列T o o o O ,,2,1 =和模型λ,选择对应的最优状态序列T q q q q ,,,21 =。该问题将揭示模型的隐含部分,即估计出模型产生观察值序列时可能经历的路径,并选择出概率最大得一条路经。
(3)如何调整模型参数λ元(AB),使P 最大,这是一个训练过程来训练HMM ,它可以使模型参数最为理想地适应所观察到的训练数据。
所以在模板训练中主要解决第三个问题,对每个词分别进行训练,得到模型参数,然后对要识别的词在每个模板下进行问题一的计算,得到最大的概率,将其对应的模板作为结果。