利用MATLAB平台实现少量字的语音识别

合集下载

利用Matlab进行语音增强与语音识别的技术解析

利用Matlab进行语音增强与语音识别的技术解析

利用Matlab进行语音增强与语音识别的技术解析语音是人类最基本的交流工具之一,准确的语音信号处理可提升语音信号的质量,从而提高语音识别的准确率。

本文将结合Matlab的语音增强与语音识别技术,详细探讨语音增强与语音识别的原理和实现方法。

一、语音增强技术的原理与实现1.1 语音增强的意义与目标语音增强是指通过信号处理技术对语音信号进行去噪、增强,提升语音信号的清晰度和可听性,以改善语音通信质量。

在实际应用中,语音增强技术有助于提高语音识别的准确率,并且在语音通信、语音录音等领域也得到了广泛的应用。

1.2 语音增强的处理流程语音增强的处理流程通常包括预处理、特征提取和信号恢复三个步骤。

预处理阶段主要是对语音信号进行降噪和去除混响等操作,以减少背景噪音对语音分析的干扰。

特征提取阶段是将处理后的语音信号转换为特征向量,常用的特征提取方法包括短时能量、过零率和MFCC等。

最后一步是信号恢复,将特征向量转换回语音信号。

1.3 MatLab在语音增强中的应用MatLab是一种强大的数据处理和可视化工具,它提供了丰富的信号处理函数和工具箱,非常适合语音增强的实现。

例如,MatLab的Noise Reduction Toolbox提供了多种降噪算法,如噪声门限、频域滤波等,可以有效地降低语音背景噪音。

此外,MatLab还提供了多种滤波算法,如自适应滤波、非线性滤波等,可用于去除混响和残余噪声。

二、语音识别技术的原理与实现2.1 语音识别的意义与应用语音识别是将语音信号转化为文本或命令的过程,可以广泛应用于语音助手、语音导航、智能家居等领域。

准确的语音识别可以提高人机交互的效率和便利性。

2.2 语音识别的基本原理语音识别的基本原理是将语音信号转化为特征向量,并通过分类器将特征向量映射到对应的文本或命令。

常用的特征提取方法包括MFCC、倒谱系数、线性预测编码等。

分类器可以采用隐马尔可夫模型(HMM)、神经网络(NN)等算法,以实现对不同语音的分类和识别。

MatLab环境下调用HTK的连续语音识别方法

MatLab环境下调用HTK的连续语音识别方法

MatLab环境下调用HTK的连续语音识别方法【摘要】本文根据HTK(HMM Toolkit)的基本原理,在MatLab环境下通过调用HTK各命令实现小词汇量连续语音识别。

采用HTK工具包搭建语音的隐马尔可夫模型(HMM),再利用MatLab循环编程开发进行仿真实验,避免了传统地逐步运行HTK各个命令的冗余操作,降低了操作复杂度。

【关键词】HTK;语音识别;隐马尔可夫模型Abstract:According to the basic principle of HTK(HMM Toolkit),small vocabulary continuous speech was recognized based on HTK by MatLab programming in this thesis.This thesis used HTK to build HMM model and then used MatLab to program it to do speech recognition,thus it avoided the redundancy of operating single HTK command,and the complexity was reduced.as well.Key words:HTK;Speech Recognition;Hidden Markov Model一、引言语言是交流的最自然方式,它为人机交互提供了一种有效的方法。

但目前人与机器的交互方式多以键盘和鼠标为主,为了让机器与人能够更好地进行交互,出现了基于语音识别的系统使人机对话成为可能。

语音识别就是让计算机通过识别和理解把人类的语音信号转换为相应的命令或者文本的一门技术。

HTK(HMM ToolKit)[1][2]工具包是英国剑桥大学专门开发用于建立和处理隐马尔可夫模型的实验工具包,广泛应用在语音识别领域,在语音合成和字符识别等其他领域也有所应用。

如何使用MATLAB进行语音信号处理与识别

如何使用MATLAB进行语音信号处理与识别

如何使用MATLAB进行语音信号处理与识别引言:语音信号处理与识别是一项应用广泛的领域,它在语音通信、语音识别、音频压缩等方面发挥着重要作用。

在本文中,我们将介绍如何使用MATLAB进行语音信号处理与识别。

