语音识别解决的是计算机听得见的问题,语音识别技术所面临的问题与解决方案及未来发展..._山月抚过惊蛰的博客-程序员秘密

技术标签: 语音识别解决的是计算机听得见的问题  

(1)预处理模块:对输入的原始语音信号进行处理,滤除掉其中的不重要的信息以及背景噪声,并进行语音信号的端点检测、语音分帧以及预加重等处理。

(2)特征提取模块:负责计算语音的声学参数,并进行特征的计算,以便提取出反映信号特征的关键特征参数用于后续处理。现在较常用的特征参数有线性预测(LPC)参数、线谱对(LSP)参数、LPCC、MFCC、ASCC、感觉加权的线性预测(PLP)参数、动态差分参数和高阶信号谱类特征等。其中,Mel频率倒谱系数(MFCC)参数因其良好的抗噪性和鲁棒性而应用广泛。

(3)训练阶段:用户输入若干次训练语音,经过预处理和特征提取后得到特征矢量参数,建立或修改训练语音的参考模式库。

(4)识别阶段:将输入的语音提取特征矢量参数后与参考模式库中的模式进行相似性度量比较,并结合一定的判别规则和专家知识(如构词规则,语法规则等)得出最终的识别结果。

4 语音识别的几种基本方法

当今语音识别技术的主流算法,主要有基于动态时间规整(DTW)算法、基于非参数模型的矢量量化(VQ)方法、基于参数模型的隐马尔可夫模型(HMM)的方法、基于人工神经网络(ANN)和支持向量机等语音识别方法。

4.1 动态时间规整(DTW)

DTW是把时间规整和距离测度计算结合起来的一种非线性规整技术,是较早的一种模式匹配和模型训练技术。该方法成功解决了语音信号特征参数序列比较时时长不等的难题,在孤立词语音识别中获得了良好性能。

4.2 矢量量化(VQ)

矢量量化是一种重要的信号压缩方法,主要适用于小词汇量、孤立词的语音识别中。其过程是:将语音信号波形的k个样点的每1帧,或有k个参数的每1参数帧,构成k维空间中的1个矢量,然后对矢量进行量化。量化时,将k维无限空间划分为M个区域边界,然后将输入矢量与这些边界进行比较,并被量化为“距离”最小的区域边界的中心矢量值。矢量量化器的设计就是从大量信号样本中训练出好的码书,从实际效果出发寻找到好的失真测度定义公式,设计出最佳的矢量量化系统,用最少的搜索和计算失真的运算量,实现最大可能的平均信噪比。

4.3 隐马尔可夫模型(HMM)

隐马尔可夫模型是20世纪70年代引入语音识别理论的,它的出现使得自然语音识别系统取得了实质性的突破。目前大多数大词汇量、连续语音的非特定人语音识别系统都是基于HMM模型的。

HMM是对语音信号的时间序列结构建立统计模型,将其看作一个数学上的双重随机过程:一个是用具有有限状态数的Markov链来模拟语音信号统计特性变化的隐含的随机过程,另一个是与Markov链的每一个状态相关联的观测序列的随机过程。前者通过后者表现出来,但前者的具体参数是不可测的。人的言语过程实际上就是一个双重随机过程,语音信号本身是一个可观测的时变序列,是由大脑根据语法知识和言语需要(不可观测的状态)发出的音素的参数流。HMM合理地模仿了这一过程,很好地描述了语音信号的整体非平稳性和局部平稳性,是较为理想的一种语音模型。

HMM模型可细分为离散隐马尔可夫模型(DHMM)和连续隐马尔可夫模型(CHMM)以及半连续隐马尔可夫模型(SCHMM)等。

4.4 人工神经元网络(ANN)

