基于Matlab的说话人识别_第1页
基于Matlab的说话人识别_第2页
基于Matlab的说话人识别_第3页
基于Matlab的说话人识别_第4页
基于Matlab的说话人识别_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆理工大学毕业论文 基于 Matlab 的说话人识别 目 录 摘 要 I Abstract II 第一章 引言 1 1 1 研究背景及意义 1 1 2 优势及应用前景 1 1 3 国内外研究现状 1 第二章 说话人识别的基本原理 3 2 1 说话人识别基本知识 3 2 1 1 语音的发声机理 3 2 1 2 清音和浊音 3 2 1 3 语音信号模型 3 2 1 4 语音识别基本过程 4 2 2 预处理模块 4 2 2 1 采样 4 2 2 2 量化 5 2 2 3 预加重 5 2 2 4 加窗 5 2 3 特征提取模块 6 2 3 1 短时平均能量分析 6 2 3 2 短时平均幅度分析 7 2 3 3 短时过零率分析 8 2 3 4 短时自相关分析 8 2 3 5 LPC 倒谱系数 LPCC 9 重庆理工大学毕业论文 基于 Matlab 的说话人识别 2 3 6 Mel 频率倒谱系数 MFCC 9 2 4 训练和识别模块 10 2 4 1 矢量量化模型 VQ 10 2 4 2 隐马尔可夫模型 HMM 11 2 4 3 人工神经网络模型 ANN 12 2 4 4 HMM 和 ANN 的混合模型 13 第三章 基于 Matlab 的说话人识别 14 3 1 说话人识别系统平台介绍 14 3 2 语音采集模板 Speech Recording Plane 14 3 3 预处理模板 Voice Preprocessing Plane 15 3 4 特征提取模板 Feature Extraction Plane 17 3 5 训练识别模板 Speech Recognition Plane 18 第四章 总结与展望 25 4 1 总结 25 4 2 展望 25 致 谢 27 参 考 文 献 28 附 录 29 重庆理工大学毕业论文 基于 Matlab 的说话人识别 摘摘 要要 说话是人类相互沟通交流最方便 最快捷的一种方式 世界上每一个说话人都 拥有自己特定的语音 正如每个人的指纹一样 都是绝无仅有的 说话人识别应用 广泛 现已应用到通信 消费电子产品等各个领域 本文将把语音进行数字化传输 存储 然后进行识别等 说话人识别系统主要包括预处理 特征提取 训练和识别 四个模块 其中预处理和特征提取尤为重要 有许多的预处理方法 对语音信号的 采样和量化是第一 然后预加重和加窗 特征提取是指提取语音信号的重要特征的 过程 信号的时域分析包括信号的短时平均能量和短时过零率等 频域分析可以采 用 LPC 倒谱系数法和 Mel 倒谱系数法 为了训练得到模版语音信号 可以利用矢量 量化 VQ 隐马尔可夫模型 HMM BP 神经网络 ANN 等对说话人的语音信 号进行训练识别 说话人识别实现过程中的算法是多种多样的 本文将运用 MATLAB 仿真工具强 大的编程 图形开发功能和数学计算能力 本文将把 BP 神经网络作为训练识别的 方法 利用 MFCC MEL 频率倒谱系数 产生的语音信号特征向量 最后运用十字交 叉法 建立起一个说话人识别系统 结合 MATLAB 平台中的 GUI 设计预处理 特 征提取 训练等几个模板 最后利用神经网络的模式识别 真正实现说话人的识别 关键词关键词 语音识别 MATLAB 模式识别 倒谱系数 重庆理工大学毕业论文 基于 Matlab 的说话人识别 Abstract Talking is a way of human communication the most convenient and quick communication each of the speakers all over the world have their own specific speech as everyone s fingerprints are unique Speaker recognition is widely used in various fields have been applied to communications consumer electronic products This paper will make speech digital transmission storage and then identify etc The speaker recognition system includes preprocessing feature extraction training and recognition of four modules The preprocessing and feature extraction is very important There are many preprocessing methods of sampling and quantization the speech signal is first and then the pre emphasis and the window Feature extraction is the process to extract important features of speech signal Signal analysis in time domain signal short time average energy and short time zero crossing rate Frequency domain analysis can be used LPC cepstrum coefficient and Mel cepstrum coefficient method In order to get the template training speech signal can use vector quantization VQ hidden Markov model HMM BP neural network ANN training recognition on the speaker s voice signal Speaker recognition in the process of realizing the algorithm is varied This paper will use the MATLAB simulation tool powerful programming graphical function and mathematical computation ability This paper will use the BP neural network as a method of training recognition using MFCC MEL frequency cepstrum coefficient speech signal feature vector is generated finally using cross method set up a speaker recognition system Combined with the MATLAB platform GUI design in the preprocessing feature extraction training and several other template finally using pattern recognition neural network realizing the speaker recognition Keywords Speech recognition MATLAB Pattern recognition Cepstral coefficients 重庆理工大学毕业论文 基于 Matlab 的说话人识别 第一章 引言 1 1 研究背景及意义 说话人识别技术也被称之为声纹识别技术 它属于一种生物的识别技术 说话 人识别技术拥有方便 经济 准确等特点 广受世人瞩目 最早的语言研究被称为 口耳之学 因为当时没有可供研究的仪器 只能通过 耳听口模仿来进行研究 最早的语音信号处理研究起源于 1876 年 电话的发明者贝尔首次使用声电 电 声转换技术实现了语音的远距离传输 6 语音信号经过语音合成 语音编码和语音识别三个发展过程 语音识别的实验 追溯到 20 世纪 50 年代贝尔实验室的 Audry 系统 此系统仅仅只能识别 10 个英文数 字 又经过很长时间的研究发展 现在我们已经完全进入语音识别时代 1 2 优势及应用前景 生物认证技术有 虹膜识别 掌纹识别 指纹识别和声纹识别 语音识别 声 纹识别有不丢失 没有记忆和使用方便等独特的优点 1 对于虹膜识别技术 虽然准确性很高 但是实现困难 成本较高 所以不能普 遍使用 指纹识别虽然是一种使用比较普遍的识别技术 成本也不算太高 但是用 户不易接受 指纹往往和犯罪牵扯在一起 还有一些生物认证技术也因为实现难度 过大而不被关注 但是说话人识别技术只需简单的麦克风 一台普通计算机就可以 实现 和其他生物识别技术进行对比 说话人识别系统还具有使用方便 低成本 易实现等优点 说话人识别技术应用前景十分广泛 可在各种安全认证身份的领域发挥重要作 用 随着数字化时代的急速发展 数字音频数据随处可见 说话人识别技术不仅在 语音检索和信息检索中投入使用 而且不少手机已经加入了语音拨号 语音书写短 信 语音打开应用程序等等功能 1 3 国内外研究现状 20 世纪 60 年代末 世界掀起了一股语音识别的研究热潮 这期间研究出的重要 成果包括动态规划 DP 和线性预测编码 LPC 技术等 语音识别技术取得突破性进展是在 20 世纪 70 年代的时候 LPC 技术得到了进 一步发展 特别是其中的 VQ 和 HMM 系统理论 直到今天 这两种理论依旧是研 重庆理工大学毕业论文 基于 Matlab 的说话人识别 究语音识别最有效 最常用的方法 20 世纪 80 年代 语音识别迎来了一股新新力量 人们重新开始了人工神经网络 ANN 研究 并有效地将 ANN 和 HMM 在同一语音识别中结合使用 使连续语 音识别问题变得更加容易 近年来对于人工神经网络 ANN 的研究不断发展 关于 语音信号处理的各项内容研究是促使其迅速发展的重要原因之一 同时 它的许多 成就体现在语音信号处理技术 人工神经网络 ANN 以其简单灵活有效的特点 逐渐成为实现语音识别技术 的新宠 它将说话人识别技术的探究带入了一个新的高度 重庆理工大学毕业论文 基于 Matlab 的说话人识别 第二章 说话人识别的基本原理 2 1 说话人识别基本知识 2 1 1 语音的发声机理 空气从肺排入喉咙 然后通过声带进入通道 最后由口辐射声波 从而形成了 声音 声带以左负责产生激励 声带以右负责的是 辐射系统 和 声道系统 之所以存在不同性质的语音 是因为其激励和辐射不同 6 2 1 2 清音和浊音 浊音与清音都统称为音素 而音素则是构成语音信号的基本单元 发浊音时 空气流经紧绷的声带 声带产生振动 所以声带会周期性的打开 闭合 如果声带的长度短 厚度薄 张力就很大 听起来的的音调就越高 所以浊 音的基音频率就越高 发清音时 空气流经声带 声带是张开的 则由肺排出的空气将不受防碍的经 过声门 空气经过声门后会发生两种情况 一种是形成摩擦音 另一种情况则形成 爆破音 这两种情况都统称为清音 6 2 1 3 语音信号模型 由语音的发生机理可知 语音的生成包括三个部分 声门负责产生激励 用 表示 声道负责调制 用表示 嘴唇负责产生辐射 用表示 语音信 zG zV zR 号生成模型如下图 激励 声门 调制 声道 幅射语音 嘴唇 图 2 1 语音信号生成模型图 所以语音生成系统函数可以表示为 2 1 zzzzRVGH 其中 激励函数 2 2 2 1 c 1 ze 1 1 z 1 z T A G 调制函数 重庆理工大学毕业论文 基于 Matlab 的说话人识别 2 3 N k k k R r i za z V 1 0r 1 b z 辐射函数 2 4 1 01 z zRR 2 1 4 语音识别基本过程 说话人识别即提取说话人语音中特征 然后将此特征作为确定说话人身份的过 程 因此 需要找出每一个已知说话人发音中存在的差异 这些差异包括声道差异 发音习惯差异等等 对于如何找出这些差异 确定说话人的身份 需要解决以下问题 6 1 对说话人的语音进行预处理 2 提取说话人语音中的特征 3 用提取出的这些特征为指定说话人建立一个只属于此说话人的语音特征库 4 用一段未知语音与新建立的语料库进行对比 从而得出结论 此未知语音 是否属于已知说话人 为了解决以上问题 说话人识别系统一般进行以下四个模块的过程 预处理模 块 特征提取模块 训练模块与识别模块 2 2 预处理模块 2 2 1 采样 为了对语音数据进行数字处理 首先必须对模拟信号数字化 在数学上 声波 可以表达为变量 t 时间 的连续函数 用表示 对模拟信号进行周期采 tsa tsa 样 得到数字信号序列 就是离散信号或称之为数字信号 s snTn a s n 对于这样的采样过程 最令人关注的问题就是采样之后的数字信号知否能准确 的表示原始模拟信号 并且是全是模拟信号的唯一表示 经过调查研究 只要满足 采样定理 就能保证已知模拟信号的准确性 采样定理 如果信号的傅里叶变换是带宽受限 即当 1 tsa jsa N F 2 是奈奎斯特频率 时 则当抽样周期时 用等间隔的抽样序 N F0jsa N F T 2 1 列能够唯一地恢复出原始信号 Tnsa tsa 重庆理工大学毕业论文 基于 Matlab 的说话人识别 2 2 2 量化 在上节采样的过程当中 语音信号必定会产生一系列的振幅片段 为了把语音 进行完整传输 存储等 必需把这些振幅片段进行量化 然后组成一个有限的振幅 片段集 量化过程只需两步 首先必须产生量化幅度的量化级 其次 1 Q x n n x 是用码字表示每个量化后采样值的码化级 量化过程一般有两种实现方法 有c n 些包含了过量的带宽 可以使用非线性量化加以缩减 在量化之前先压缩或扩张信 号 然后均匀量化 这两种方法可以有效地实现减少码字 并且可以表示声音振幅 的影响 量化的过程中误差的产生是不可避免的 量化之后的信号值和原始的信号值 1 之间的差被称为量化误差 也可称为量化噪声 信号的量化信噪比是指信号与量化 噪声之间的功率比 量化信噪比可表示为 2 5 lg 2077 402 6 lg 10 max 2 2 xe x X BSNR 其中 代表输入语音信号的方差 代表信号的峰值 B 代表量化分辨率 2 x max 2X 代表噪声的方差 2 e 2 2 3 预加重 由于发生过程中声门的激励与鼻辐射会产生能量的损耗 语音信号的平均功率 谱受到影响 这使得在低频和中频的语音信号能量比在高频率处高得多 这样的现 象不利于语音信号的分析和处理 所以预加重的目的在于增强信号的高频部分 据了解 能量的损耗存在以下特点 当语音信号的频率加大 2 倍时 它的功率 谱约下降 因此 我们可以采用 一阶 来增强高频部分 以 2 z HBd6octB d6 实现预加重的目的 语音信号预加重后 高频部分的能量的振幅和频率与低中频部 分基本一致 2 2 4 加窗 语音信号拥有短时平稳性 所以在短时段内 20 30ms 的时间段内 语音信号 的频域特征和少许物理特征基本保持稳定 为语音信号加窗就是利用它的这一重要 特性 加窗即是对语音信号进行分帧 通常使用一个长度固定的窗函数来选取语音 信号的某一段 每一段称为一个帧 重庆理工大学毕业论文 基于 Matlab 的说话人识别 目前常用的窗函数有两种 1 矩形窗 窗函数如下 2 6 N n0 1 0 n w 其他 2 哈明窗 Hamming 窗 窗函数如下 2 7 其他 0 0 1 12 cos46 054 0 Nn L m nw 3 汉宁窗 Hanning 窗 窗函数如下 2 8 1 Nn 0 1 N n2 0 5cos 0 5 0 w n 其他 帧的长度表示为 N 单位是 ms 一般帧长取 10 20ms 分帧既可重叠 也 可连续 在分割语音信号时 前一帧和后一帧重叠的部分叫作帧移 为了尽可 能的使语音信号在变化的过程中存在信息丢失 在滑动窗函数分帧时必须交叠 一般交叠部分为帧长的一半 所以帧移与帧长的比值通常取 2 1 2 3 特征提取模块 特征提取是将通过加窗后获得的语音分析帧进行时频域的变化 用一些特 定的参数来表示 说话人语音信号的特征采用每一帧语音所特有的参数所构成 的参数集合来表示 所以对于说话人的识别 特征向量的提取是至关重要的 经过不断的实验研究 能够表示时域特征的参数有 短时平均能量 短时 平均幅度和短时过零率等 语音信号的特征不仅表现在时域上 还表现在频域 上 频域上的特征有 线性预测系数 LPC LP 倒谱系数 LPCC Mel 频率 倒谱系数 MFCC 等 下面将对这些特征参数进行一一说明 2 3 1 短时平均能量分析 对于一个语音信号 它的能量随时间的变化 所以 一个已知语音信号在 时刻的短时平均能量表达式如下 n n E 2 2 9 n Nnmm n mnwmxmnwmxE 1 22 其中 N 表示窗长 表示输入语音信号 表示窗函数 x n n 特殊地 当窗函数为矩形窗时 表示如下 n E 重庆理工大学毕业论文 基于 Matlab 的说话人识别 2 10 n Nnm mxE 1 2 n 从另一个角度来解释 令 2 11 h 2 n n 是与有关的滤波器 则还可以表示为 h n n n E 2 12 22 n nhnxmnhmxE m 上式可以理解为 已知语音信号的平方值 经过一个冲激函数为的滤 h n 波器 最后输出得到由短时能量构成的时间序列 如下图表示 2 图 2 2 短时平均能量流程图 所以 冲激函数的选取 也可以说窗函数的选取直接关系着短时平均 h n 能量的计算 窗长 N 的选择则成为重点 N 不能选得过大 也不能选的过小 选 得过大 则平滑作用很大 使得短时平均能量大致没有变化 没法反应语音信 号的时域变化特征 选得过小 平滑力度又不够 以至于语音振幅时变的很多 小特点被保存了下来 因此看不出振幅包络的改变情况 一般 N 的选择与语音 信号的基因周期有关系 通常语音信号的基因频率在 50 500Hz 的范围内 从而 确定了帧长 一般去 10 20ms 短时平均能量能够作为区别清音与浊音的特征参数 因为试验研究表明 清音的短时平均能量明显低于浊音 还可以利用短时平均能量区分一段语音信 号的有声段和无声段等 2 3 2 短时平均幅度分析 对于短时平均能量 由于其需要计算语音信号的平方 这不仅使计算变得 复杂还使得高信号和低信号之间的差距增大 因此将采用短时平均幅度来衡 n M 量语音能量幅度的变化 2 13 n 1 mnxmnwmxM n Nnm w m n 上式可以理解为 语音信号的各个样点值的绝对值 通过一个的线性 n 重庆理工大学毕业论文 基于 Matlab 的说话人识别 滤波器 最后输出得到由短时平均幅度构成的时间序列 所以短时平均幅度继承了短时平均能量的所有优点和用途 2 3 3 短时过零率分析 短时平均过零率作为语音信号在时域研究中的一种重要特性参数 它指每 一帧内语音信号经过零值的次数 单位时间内经过零值的次数称为过零率 某 段时间内过零率的平均值称为平均过零率 语音信号不是简单的正弦信号 所 以平均过零率的表示方法就不那么简单 但由于语音信号是一种短时平稳信号 利用短时平均过零率能在某种程度上反应语音信号的频谱特性 短时平均过零 率表示如下 n Z 2 14 1 sgn sgn 1sgnsgn nnxnx mnwmxmxZ m n 其中 为窗函数 为符号函数 其公式如下 n sgn 2 15 0 1 0 1 sgn x n nx nx 短时平均过零率同样能够应用于清音与浊音的辨别 也能应用在语音信号 的端点检测 但是仅仅使用过零率进行端点检测有一定难度 往往将短时平均 能量与其结合起来进行检测使用 2 3 4 短时自相关分析 自相关函数的功能在于权衡语音信号本身时间函数的相似性 由于浊音和 清音的发音机理不同 因此二者在短时平均能量 短时平均幅度 短时平均过 零率上都存在显著差异 这些差异使得它们在时间波形上也有很大不同 清音 的时间波形杂乱无章 没有规律 并且波形间的相似性较差 浊音则恰好相反 它的时间波形表现出规律的周期性 波形间的相似性较好 所以能够利用短时 自相关函数来分辨浊音和清音 语音信号的短时自相关函数表示如下 n R 2 16 m nhk k mxmxkR m n 其中 knnhk 式 2 16 表示 语音信号的自相关函数可由信号通过一 n kR xknxn 个冲激函数的滤波器组成 hkn 重庆理工大学毕业论文 基于 Matlab 的说话人识别 通过实验 可知浊音与清音的短时自相关函数存在以下特征 1 浊音信号的短时自相关函数具有一定的周期性 2 清音信号的短时自相关函数杂乱无章 不存在周期性 其性质与噪声 信号类似 3 窗函数影响着自相关函数 窗长直接影响自相关函数 2 3 5 LPC 倒谱系数 LPCC 倒谱系数是指语音信号 变换的对数模函数的逆 变换 通常先求信号的傅里叶zz 变换 然后区模的对数 再求傅里叶逆变换 使已知语音的采样值与线性预测采样值之间达到最小均方差误差 便可得出线 性预测系数 LPC LPC 是一种参数谱估计方法 并且它的函数的频率响应反 e j H 应了声道的频率响应和被分析语音信号的频谱包络 因此 可对做傅里叶 H elog j 变换得到倒谱系数 这样的倒谱系数是一种良好的表述信号的参数 LPC 倒谱系数的优点在于 比较完整地去除了语音信号产生的激励信息 LPCC 系数的计算量较小 易实现 表述元音的能力强 往往只需几个倒谱系数就可以准 确的表述语音信号的共振峰特性 弊端有 表述辅音的能力不好 抗噪声性能也不 好 LPCC 也继承了 LPC 的缺点 LPC 中包含语音信号高频部分的大部分噪声特征 这会影响系统的性能 2 3 6 Mel 频率倒谱系数 MFCC MFCC 倒谱系数数拥有良好的辨别能力和抗噪声能力 但它的计算量很大 计算 精度要求很高 Mel 频率倒谱系数是频率轴的信号频谱转换为 Mel 尺度变换的倒谱 域 然后获得倒谱系数 由于人类对约 1000Hz 以上的声响频率范围的感知不遵循线性关系 而是遵循在 对数频率坐标上的近似线性关系 所以 Mel 频率的计算公式可以表示为 2 17 700 1log2596ffMel MFCC 参数的计算过程如下 1 对计算已知语音信号的傅里叶变换获得其频谱 2 对频谱的幅度求平方 得到能量谱 3 使用一组三角滤波器对 2 中得到的能量谱进行带通滤波 滤波器的数 量一般和临界带数一致 假设滤波器的个数为 滤波后得到的输出为 其中M kX 重庆理工大学毕业论文 基于 Matlab 的说话人识别 M 2 1k 4 对滤波后的输出取对数 然后做点的傅里叶逆变换 并进行反离散余M2 弦变换 得到的值即为 MFCC 2 18 LnMnkkXC M n 2 1 5 0coslog 1k 其中 MFCC 系数的个数 L 一般取 12 16 左右 2 4 训练和识别模块 语音识别中的训练模块是把语音信号中提取的特征参数组成一个模型库 这个 模型库的形成过程就是训练 而一个模型库的形成则需要几十甚至上百个特征参数 语音识别的基本原理 将未知语音与训练获得模板集合进行对比 找出模板集 合和未知语音匹配最优的集合 通过此模板识别出位置语音 一般来说语音识别有以下几种方法 基于声道模型与语音知识的方法 模式匹 配法 统计模型法与人工神经网络法 其中后三种方法使用比较广泛 其中实现模 式匹配的方法有 矢量量化 VQ 和动态时间规整 DTW 实现统计模型法最常 用的方法是隐马尔科夫模型 HMM 常用的人工神经网络法有 反向传播 BP 网络 径向基函数网络 RBF 和小波网络 2 4 1 矢量量化模型 VQ 在语音识别研究中 矢量量化 Vector Quantization VQ 是一种极其重要的语音 信号压缩和识别算法 其具有良好模型训练和模式匹配性能 矢量量化的关键在于 是否设计了一个好码本 任何一个说话人的语音特征在特征空间中都会形成一个具 体的量化码书 识别说话人时只需要求得说话人特征与量化码本之间的距离 以最 小距离作为说话人识别的准则 所以量化码本的设计直接关系着量化质量 目前最 常用最直接的生成码本的算法是 LGB 算法 LGB 算法是一个递推的过程 其具体 步骤如下 1 设置量化码本与迭代所需要的参数 假定存储量化码本所需的全部输入矢 量参数 X 的集合为 S 设定码本的大小为 M 设定最大迭代次数是 L 设定畸变改 进阈值为 2 设置 M 个码字的初始化值 设置畸变初值 设置 00 2 0 1 M YYY 0 D 迭代初值 1m 重庆理工大学毕业论文 基于 Matlab 的说话人识别 3 根据最邻近规则将 S 划分为了 M 个集合 当 mm 2 m 1M SSS 时 有下列不等式成立 m l SX 2 19 1 m i 1 m l dYX dYX 其中 表示 X 与 Y 之间的欧氏距离 i li YX d 4 计算总畸变 m D 2 20 m l 1 m l 1l m d SX M YXD 5 计算畸变改进量的相对值 m D m 2 21 m m1 m m m m D DD D D 6 计算新码字 mm 2 m 1M YLYY 2 22 m i i m i 1 SX X N Y 7 判定成立与否 若成立则运行 8 否则运行 9 m 8 停止迭代 输出训练码本的码字和总畸变量 mm 2 m 1M YLYY m D 9 判断 m L 成立与否 成立则令 m m 1 执行 3 否则执行 8 2 4 2 隐马尔可夫模型 HMM 隐马尔可夫模型是目前使用最普遍的一种模型 每个说话人的语音特征是关于 时间的函数 用改变状态间的转换来描述声音的特征 这是隐马尔可夫模型 建立 一个隐马尔可夫模型具体步骤如下 1 设置总状态数 N 2 设置从状态 到状态 的转移概率为 则用矩阵表示 HMMij ij aNN ij a A 中状态之间的转移 称为状态转移矩阵 3 设是状态 j 时的特征向量 x 的概率密度 则有 xbj 2 23 N R 2 1j1dxxb pj 其中是 p 维特征向量的特征空间 p R 4 特征在状态 i 的初始值设为 称之为初始概率向量 i T N 21 则有 各个状态时的概率密度函数可由一组的参数 B 确定 1 1i i N xbj 重庆理工大学毕业论文 基于 Matlab 的说话人识别 上述的 HMM 称为连续 HMM 模型 如果用矢量量化的方式对特征参数进行量 化 特征向量只能用码本中固定的码字来表示 对于无状态 j 时特征的概率密度 只有状态 j 时特征为码本中的第 k 个码字的概率 有下式成立 jk b 2 24 N 2 1j1b k jk 其中参数 B 是一个的矩阵 这样的 HMM 称为离散 HMM 模型 KN jk b B 离散 HMM 中最关键的问题是训练问题 解决这个问题最有效的方法是 Baum Welch 算法和 Viterbi 算法 Viterbi 算法和 Baum Welch 算法的思想是一致的 但 Viterbi 算法是 Baum Welch 算法的改进 经过 时刻 用状态 到状态 的几率来表示训练得到信号的特性 输出时从状tij 态 到状态 的转移发生次数的期望值 由此可以估计 Viterbi 算法的公ij ij a kbj 式可以表示如下 2 25 j1t q it q1 0 ji t 其他 2 4 3 人工神经网络模型 ANN ANN 的具体内容是模仿人类大脑的模型 将听觉体系中人类神经机制的信息处 理系统引用到机器的研究中 因此具有学习和理解的能力 ANN 在语音识别中的应 用十分广泛 如分类区分 共振峰检测等 其中用的最多的是利用神经网络的分类 区分能力 人工神经网络可以分辨浊音和清音 鼻音 摩擦音和爆破音 长期的实 验证明了人工神经网络强大的分类区分能力 将神经网络之所以能应用到语音识别中 是经过大量研究和训练而建立的 是 语音特征在系统中的一种映射 它与传统的识别方法完全不同的地方是 单个权值 与识别基元之间没有十分明确的对应关系 只存在整个权值构成的系统参数与整个 识别空间之间的对应关系 从处理信息方面来看 一组信息存储在人工神经网络内 部是乱中有序的 在存储信息过程中 ANN 对信息进行了大量的处理 而不是单纯 的把信心孤立地存在内部 存储和处理信息是密不可分的 但用人工神经网络识别 语音有个很大的缺陷 时序性很差 没有解决时间一致的问题 人工神经网络的具 体模型如下 当神经元 j 有多个输入与一个输出时 输入与输出的关系可表m 2l ix1 1 y 示成以下关系式 重庆理工大学毕业论文 基于 Matlab 的说话人识别 2 26 1 jj Jiijj sfy xws m i 其中表示阈值 表示从神经元 i 到神经元 j 的连接权重因子 表示激励 j ijwf 函数 上式也可简化为 2 27 m i iijJxw 0 s 其中 J w j0 1x0 激励函数可选择线性函数 也可选择非线性函数 常见的有 f 1 阶跃函数 0 0 0 1 f x x x 2 S 型函数 exp 1 1 f x x 3 双曲正切函数 xx xx ee ee xx tanh f 4 高斯函数 j jij i wxx 2 2 2 1 exp f 最为常见 最具典型性且最简的人工神经网络是 BP 神经网络 BP 神经网络是 采用误差的反向传播算法的多层感应器神经网络 是一种单向传输的多层前向网络 网络不仅有输入与输出节点 又有单层或多层隐层的节点 同层节点中没有任何祸 合 输入的语音信号首先从输入节点挨个传送到每个隐层的节点 然后传输至输出 节点 每一隐层节点的输出只关系着下一隐层节点的输出 2 4 4 HMM 和 ANN 的混合模型 隐马尔可夫模型 HMM 和人工神经网络模型 ANN 的混合模型完整的使 用了 ANN 的以下优点 成功掩盖了 HMM 的大部分缺点与不足 主要有以下三个 1 混合模型可以很好地适应语音数据无规律的变化 这可以不必刻意选取特 殊的语音特征参数输入模型库进行训练和识别 2 把人类的听觉模型也融入人工神经网络中 在人工神经网络的开始端可以 在同一时刻输入邻近帧的语音特征参数矢量 因此它与语音信号的真实形态更加一 致 重庆理工大学毕业论文 基于 Matlab 的说话人识别 3 ANN 的结束端可以和任何形式的概率分布函数达到一致 不仅可以很好地掌 控训练模型库中的概率分布的特性 还可以很真实地描述语音信号的概率分布曲线 重庆理工大学毕业论文 基于 Matlab 的说话人识别 第三章 基于 Matlab 的说话人识别 3 1 说话人识别系统平台介绍 对于说话人识别系统平台的搭建十分简单 只需用到一台电脑 麦克风 matlab 软件 Matlab 是一款强大仿真 编程软件 自 1984 年问世以来 经过时间的凝练 已 经成为广大学者 师生最常用和最信赖的仿真软件 Matlab 对人们强大的影响表现 在两个方面 传统的分析设计方法在 Matlab 平台上运用十分方便快捷 准确度也很 可靠 而新的分析设计方法也在 Matlab 上不断发展 基于 matlab 的说话人识别会用 到 matlab 的编程功能和 GUI 仿真功能 麦克风的主要作用是采集说话人语音 本系统对于电脑的要求不高 只需安装 matlab 软件 以上这些平台的基础准备 好了 一个说话人识别系统平台就搭建起来了 这样搭建起来的说话人识别系统不 仅方面快捷 而且价格便宜 3 2 语音采集模板 Speech Recording Plane 语音采集模板的主要目的便是采集说话人的声音 为后来的语音处理 识别做 好准备 图 3 1 为语音采集模块 图 3 1 语音采集模板 图 3 1 是利用 matlab 的 GUI 制作的 它包含了说话人的信息 如 姓名 年龄 重庆理工大学毕业论文 基于 Matlab 的说话人识别 和性别 这些信息需要预先设置 对于语音的采集 设置了三个采集的下拉框 频 率 时间和通道 和三个按键采集 显示语音和回放 语音信号的采集频率是指采 样模块在 1s 内对声音信号的采集次数 采样频率越高 语音复原后就更接近实际情 况 图 3 1 中设置了四种采集频率 下拉框中可以选择 11 025 22 050 s KHzFzH 44 100和 88 200 语音采集的时间的长短也是可变的 Times s 下拉框zHzHzH 中设置了 5s 10s 15s 30s 60s 和 120s 六种不同的采集时间 上图实现了语音的 采集 Record 显示语音 Display 和回放 Play 并且存储采集到的语音信号 这里 采集的语音信号将被命名为 西瓜 mat 而存储下来 3 3 预处理模板 Voice Preprocessing Plane 预处理就是将语音进行一些基本的处理 使语音更有利于识别 前面已经介绍 过预处理的方法和过程 这个模块的主要作用是截取语音有声音的部分 舍弃没有 声音的时间段 然后将有声音的部分拼接在一起 同样利用 matlab 的 GUI 做了一个 预处理模块 如图 3 2 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 2 预处理模板 图 3 2 中设置的第一个按钮是 Load Voice 即载入语音 这里载入的语音是图 3 1 采集的语音 点击 Load Voice 按钮 将出现图 3 3 的画面 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 3 载入语音 图 3 2 可以计算所采集语音的平均能量 mean energy 和过零率 zero cross rate 对于平均能量 可以设置其阈值 如图 3 4 并且画出平均能量的波形图 过零率同 样可以设置阈值 如图 3 5 并画出其波形 图 3 4 平均能量阈值 图 3 5 过零率阈值 图 3 2 中的最后还设置了两个按钮 plot cut 切割波形 save this data 保存 语音 3 4 特征提取模板 Feature Extraction Plane 特征提取模板的作用是提取经过预处理的语音信息的特征 图 3 6 描述了特征 重庆理工大学毕业论文 基于 Matlab 的说话人识别 提取的过程 图 3 6 特征提取模板 在特征提取过程中 首先对语音信号进行加窗 在 window name 下拉框中有四 种窗口可供选择 hamming window 哈明窗 hanning window 汉宁窗 和 rectangular window 矩形窗 不仅可以设置这些窗口的窗长 从 128 到 4096 还可 将不同窗口 不同窗长的窗画出来 Extracting 静态窗是语音的分帧过程 分帧分为两部分 一是帧重叠的多少 二 是分帧的方法 分帧的方法采用短时傅里叶变换 STFT 在 cepstral analysis 倒谱分析 这个大的静态框中 选择用 MFCC 系数的方法 提取特征 因为倒谱的频率越高 其计算的准确度就越低 所以在选择倒谱的频率 时往往选择低频 关于倒谱的频率 和采集频率一样 有四种 11 025 22 050zH 44 100和 88 200 可供选择 zHzHzH 3 5 训练识别模板 Speech Recognition Plane 训练识别模块采用的是 MATLAB 中自带的神经网络 它可以实现对语音特征 的训练和识别 使用起来非常的方便 而且快捷 运行 main 程序 程序的最后一条 指令为 nnstart 这样就会弹出神经网络模板 如下图 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 7 神经网络识别模式 进入图 3 7 画面之后 点击 pattern recognition tool 模式识别 进入 matlab 自带 的神经网络模式识别工具 见图 3 8 图 3 8 识别模式介绍 由图 3 8 可以看到关于神经网络模式识别工具的简介和模型图 人后单击 next 重庆理工大学毕业论文 基于 Matlab 的说话人识别 进入下一画面 如下图 3 9 图 3 9 训练数据选择 图 3 9 中将设置输入值 inputs 和目标值 targets 这两个值将用于特征向量 的训练和识别 继续点击 next 知道出现图 3 10 的画面 图 3 10 设置神经元个数 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 10 中的 number of hidden neurons 神经元的个数 可以根据自己的需要进 行设置 继续点击 next 出现如图 3 11 画面 图 3 11 训练模板 图 3 11 将实现语音的训练过程 点击 train 就开始了语音的训练 训练的次数是 无限的 在 results 框中可以看到训练结果的误差有多大 继续点击 next 知道出现 图 3 12 画面 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 12 保存训练结果 图 3 12 是语音信号训练识别的最后一步 点击 save results 保存数据 实现对 训练识别数据的保存 Mian 程序中编写了可以看到前 20 个语音信号的频谱的程序 如图 3 13 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 13 20 个语音的频谱 运行完 main 程序 经过神经网络的模式识别保存好数据之后 运行 start 程序 得到识别结果 哪一说话人的识别有错误 被误识别为哪个说话人 识别的准确率 都可以表示在 MATLAB 的指令窗 如下图 3 14 重庆理工大学毕业论文 基于 Matlab 的说话人识别 图 3 14 识别准确率 其中 Q 表示识别率 重庆理工大学毕业论文 基于 Matlab 的说话人识别 第 4 章 总结与展望 4 1 总结 本文充分展现了 Matlab 仿真软件强大的数学计算和编程能力 通过对其自带工 具 GUI 图形用户界面和神经网络模式识别的使用 结合程序的自由编写 使一些极 其复杂的数学计算过程变得方便快捷 在 MATLAB 仿真软件平台上实现说话人语 音的识别 基本达到预期目的 通过 matlab 实现了对说话人语音的采集 处理 训 练和识别 Matlab 中的神经网络模式识别系统是实现各类识别的重要工具 本文采 用神经网络模式识别作为语音识别的过程 能准确识别 3 人及其以下说话人 识别 率高达 100 能较好的识别 3 到 10 识别率的范围为 81 6092 95 4128 10 20 人的识别率一般 20 人以上的识别率较差 所以 本文最大的不足就在于识别人数 较多时 识别的准确率较差 再进一步改进实验中 可以讲训练识别的算法改为隐 马尔可夫模型 HMM 或者高斯混合模型 GMM 4 2 展望 随着现代技术的发展 语音识别技术已经取得了飞速的发展 也取得了许多成 就 但是人类语言交流都是在十分复杂的环境下进行的 难免会存在各种噪声 使 得计算机很难具有人类一样的智能识别 因此对未来语音识别的发展展望如下 1 口音识别能力 由于人类生活的领域不同 导致人类交流的语言不大相同 在今后语音识别技 术的发展过程中 对于不同语言 不同口音的识别将是一个研究方向 2 扩展能力 现在有各种技术的语音识别系统 对于这些系统与其相关的链接上 也就是该 系统的扩展能力还有待进一步研究和发展 3 正确率 一个较好的语音识别系统 应该要有较好的使用价值 其识别率应该在 95 以上 所以未来对于语音识别的正确率也提出了比较高的要求 4 识别速度 识别速度越快 就越和真实人类语音交流相同 这就要求语音识别系统在未来 的发展中 想着高识别速度发展 不断达到和口语速度一致 5 新理论 新方法 重庆理工大学毕业论文 基于 Matlab 的说话人识别 当今世界是一个发展的世界 软硬件结合是时代的一个潮流 所以在今后语音 识别技术的发展中 结合已有相关理论知识和软硬件基础 不断创造出新的语音识 别处理方法 重庆理工大学毕业论文 基于 Matlab 的说话人识别 致 谢 时光飞逝 大学四年学习时间即将结束 回首这几年时间 我受到了有许许多 多老师和同学的帮助和支持 在此 我要向对帮助过我的人表示感谢 首先 感谢我的导师肖汉光 肖老师严谨的治学之风 忘我的工作态度和对知 识的不懈追求与探索使我受益匪浅 肖老师细心 耐心的指导 让我顺利的完成了 毕业论文 其次 感谢我的同学 他们的鼓舞和支持 是我完成论文的重要支柱 最后 感谢我的父母 正是他们对我生活上以及精神上的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论