首先,我们将讨论语音信号的特征提取,然后介绍常用的语音信号处理方法,最后简要概述语音信号的识别技术。

一、语音信号的特征提取语音信号的特征提取是语音信号处理与识别的重要一环。

在MATLAB中,我们可以通过计算音频信号的频谱特征、时域特征以及声学特征等方式来进行特征提取。

其中,最常见的特征提取方法是基于傅里叶变换的频谱分析方法,比如短时傅里叶变换(STFT)和梅尔频谱倒谱系数(MFCC)。

1. 频谱特征:频谱特征主要包括功率谱密度(PSD)、频谱包络、谱熵等。

在MATLAB中,我们可以使用fft函数来计算信号的频谱,使用pwelch函数来计算功率谱密度,使用spectrogram函数来绘制语谱图等。

2. 时域特征:时域特征主要包括幅度特征、能量特征、过零率等。

在MATLAB中,我们可以使用abs函数来计算信号的幅度谱,使用energy函数来计算信号的能量,使用zcr函数来计算信号的过零率等。

3. 声学特征:声学特征主要包括基频、共振频率等。

在MATLAB中,我们可以通过自相关函数和Cepstral分析等方法来计算声学特征。

二、语音信号处理方法语音信号处理方法主要包括降噪、去除回声、语音增强等。

在MATLAB中,我们可以通过滤波器设计、自适应噪声抑制和频谱减法等方法来实现这些功能。

1. 降噪:降噪通常包括噪声估计和降噪滤波两个步骤。

在MATLAB中,我们可以使用统计模型来估计噪声,然后使用Wiener滤波器或者小波阈值法来降噪。

2. 去除回声:回声是语音通信中的常见问题,我们可以使用自适应滤波器来抑制回声。

在MATLAB中,我们可以使用LMS算法或者NLMS算法来实现自适应滤波。

3. 语音增强:语音增强通常包括增加语音信号的声音清晰度和提高语音的信噪比。

语音识别的matlab实现

语音识别的matlab实现

语音识别的MATLAB实现声控小车结题报告小组成员:关世勇吴庆林一、项目要求:声控小车是科大华为科技制作竞赛命题组的项目,其要求是编写一个语言识别程序并适当改装一个小型机动车,使之在一个预先不知道具体形状的跑道上完全由声控来完成行驶比赛。

跑道上可以有坡面,坑,障碍等多种不利条件,小车既要具有较快的速度,也要同时具有较强的灵活性,能够克服上述条件。

二、项目分析:由于小车只要求完成跑道上的声控行驶,所以我们可以使用简单的单音命令来操作,如“前”、“后”、“左”、“右”等。

由于路面有各种不利条件,而且规则要求小车尽可能不越过边线,这就决定了我们的小车不能以较高的速度进行长时间的快速行驶。

所以我们必须控制小车的速度和行进距离。

由于外界存在噪声干扰,所以我们必须对噪声进行处理以减小其影响。

鉴于上诉各种要求,我们决定对购买的遥控小车进行简单改造,使用PC机已有的硬件条件编写软件来完成语音的输入,采集,处理和识别,以实现对小车的控制。

三、解决思路与模块:整个程序大致可划分为三个模块,其结构框图如下图所示:整个程序我们在Visual C++ 环境下编写。

四、各模块的实现:1 声音的采集:将声音信号送入计算机,我们利用了声卡录音的低层操作技术,即对winmm.lib进行API调用。

具体编程时这一部分被写在一个类中(Soundin类)。

在构造函数中设定包括最大采样率(11025),数据缓存(作为程序一次性读入的数据,2048),声卡本身所带的一些影响采样数据等的各种参数;调用API函数waveInGetNumDevs(返回UNIT,参数为空)检察并打开声音输入设备,即声卡;并进而使用waveInGetDevCaps得到声卡的容量(在waveInCaps中存有该数据,对其进行地址引用,从DWORD dwFormats得到最大采样率、声道数和采样位);创建一个叫WaveInThreadEvent的事件对象,并赋予一个Handle,叫m_WaveInEvent,开始利用线程指针m_WaveInThread调用自定义的线程WaveInThreadProc;对结构WAVEFORMATEX中WaveInOpen开始提供录音设备。