人工神经元网络在语音识别中的应用是目前研究的又一热点。ANN实际上是一个超大规模非线性连续时间自适应信息处理系统,它模拟了人类神经元活动的原理,最主要的特征为连续时间非线性动力学、网络的全局作用、大规模并行分布处理及高度的稳健性和学习联想能力。这些能力是HMM模型不具备的。但ANN又不具有HMM模型的动态时间归正性能。因此,人们尝试研究基于HMM和ANN的混合模型,把两者的优点有机结合起来,从而提高整个模型的鲁棒性,这也是目前研究的一个热点。

4.5 支持向量机(SVM)

支持向量机是应用统计学习理论的一种新的学习机模型,它采用结构风险最小化原理(SRM),有效克服了传统经验风险最小化方法的缺点,在解决小样本、非线性及高维模式识别方面有许多优越的性能。其基本思想可以概括为:首先通过非线性变换将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的内积函数实现的。目前,统计学习理论和支持向量机也是国际上机器学习领域的研究热点。

5 语音识别所面临的问题

尽管语音识别取得很大成功,但是距离真正的人机自由交流还有很大的距离。例如,目前计算机还需要对用户做大量训练才能更准确识别,用户的语音识别率也并不是尽如人意。主要难题有以下几个方面:

(1)识别系统的适应性差。主要体现在对环境依赖性强,特别在高噪音环境下语音识别性能还不理想。

(2)语音识别系统从实验室演示系统到商品的转化过程中,还有许多具体问题需要解决。例如,识别速度、拒识等问题,还有连续语音中去除不必要语气词如“呃”、“啊”等语音的技术细节问题。

(3)语言学、生理学、心理学方面的研究成果已有不少,但如何把这些知识量化、建模并用于语音识别,还需要进一步研究。

面对上面的困难,语音识别技术要做到真正成功,在任何环境中都能人机进行自由地对话,不仅需要语音识别基础理论的突破,更需要大量的实际工作的积累。

6 语音识别技术的前景展望

语音作为当前通信系统中最自然的通信媒介,语音识别技术是非常重要的人机交互技术。随着计算机和语音处理技术的发展,语音识别系统的实用性将进一步提高。应用语音的自动理解和翻译,可消除人类相互交往的语言障碍。国外已有多种基于语音识别产品(如声控拨号电话、语音记事本等)的应用,基于特定任务和环境的听写机也已经进入应用阶段。这预示着语音识别技术有着非常广泛的应用领域和市场前景。随着语音技术的进步和通信技术的飞速发展,语音识别技术将为网上会议、商业管理、医药卫生、教育培训等各个领域带来极大的便利,其应用和经济、社会效益前景非常良好。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33548183/article/details/119162432

智能推荐

深度linux创建微信图标,ubuntu18.10创建微信桌面快捷图标_weixin_39616416的博客-程序员秘密

前言:假设已经安装好了Ubuntu版的微信,安装教程在此不述。下载地址:https://github.com/geeeeeeeeek/electronic-wechat①网上随便百度一个微信的图标,保存在微信程序根目录【electronic-wechat-linux-x64】下,命名为wechat.png②在/usr/share/applications下通过gedit创建一个文件,文件名为wec...

记一次C/S架构的渗透测试-请求加解密及测试_c/s渗透测试_小石aaaaa的博客-程序员秘密

概述目标站点是http://www.example.com,官网提供了api使用文档,但是对其测试后没有发现漏洞,目录、端口扫描等都未发现可利用的点。后发现官网提供了客户端下载,遂对其进行一番测试。信息收集先抓了下客户端的包,使用Fiddler和BurpSuite都抓不到,怀疑走的不是HTTP协议,用WireShark查看其确实用的是HTTP协议,但是数据包不好重放,这里最后使用了WSExp...

springboot实现短信验证码登录注册_springboot手机验证码登录_谭先生呀的博客-程序员秘密

