MATLAB平台实现 少量字的语音识别功能

合集下载

使用MATLAB进行语音识别的基本原理

使用MATLAB进行语音识别的基本原理

使用MATLAB进行语音识别的基本原理语音识别是一种将人类语音转化为计算机可识别文本的技术。

它可以应用在语音识别系统、智能助手等多个领域,具有广泛的应用前景。

而MATLAB是一种功能强大的数学软件工具,提供了丰富的信号处理和模式识别函数,使得它成为进行语音识别的理想选择。

本文将介绍使用MATLAB进行语音识别的基本原理。

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

预处理的目的是去除噪声、降低维度以及提取特征等。

其中,常用的预处理技术包括语音信号分帧、加窗、预加重以及语音信号归一化等。

语音信号分帧是将连续的语音信号分成若干短时帧,一般选择帧长为20-40毫秒。

然后对每一帧信号进行加窗操作,常用的窗函数有矩形窗、汉宁窗等,目的是减少频谱泄漏效应。

预加重是为了解决语音信号中的频率能量分布不均的问题。

预加重的思想是在进行傅里叶变换之前对语音信号进行高通滤波,增强高频部分的能量。

语音信号归一化是为了消除语音信号能量的差异性,一般使用均方根归一化或幅度归一化等方法,使得语音信号具有相似的能量特征。

二、特征提取在预处理之后,需要进行特征提取,以便将语音信号转化为计算机可识别的形式。

常用的特征提取方法包括线性预测分析(Linear Predictive Analysis, LPC)、梅尔频率倒谱系数(Mel-frequency Cepstral Coefficients, MFCC)等。

LPC是一种基于线性预测模型的方法,它假设语音信号是由前面的语音样本线性预测后产生的。

LPC通过提取语音信号的倒谱系数以及预测误差,将语音信号转化为一组具有较低维度的特征向量。

MFCC是一种基于梅尔刻度的频谱特征提取方法。

它模拟了人耳对声音的感知机制,通过将频率轴转换为梅尔刻度,进而使用离散余弦变换将频谱分析结果转化为梅尔频率倒谱系数,得到更加稳定和鲁棒的特征。

三、模型训练与分类在特征提取之后,需要进行模型训练与分类。

利用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进行语音信号处理与识别

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

如何使用Matlab进行语音识别和自然语言理解

如何使用Matlab进行语音识别和自然语言理解

如何使用Matlab进行语音识别和自然语言理解语音识别和自然语言理解是人工智能领域的重要研究方向之一。

随着计算机处理能力的不断提升和深度学习技术的发展,这两个领域的研究也取得了显著的进展。

本文将介绍如何使用Matlab进行语音识别和自然语言理解的相关工作。

一、语音识别基础语音识别是将人类的语音信号转化为计算机可处理的文本形式的过程。

它通常涉及到声学模型和语言模型两个重要的组成部分。

在Matlab中,我们可以使用语音处理工具箱来实现语音识别。

首先,在进行语音识别之前,我们需要将语音信号进行预处理,包括去除噪声、进行特征提取等。

Matlab提供了丰富的函数和工具,如音频滤波、时频分析等,可用于实现这些预处理步骤。

接下来,我们需要设计声学模型来对语音信号进行建模。

常用的声学模型包括隐马尔可夫模型(Hidden Markov Model,HMM)和深度神经网络(Deep Neural Network,DNN)。

在Matlab中,我们可以使用统计和机器学习工具箱来构建并训练这些声学模型。

最后,我们需要根据语言模型对识别结果进行解码和修正。

语言模型用于对识别结果的语言合理性进行评估,帮助我们选择最佳的识别结果。

Matlab提供了自然语言处理工具箱,可用于对文本进行分析和处理。

二、自然语言理解基础自然语言理解是指计算机对人类自然语言进行理解和解释的过程。

它涉及到文本分析、语义解析、语义推理等多个任务。

在Matlab中,我们可以利用自然语言处理工具箱来实现自然语言理解的相关任务。

首先,我们可以使用文本分析工具箱对文本进行分词、词性标注和命名实体识别等处理。

这些预处理操作有助于建立文本的语义表示,并为后续的任务提供基础。

接下来,我们可以使用语义解析和语义推理技术来对文本进行语义分析和推理。

语义解析的目标是将自然语言表达式转化为语义表示,而语义推理则旨在根据这些语义表示进行推理和推断。

Matlab提供了一些自然语言处理算法和模型,如词向量模型、句法分析模型等,可用于实现这些任务。

使用Matlab进行实时语音处理与语音识别的实践指南

使用Matlab进行实时语音处理与语音识别的实践指南

使用Matlab进行实时语音处理与语音识别的实践指南实时语音处理与语音识别是人工智能领域一个重要而复杂的研究方向。

而Matlab作为一种强大的科学计算软件,提供了丰富的工具箱和函数库,为语音处理与语音识别的研究和实践提供了极大的便利。

本文将介绍如何使用Matlab进行实时语音处理与语音识别并给出一些实践指南。

一、Matlab的语音处理工具箱Matlab的语音处理工具箱(Speech Processing Toolbox)是Matlab中专门用于语音信号的处理和分析的工具箱。

它提供了一系列函数和工具,包括语音信号的录制和播放、声音特征提取、声音增强和去噪、语音识别等。

在进行实时语音处理与语音识别之前,我们需要先安装并激活语音处理工具箱。

二、实时语音处理的基本步骤实时语音处理通常由以下几个基本步骤组成:声音录制、语音信号分帧、对每帧信号进行加窗处理、进行傅里叶变换得到频谱信息、对频谱信息进行处理和特征提取、进行语音识别。

1. 声音录制Matlab提供了`audiorecorder`函数来实现声音的录制功能。

下面是一个简单的示例代码:```fs = 44100; % 采样率nBits = 16; % 采样精度nChannels = 1; % 声道数recorder = audiorecorder(fs, nBits, nChannels);record(recorder);pause(5); % 录制5秒stop(recorder);y = getaudiodata(recorder); % 获取录音数据```2. 语音信号分帧语音信号在进行处理之前需要进行分帧处理,将连续的语音信号分成若干个小的时间窗口。

分帧的目的是提取局部语音特征,常用的窗口函数包括矩形窗、汉明窗等。

Matlab提供了`buffer`函数用于分帧处理。

示例代码如下:```frameSize = 256; % 窗口大小overlap = 128; % 帧之间的重叠部分frames = buffer(y, frameSize, overlap);```3. 加窗处理加窗处理是对每一帧信号进行加窗操作,以减少频谱泄漏。

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

创新实验(设计)论文题目:利用MATLAB平台实现少量字的语音识别功能目录引言 (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-WE LCH算法 (20)5.实验及总结 (23)5.1实验准备以及步骤 (23)5.2实验结果及讨论 (25)5.3实验结论 (29)参考文献 (30)引言自上世纪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 a i k φφ==∑k p = 该式表示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 直到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 kc a c a m p m --==+≤≤∑……………………2.811,m m k m k k k c c a m pm --==>∑………………………...…..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)700m el f f =+……………………………….2.10MFCC 参数也是按帧计算的。

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

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

相关文档
最新文档