Matlab在语音识别中的应用示例

Matlab在语音识别中的应用示例

Matlab在语音识别中的应用示例1. 引言语音识别是一项广泛应用于人机交互中的技术,其应用范围从智能助理到语音控制等众多领域。

而Matlab作为一种强大的数学建模与仿真工具,也在语音识别领域扮演着重要的角色。

本文将通过几个具体的应用示例,探讨Matlab在语音识别中的应用。

2. 语音信号的预处理语音信号的预处理对于后续的语音识别至关重要。

在Matlab中,我们可以使用数字滤波器对语音信号进行去噪和增强。

通过使用滤波器设计工具箱,我们可以根据语音信号的频谱特性,设计合适的数字滤波器。

另外,还可以利用Matlab中的时频分析工具对语音信号进行频谱分析,以了解信号的时域和频域特性。

3. 基于模板匹配的语音识别模板匹配是一种常见的语音识别方法,其基本思想是通过比较未知语音信号与预先录制的模板信号的相似度来进行识别。

在Matlab中,我们可以使用相关性分析函数corrcoef来计算两个语音信号的相关系数。

首先,我们需要将语音信号转化为MFCC(Mel频率倒谱系数),然后将其与预先录制的模板信号进行相关性分析。

通过设置阈值,我们可以判断未知语音信号是否匹配某个模板信号,从而进行语音识别。

4. 基于隐马尔可夫模型的语音识别隐马尔可夫模型(Hidden Markov Model, HMM)是一种常用的语音识别技术。

在Matlab中,我们可以使用HMM工具箱对语音信号进行建模和识别。

首先,我们需要根据不同的语音类别,建立对应的HMM模型。

然后,通过计算待识别语音信号与不同HMM模型的概率,选取概率最大的模型进行识别。

通过调整模型参数和训练样本,我们可以提高语音识别的准确率。

5. 基于深度学习的语音识别近年来,深度学习在语音识别领域取得了重大突破。

在Matlab中,我们可以使用深度学习工具箱进行语音信号的处理和特征提取。

深度学习网络(如卷积神经网络和循环神经网络)可以有效地学习语音信号的特征表示,提高语音识别的准确性。

Matlab在语音识别中的应用技巧

Matlab在语音识别中的应用技巧

Matlab在语音识别中的应用技巧一、引言语音识别是人工智能领域中的重要研究方向之一。

它的目标是使计算机能够听懂人类的语音并进行相应的处理。

如今,语音识别已广泛应用于语音助手、智能客服、语音翻译等领域,给人们的生活带来了很大的便利。

在语音识别的研究中,Matlab作为一种强大的计算工具,发挥着重要的作用。

本文将介绍一些Matlab在语音识别中的应用技巧。

二、语音信号的预处理在进行语音识别之前,首先需要对语音信号进行预处理。

预处理的目标是提取语音特征,并减少噪声的干扰。

Matlab提供了许多函数和工具箱来实现这些功能。

以下是一些常用的预处理技巧:1. 语音信号的分帧和加窗语音信号通常是一个连续的信号,在进行处理之前需要将其分成若干个帧,并对每个帧应用一个窗函数。

这样可以使语音信号在时间上局部化,并减少频谱泄漏。

2. 预加重预加重是对分帧后的每个帧进行加权处理,目的是强调高频部分,减少低频部分的能量。

这样可以提高语音信号的辨识度。

3. 噪声抑制在语音信号中常常存在各种噪声,如环境噪声、机器噪声等。

为提高语音识别的准确性,需要对噪声进行抑制处理。

Matlab提供了一些强大的降噪算法,如Spectral Subtraction、Wiener Filtering等。

三、语音特征提取语音特征提取是语音识别的核心步骤之一。

它的目标是从语音信号中提取能够区分不同语音的特征。

以下是一些常用的语音特征提取技巧:1. 短时能量短时能量是指语音信号每个帧的能量大小。

它可以用来检测语音的起止位置,并判断是否为有声音的帧。

2. 短时过零率短时过零率是指语音信号每个帧中过零点的个数。

它可以用来检测语音的浊音与清音,以及语音的发音速度。

3. 倒谱系数(MFCC)MFCC是一种非常常用的语音特征提取方法。