上一篇文章写了springboot的普通登录注册功能,并且实现了接口防刷,现在一般在商业环境中为了方便都会直接短信验证码登录注册。短信验证码登录分为两种情况:1、还没有注册过,验证码登录会先根据手机号直接注册完事儿再登录。2、该手机号已经注册过,短信验证码直接登录。一、短信验证码的流程用户输入手机号,点击发送验证码按钮 前端将手机号发送给后端 后端生成一个6位的随机数通过短信发送给用户,之后手机号为key,随机数为value,存入缓存中,最后将短信发送是否成功的结果返回给前端。 当用户收到

Halcon图像预处理-图像的变换与校正_halcon图像配准_yuanrongyouzhi的博客-程序员秘密

提示:本文参考了网上其他相关文章,如有侵权,请联系作者。文章目录前言一、图像处理与矩阵(Matrix)、齐次坐标1.图像的平移2.图像的旋转3.图像的缩放4.补充二、仿射变换1.仿射变换矩阵2.应用仿射变换矩阵三、透视变换(投影变换)1.投影变换2.Halcon中的投影变换实例3.其他实例总结前言       获得了相机采集的图像之后,图像质量往往会与预想的有所差异,如出现形状失真、亮度低、图像噪声大等问题,因此需要对图像进行.

SpringBoot整合Mybatis,实现简单的增删改查_springboot mybatis curd_希境的博客-程序员秘密

这是最终的文件目录结构:新建maven工程1,配置pom.xml<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version></parent><depende

查看mysql的并发请求数_mysql 查询请求数_cnbird2008的博客-程序员秘密

在mysql中使用:show processlist  可查看并发请求是否超过你的/etc/my.cnf中的max_connections的设定

随便推点

GIT(aliyun code)生成 SSH Key步骤_alicode生成ssh密钥_我是旦旦呀的博客-程序员秘密

GIT(aliyun code)生成 SSH Key步骤第一步:设置你的用户名git config --global user.name "你的用户名"第二步:设置你的用户名git config --global user.email "你的邮箱"第三步:生成ssh秘钥ssh-keygen -t rsa -C "标题"重点内容 1:标题可以是你...

[Java] Win10 配置 maven时, cmd输入 mvn -v 出现EXCEPTION_ACCESS_VIOLATION问题解决_eziaowonder的博客-程序员秘密

Win10 配置 maven时, cmd输入 mvn -v 出现EXCEPTION_ACCESS_VIOLATION问题解决问题描述问题分析问题解决问题描述博主在win10 机子上配置maven时,正常配置完死活出现jvm 崩溃情况,Google和百度扫了下没啥对应的帖子,特此记录下。先贴上hs_err_log信息## A fatal error has been detected by...

leetcode 1207. 独一无二的出现次数(2020.10.28)_补水次数 leetcode_Sophia_fez的博客-程序员秘密

【题目】1207. 独一无二的出现次数给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输

Python中的整除_python中整除_anoperA的博客-程序员秘密

#这是浮点除法, 得到的结果是浮点数(float)var = 3/2#得到的结果是整数1, 这是整除类似于某些编程语言的"\"var = 3//2#这是四舍五入var1 = round(3/2) #结果为2var2 = round(2.8/2) #结果为1import mathvar = 3/2var = math.floor(var) #结果为1, 这个floo

Linux下安装NetworkManger_linux安装network_sxy19930313的博客-程序员秘密

NetworkManager简介:NetworkManager由一个管理系统网络连接、并且将其状态通过D-BUS(是一个提供简单的应用程序互相通讯的途径的自由软件项目,它是做为freedesktoporg项目的一部分来开发的。)进行报告的后台服务,以及一个允许用户管理网络连接的客户端程序。NetworkManager的优点:简化网络连接的工作,让桌面本身和其他应用程序能感知网络。Netwo

地球引擎保姆级教程——最简单的单点NDVI时序图表!_ndvi变化趋势图怎么做_此星光明的博客-程序员秘密

var roi = /* color: #00ff00 */ee.Geometry.Point([-122.10067749023438, 37.43615762405059]),var l8sr = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR");// ndvi函数var addNDVI = function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('...

推荐文章

热门文章

相关标签