基于BP神经网络的语音识别技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络测试: Y = sim(net,Test) %输入测试语音参数进行识别
训练曲线如下图所示:可见经过100次训练后基本接近于目标值
• 语音识别系统可以分为孤立字(词)语音识别系统、 连接字语音识别系统以及连续语音识别系统。 • 语音识别系统分为两个方向:一是根据对说话人 的依赖程度可以分为特定人和非特定人语音识别 系统;二是根据词汇量大小,可以分为小词汇量、 中等词汇量、Leabharlann Baidu词汇量,以及无限词汇量语音识 别系统。
二.语音识别流程
六.语音识别程序设计
数字的语音识别
实验目的:识别1 3 5三个数字(选择135是因为135三个数字的识别率最高) 训练样本:每个数字选取5个样本进行训练(均为同一个人的样本)
测试样本:每个数字选取3个样本进行识别测试(均为同一个人的样本)
T1 = [1 0 0]‘ T3 = [0 1 0]‘ T5 = [0 0 1]‘ % 代表1 % 代表3 % 代表5
从图的系统整体架构可以看到,建立基于BP神经网络的语音识别系统可分 为两个阶段,即训练阶段和识别阶段。首先由用户通过麦克风输入语音形成原始 语音,然后系统对其进行预处理。预处理包括预加重,加窗分帧和端点检测三个 过程。系统的前端采用了端点检测,目的是在一段语音信号中确定起点和终点。 在特征提取部分,本系统采用了MFCC作为特征参数,用于有效地区分数字1-5.
通过阅读文献了解到基于DTW算法和MFCC就已经可以做到语音的识别了, 但是泛化性比较差,中间测试过一个相关的程序只能识别特定的语音片段, 更换说话人后识别效果很差。
五.BP神经网络原理
BP神经网络又称误差反向传递神经网络。提取了语音的特征参数后,靠神经 网络中大量的连接权对输入模式进行非线性运算,产生最大兴奋的输入点就代表 了输入模式对应的分类。神经网络的连接权系数是在使用中根据识别结果的正确 与否不断的进行自适应修正。单隐层网络的整个体系结构如图所示,分为输入层、 隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层 结构。
夹内各个文件夹的名字代表其内音频 的内容,例如名字为 1 的文件夹中所 有的音频内容均为1的发音 该文件夹中为所有的测试样本 夹内格式同上 该函数将输入向量分为固定长 Matlab语音工具箱组件 度固定重叠量的帧 该函数为Mel滤波器 Matlab语音工具箱组件 该函数求出输入数据的 mfcc系 12维mfcc系数 数 将多组mfcc系数取平均 对mfcc系数的预处理 将取所有音频的mfcc系数处理 成神经网络函数所需的输入格 式 主程序函数,在这里设置参数, 控制运行
基于BP神经网络的语音识别技术
汇报人:
目录
一.语音识别概述 二.语音识别流程 三.语音信号预处理 四.语音识别特征提取 五.BP神经网络原理 六.语音识别程序设计
一.语音识别概述
• 语音识别以语音为研究对象,涉及到生理学、心 理学、语言学、计算机科学,以及信号处理等诸 多领域,最终目的是实现人与机器进行自然语言 通信,用语言操纵计算机。
神经网络相关的部分程序:
神经网络训练: netBP = newff(PR,[30,10,3],{'tansig','tansig','tansig'},'trainbfg'); %使用TRAINSIG,即共轭梯度法,其好处是当训练不收敛时,它会自动停 止训练,而且耗时较其他算法(TRAINLM, TRAINGD)少,也就是收敛很 快 netBP.trainParam.epochs = 100; %设置训练步数 [net tr] = train(netBP,PS,T); %网络训练
由此图可以看出门限值选取的合不合理很大程度上影响到端点识别的效果
四.语音识别特征提取
特征提取:即对不同的语音寻找其内在特征,由此来判别出未知语音,所以每 个语音识别系统都必须进行特征提取。 语音信号的特征主要有时域和频域两种。 时域特征:短时平均能量、短时平均过零率、共振峰、基音周期等; 频域特征:线性预测系数(LPC)、LP倒谱系数(LPCC)、 Mel频率倒谱系数 (MFCC)等。 本实验选取MEL频率倒谱系数(MFCC)进行提取特征参数。
下表格为所用到的matlab程序及其功能:
文件 . /pic
内容 备注 该文件夹中保存有实验效果分 析结果的图片
. /S
该文件夹中为所有的训练样本
. /T . /enframe.m
. /melbankm . /mfcc.m
. /MfccProcess.m . /SampleCreate. m . /Main.c
三.语音信号预处理
1.预加重 语音从嘴唇辐射会有6dB/oct的衰减,因此 在对语音信号进行处理之前,希望能按 6dB/oct的比例对信号加以提升(或加重),以 使得输出信号的电平相近似。可采用以下差 分方程定义的数字滤波器:
y(n) x(n) ax(n 1)
式中,系数常在0.9至1之间选取。
2.语音信号的分帧 语音信号是一种典型的非平稳信号,它的均值函数u(x)和自相关 函数R(xl,x2)都随时间而发生较大的变化。但研究发现,语音信号在 短时间内频谱特性保持平稳,即具有短时平稳特性。因此,在实际 处理时可以将语音信号分成很小的时间段(约10~30ms),称之为 “帧”。 在语音信号数字处理中常用的窗函数是矩形窗、汉明窗等,它们 的表达式如下(其中N为帧长): 矩形窗:
汉明窗:
3.端点检测 基于短时能量和短时过零率的双门限检测法
在该算法中,短时能量检测可以较好地区分出浊音和静音。对于 清音,由于其能量较小,在短时能量检测中会因为低于能量门限 而被误判为静音,短时过零率则可以从语音中区分出静音和清音。 将两种检测结合起来,就可以检测出语音段及静音段。
下图是我本科课程设计中一个关于端点检测的程序GUI界面,其中语音是教材中的示例语音“他去无 锡市”,我通过cooledit在示例语音中加入了白噪音,可以看出清音段混杂在噪音中,如果短时能量的门 限值选取过高可能会屏蔽掉清音段,所以加入过零率能更好的识别出清音段。
训练曲线如下图所示:可见经过100次训练后基本接近于目标值
• 语音识别系统可以分为孤立字(词)语音识别系统、 连接字语音识别系统以及连续语音识别系统。 • 语音识别系统分为两个方向:一是根据对说话人 的依赖程度可以分为特定人和非特定人语音识别 系统;二是根据词汇量大小,可以分为小词汇量、 中等词汇量、Leabharlann Baidu词汇量,以及无限词汇量语音识 别系统。
二.语音识别流程
六.语音识别程序设计
数字的语音识别
实验目的:识别1 3 5三个数字(选择135是因为135三个数字的识别率最高) 训练样本:每个数字选取5个样本进行训练(均为同一个人的样本)
测试样本:每个数字选取3个样本进行识别测试(均为同一个人的样本)
T1 = [1 0 0]‘ T3 = [0 1 0]‘ T5 = [0 0 1]‘ % 代表1 % 代表3 % 代表5
从图的系统整体架构可以看到,建立基于BP神经网络的语音识别系统可分 为两个阶段,即训练阶段和识别阶段。首先由用户通过麦克风输入语音形成原始 语音,然后系统对其进行预处理。预处理包括预加重,加窗分帧和端点检测三个 过程。系统的前端采用了端点检测,目的是在一段语音信号中确定起点和终点。 在特征提取部分,本系统采用了MFCC作为特征参数,用于有效地区分数字1-5.
通过阅读文献了解到基于DTW算法和MFCC就已经可以做到语音的识别了, 但是泛化性比较差,中间测试过一个相关的程序只能识别特定的语音片段, 更换说话人后识别效果很差。
五.BP神经网络原理
BP神经网络又称误差反向传递神经网络。提取了语音的特征参数后,靠神经 网络中大量的连接权对输入模式进行非线性运算,产生最大兴奋的输入点就代表 了输入模式对应的分类。神经网络的连接权系数是在使用中根据识别结果的正确 与否不断的进行自适应修正。单隐层网络的整个体系结构如图所示,分为输入层、 隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层 结构。
夹内各个文件夹的名字代表其内音频 的内容,例如名字为 1 的文件夹中所 有的音频内容均为1的发音 该文件夹中为所有的测试样本 夹内格式同上 该函数将输入向量分为固定长 Matlab语音工具箱组件 度固定重叠量的帧 该函数为Mel滤波器 Matlab语音工具箱组件 该函数求出输入数据的 mfcc系 12维mfcc系数 数 将多组mfcc系数取平均 对mfcc系数的预处理 将取所有音频的mfcc系数处理 成神经网络函数所需的输入格 式 主程序函数,在这里设置参数, 控制运行
基于BP神经网络的语音识别技术
汇报人:
目录
一.语音识别概述 二.语音识别流程 三.语音信号预处理 四.语音识别特征提取 五.BP神经网络原理 六.语音识别程序设计
一.语音识别概述
• 语音识别以语音为研究对象,涉及到生理学、心 理学、语言学、计算机科学,以及信号处理等诸 多领域,最终目的是实现人与机器进行自然语言 通信,用语言操纵计算机。
神经网络相关的部分程序:
神经网络训练: netBP = newff(PR,[30,10,3],{'tansig','tansig','tansig'},'trainbfg'); %使用TRAINSIG,即共轭梯度法,其好处是当训练不收敛时,它会自动停 止训练,而且耗时较其他算法(TRAINLM, TRAINGD)少,也就是收敛很 快 netBP.trainParam.epochs = 100; %设置训练步数 [net tr] = train(netBP,PS,T); %网络训练
由此图可以看出门限值选取的合不合理很大程度上影响到端点识别的效果
四.语音识别特征提取
特征提取:即对不同的语音寻找其内在特征,由此来判别出未知语音,所以每 个语音识别系统都必须进行特征提取。 语音信号的特征主要有时域和频域两种。 时域特征:短时平均能量、短时平均过零率、共振峰、基音周期等; 频域特征:线性预测系数(LPC)、LP倒谱系数(LPCC)、 Mel频率倒谱系数 (MFCC)等。 本实验选取MEL频率倒谱系数(MFCC)进行提取特征参数。
下表格为所用到的matlab程序及其功能:
文件 . /pic
内容 备注 该文件夹中保存有实验效果分 析结果的图片
. /S
该文件夹中为所有的训练样本
. /T . /enframe.m
. /melbankm . /mfcc.m
. /MfccProcess.m . /SampleCreate. m . /Main.c
三.语音信号预处理
1.预加重 语音从嘴唇辐射会有6dB/oct的衰减,因此 在对语音信号进行处理之前,希望能按 6dB/oct的比例对信号加以提升(或加重),以 使得输出信号的电平相近似。可采用以下差 分方程定义的数字滤波器:
y(n) x(n) ax(n 1)
式中,系数常在0.9至1之间选取。
2.语音信号的分帧 语音信号是一种典型的非平稳信号,它的均值函数u(x)和自相关 函数R(xl,x2)都随时间而发生较大的变化。但研究发现,语音信号在 短时间内频谱特性保持平稳,即具有短时平稳特性。因此,在实际 处理时可以将语音信号分成很小的时间段(约10~30ms),称之为 “帧”。 在语音信号数字处理中常用的窗函数是矩形窗、汉明窗等,它们 的表达式如下(其中N为帧长): 矩形窗:
汉明窗:
3.端点检测 基于短时能量和短时过零率的双门限检测法
在该算法中,短时能量检测可以较好地区分出浊音和静音。对于 清音,由于其能量较小,在短时能量检测中会因为低于能量门限 而被误判为静音,短时过零率则可以从语音中区分出静音和清音。 将两种检测结合起来,就可以检测出语音段及静音段。
下图是我本科课程设计中一个关于端点检测的程序GUI界面,其中语音是教材中的示例语音“他去无 锡市”,我通过cooledit在示例语音中加入了白噪音,可以看出清音段混杂在噪音中,如果短时能量的门 限值选取过高可能会屏蔽掉清音段,所以加入过零率能更好的识别出清音段。