它通过对语音信号的梅尔频谱进行离散余弦变换得到,具有较好的鲁棒性和可区分性。

四、语音识别算法语音识别算法是进行语音识别的核心部分。

如何使用MATLAB进行语音识别与合成

如何使用MATLAB进行语音识别与合成

如何使用MATLAB进行语音识别与合成引言:随着人工智能技术的迅速发展,语音识别与合成逐渐成为我们日常生活中不可或缺的一部分。

借助于MATLAB这一强大的工具,我们可以轻松实现语音识别与合成的功能。

本文将介绍如何使用MATLAB进行语音识别与合成,以及一些相关的算法和技巧。

一、MATLAB中的语音处理工具箱MATLAB提供了一系列强大的语音处理工具箱,其中包括音频数据导入、音频显示、频谱分析、语音识别、语音合成等功能。

我们可以使用这些工具箱来快速进行语音处理的各个环节。

二、语音信号的特征提取与预处理语音信号是一种时间序列信号,我们需要将其转化为数值特征来进行处理。

常用的语音特征包括语音音素、频率、时域和频域特征等。

在MATLAB中,我们可以使用MFCC(Mel-Frequency Cepstral Coefficients)来提取语音信号的特征。

MFCC是一种重要且有效的语音特征提取方法,可以在一定程度上帮助我们区分不同的语音信号。

三、语音识别算法的实现语音识别是将语音信号转化为相应的文本或命令的过程。

常见的语音识别算法包括模型基于高斯混合模型(Gaussian Mixture Model,GMM)的HMM(Hidden Markov Model)、深度神经网络(Deep Neural Networks,DNN)等。

在MATLAB 中,我们可以使用Speech Recognition Toolbox来实现这些算法。

例如,我们可以使用HMM来训练一个语音识别模型,然后将新的语音信号输入模型中进行识别。

四、语音合成算法的实现语音合成是将文本或命令转化为相应的语音信号的过程。

主流的语音合成算法包括基于规则的方法和基于统计的方法。

基于规则的方法是通过事先定义一些语音合成的规则来实现,而基于统计的方法则是通过学习大量的语音样本来生成合成语音。

在MATLAB中,我们可以使用Speech Synthesis Toolbox来实现语音合成算法。

如何在Matlab中进行语音识别与处理

如何在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.基于模板匹配的识别算法模板匹配是一种简单而有效的语音识别方法,它通过比较输入语音信号和事先存储的模板语音信号进行匹配,找出最相似的模板。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录引言 (4)1.语音识别简介 (5)1.1语音识别系统的分类 (5)1.2语音识别系统的基本构成 (5)2.语音识别参数 (6)2.1线性预测系数(LPC) (6)2.2线性预测倒谱系数(LPCC) (8)2.3MFCC系数 (8)2.4参数计算流程 (9)3.DTW算法 (11)3.1DTW算法原理 (11)3.2DTW的高效算法 (14)4.HMM算法 (16)4.1HMM的原理 (16)4.2HMM的前向概率和后向概率 (17)4.3识别算法——V ITERBI解码 (19)4.4 BAUM-WELCH算法 (20)5.实验及总结 (23)5.1实验准备以及步骤 (23)5.2实验结果及讨论 (25)5.3实验结论 (29)参考文献 (30)致谢 (31)引言自上世纪80年代开始,语音识别技术的研究进入了一个蓬勃发展的时期,一些商用系统也从实验室进入市场。

然而,在实际的应用中,由于各种干扰因素导致的测试条件与训练环境的不匹配,系统的性能往往会收到极大的影响。

因此提高语音识别系统的性能就成为了语音识别技术真正走向实用化的关键课题。

语音识别是以声音作为研究对象它是语音信号处理的一个重要研究方向,是模式识别的一个分支涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动作可帮助对方理解),其最终目标是实现人与机器进行自然语言通信。

本文研究了汉语语音识别技术及其实现方法。

论文首先分析了语音信号预处理问题。

对MFCC倒谱系数在语音识别中的运用做了详细介绍。

其次研究了基于DTW的语音识别系统,针对DTW算法中系统识别性能过分依赖于端点检测、动态规划的计算量太大等缺陷,分别提出了快速DTW算法和端点松动的DTW算法,仿真结果比较理想。

继而研究了基于HMM的语音识别系统。

针对HMM在实际应用中的优化计算问题,包括初始模型选取,定标等进行了深入的分析与探讨。

针对传统定标仍能溢出的问题,给出了无溢出的参数重估公式。

第一章语音识别简介1.1语音识别系统的分类语音识别是近年来十分活跃的一个研究领域。

在不远的将来,语音识别技术有可能作为一种重要的人机交互手段,辅助甚至取代传统的键盘、鼠标等输入设备,在个人计算机上进行文字录入和操作控制。

本文介绍了语音识别的基本流程、所用到的语音参数算法、语音识别的训练算法和识别算法做初步的探究,主要运用了特定人孤立词识别的DTW算法和非特定人识别的连续HMM算法的MATLAB识别系统。

语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词(Connected Word)识别和连续语音(Continuous Speech)识别。

孤立词识别是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个词条,一般用在语音电话拨号系统中。

连接词语音识别支持一个小的语法网络,其内部形成一个状态机,可以实现简单的家用电器的控制,而复杂的连接词语音识别系统可以用于电话语音查询、航空定票等系统。

连续语音识别是指对说话人以日常自然的方式发音,通常特指用于语音录入的听写机。

显然,连续非特定人语音识别的难度要大得多,因为不仅有说话人口音的问题,还有协同发音、断字断句、搜索等问题,除了考虑语音的声学模型外还要涉及到语言模型,如构词法、文法等。

从识别对象的类型来看,语音识别可以分为特定人(Speaker Dependent)语音识别和非特定人(Speaker Independent)语音识别。

特定人是指只针对一个用户的语音识别,非特定人则可用于不同的用户。

实际上,非特定人语音识别的初始识别率往往都比较低,一般都要求用户花一定的时间对系统进行训练,将系统的参数进行一定的自适应调整,才能使识别率达到满意的程度。

非特定人大词表连续语音识别是近几年研究的重点,也是研究的难点。

目前的连续语音识别大多是基于HMM(隐马尔可夫模型)框架,并将声学、语言学的知识统一引入来改善这个框架,其硬件平台通常是功能强大的工作站或PC机。

1.2语音识别系统的基本构成语音识别系统的典型实现方案为:输入的模拟语音信号首先要进行预处理,包括预滤波、采样和量化、加窗、端点检测、预加重等。

语音信号经预处理后,接下来很重要的一环就是特征参数提取。

对特征参数的要求是:(1)提取的特征参数能有效地代表语音特征,具有很好的区分性。

(2)各阶参数之间有良好的独立性。

(3)特征参数要计算方便,最好有高效的计算方法,以保证语音识别的实时实现。

在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模版库。

在识别阶段,语音喜好经过相同的通道得到语音参数,生成测试模版,与参考模版进行匹配,将匹配分数最高的参考模版作为识别结果。

同时还可以在很多先验知识的帮助下,提高识别的准确率。

第二章语音识别的参数2.1 线性预测系数语音信号是一种典型的时变信号,然而如果把观察时间缩短到十毫秒至几十毫秒,则可以得到一系列近似稳定的信号。

人的发音器官可以用若干段前后连接的声管进行模拟,这就是所谓的声管模型。

下图为语音产生的生理结构示意图:图2-1 语音产生的生理结构示意图[1]由于发音器官不可能毫无规律地快速变化,因此语音信号是准稳定的(quasi steady)。

全极点线性预测模型(LPC)可以对声管模型进行很好的描述,这里信号的激励源是由肺部气流的冲击引起的,声带可以有周期振动也可以不振动,分别对应浊音(V owel)和清音(Consonant),而每段声管则对应一个LPC模型的极点。

一般情况下,极点的个数在12~16之间,就可以足够清晰地描述语音信号的特征了。

LPC是语音分析的重要手段,它能很好地进行谱估计,即可作为语音特征的参数。

因此仅用12个LPC系数就能很好地表示复杂语音信号的特征,这就大大降低了信号的冗余度并有效地减少了计算量和存储量,使之成为语音识别和语音压缩的基础。

下图为以声管模型为基础的LPC模型:图2-2 以声管模型为基础的LPC 模型由: 1ˆ(,0)(,)p n k n k i ai k φφ==∑ 1,2,,k p =L 该式表示p 个方程构成的方程组,未知数为p 个。

求解该方程组,就可以得到系统的线性预测系数。

由基于自相关的递推求解公式求解,也就是所谓的Durbin 算法得:(0)(0)n n E R =………………………………………………2.11(1)1(1)()()i i n j n j i i n R i a R i j k E --=---=∑……………………………..2.2()i i i a k =…………………………………………………...2.3()(1)(1),1i i i j j i i j a a k a j i ---=-≤≤…………………………..2.4()2(1)(1)l i n i n E k E -=-………………………………………2.5公式中,上标()i 表示第i 次迭代,每次迭代只计算和更新12,,,i a a a K 直到i p =时,结束迭代。

在MATLAB 中利用lpc 函数[2]计算LPC 系数,其语法为:a = lpc(x,n);这里x 为一帧语音信号,n 为计算LPC 参数的阶数。

通常x 为240点或256点的数据,n 取10~12,对语音识别来说就已经足够。

2.2 线性预测倒谱系数在语音识别系统中,很少直接使用LPC 系数,而是由LPC 系数推导出另一种参数:线性预测倒谱系数(LPCC )。

倒谱实际上是一种同态信号处理方法,标准的倒谱系数计算流程需要进行FFT 变换[3],对数操作和相位校正等步骤,运算比较复杂。

在实际运作中大多数语音识别系统都会采用倒谱参数来作为有关距离的度量。

LPC 倒谱系数是描述说话人声道特性的,广泛应用于声纹识别。

在实际计算中,当序列x(n)为最小相位的情况下,可以利用序列x(n)及其倒谱系数c(n)的递推关系来简化计算。

序列x(n)及其复倒谱系数c(n)的递推公式如下:100,0()()()ˆ(),0(0)(0)n k n x n x n k x n k x k n x n x -=<⎧⎪=-⎨->⎪⎩∑)……...………...….2.6LPCC 参数是一种非常重要的参数,它不是由原始信号x(n)得到,而是由LPC 系数m a 得到的。

由2.6式可得LPC 到LPCC 的直接递推关系。

20log c G =……………………………………………..2.711,1m m m k m k k k c a c a m p m --==+≤≤∑……………………2.8 11,m m k m k k k c c a m p m --==>∑………………………...…..2.92.3 MFCC 系数LPC 模型是基于发音模型建立的,LPCC 系数也是一种基于合成的参数。

这种参数没有充分利用人耳的听觉特性。

实际上,人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系。

近年来,一种能够比较充分利用人耳这种特殊的感知特性的参数得到了广泛的应用,这就是Mel 尺度倒谱参数(Mel-scaled Cepstrum Coefficient),或称Mel 频率倒谱系数,简称为MFCC 。

大量的研究表明,MFCC 参数能够比LPCC 参数更好地提高系统的识别性能。

从目前使用的情况来看,在大词汇量语音识别应用中已逐渐取代原本常用的线性预测编码导出的倒频谱参数,原因是它考虑了人类发声与接收声音的特性,具有更好的鲁棒性。

由于语音信号在时域上的变化快速而不稳定,所以通常都将它转换到频域上来观察,此时它的频谱会随着时间作缓慢的变化。

所以通常将加窗后的帧经过快速傅立叶变换(FFT ),求出每帧的频谱参数。

再将每帧的频谱参数通过一组N 个( N 一般为20 ~ 30 个)三角形带通滤波器所组成的Mel 频率滤波器,将每个频带的输出取对数,求出每一个输出的对数能量(log energy )Ek ,k =1,2,... N 。

再将此N 个参数进行余弦变换(cosine transform ) 求出L 阶的Mel -scale cepstrum 参数。

[4]MFCC 参数的计算是以“bark”为其频率基准的,它和线性频率的转换关系是:102595log (1)700mel f f =+……………………………….2.10 MFCC 参数也是按帧计算的。

首先要通过FFT 得到该帧信号的功率谱()S n ,转换为Mel 频率下的功率谱。

这需要在计算之前先在语音的频谱范围内设置若干个带通滤波器:(),0,1,,1,0,1,,12m N H n m M n =-=-K K ………2.11 MFCC 参数的计算通常采用如下的流程:(1)首先确定每一帧语音采样序列的点数。

相关文档
最新文档