语音搜索功能在哪(开启语音搜索功能)

语音搜索功能在哪(开启语音搜索功能)

百科常识打吡咯2023-11-30 0:07:2025A+A-

今天是语音搜索吗?最近被这句话洗脑了。无论是电视还是手机,语音识别功能已经渗透到生活的方方面面。那么,语音识别搜索功能适用于哪些领域呢?技术支持是什么?

今天是语音搜索吗?语音识别已经成为人工智能应用的一个重要点。通过语音控制设备简单方便,各个领域都兴起了研究和应用热潮。数据、算法和芯片是语音识别技术的三大关键。大量高质量的数据、准确快速的算法和高性能的语音识别芯片是提高语音识别的核心。

语音是人工智能产品的主要入口,也是兵家必争之地。相关算法的研究日新月异,CNN RNN CLRNN HMM LACE等模型都是极具优势的,综合使用和修改各种算法比较好。这里对语音识别技术进行了概述。

今天是语音搜索吗?应用场景

目前语音识别广泛应用于智能家居、智能车辆、智能客服机器人,未来将深入到学习、生活、工作的方方面面。国内外许多大公司都在致力于这项技术的研究,并不断推出实用产品。例如,科大讯飞的翻译器可以将中文翻译成其他语言,而且效果不错。

语音识别的商业化,需要内容、算法等多方面的协同支撑,但良好的用户体验是商业应用的第一要素,识别算法是提升用户体验的核心因素。下面将从算法发展路径、算法发展现状和前沿算法研究三个方面来讨论语音识别技术。

ata-offset-key="b2lk1-0-0">算法
对于语音识别系统而言,第一步要检测是否有语音输入,即,语音激活检测(VAD)。在低功耗设计中,相比于语音识别的其他部分,VAD采用always on的工作机制。当VAD检测到有语音输入之后,VAD便会唤醒后续的识别系统。识别系统总体流程如图所示,主要包括特征提取、识别建模及模型训练、解码得到结果几个步骤。
首先,我们知道声音实际上是一种波。常见的MP3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows PCM文件,也就是俗称的wav文件。wav文件里面存储的除了一个文件头以外,就是声音波形的一个个点了。
在语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为VAD,需要用到信号处理的一些技术。
要做声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现。
分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换,常见的一种方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取在实际应用中,这一步有很多细节,声学特征也不止有MFCC这一种。
至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。
接下来就要介绍怎样把这个矩阵变成文本了,首先要介绍两个概念:
音素:单词发音由音素构成。对英语,一种常见的音素是卡内基梅隆大学的一套由39个音素构成的音素表,汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分为有调无调;
状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素化为3个状态。
今天语音搜索了吗?语音识别是怎么工作的呢?实际上一点都不神秘,无非是:
把帧识别成状态(难点);
把状态组合成音素;
把音素组合成单词。
每个小竖条,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧对应哪个状态了,语音识别结果也就出来了。
那每帧音素对应哪个状态呢?比如下面这张示意图,这帧在状态上S3上的条件概率最大,因此就猜测这帧属于状态S3。
那这些用到的概率在哪里读取呢?有个叫“声学模型”的东西,里面存了一大堆参数,通过这些参数,就知道帧和状态对应的概率。获取这一大堆参数的方法叫做“训练”,需要使用巨大数量的语音数据。
但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八杂的状态号。假设语音有1000帧,每帧对应1个状态,每3个状态组合成一个音素,那么大概会组成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到状态可能根本无法组合成音素。实际上,相邻帧的状态应该都是相同的才合理,因为每帧很短。
解决这个问题的常用方法就是隐马尔科夫模型(HMM)。这东西听起来好像很高深的样子,实际上用起来很简单:
第一步,构建一个状态网络。
第二步,从状态网络中寻找与声音最匹配的路径。
这样就把结果限制在预先设定的网络中,避免了刚才说的问题,当然也带来一个局限,比如你设定的网络里只包含“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出结果必然是这两个句子中的一句。
那如果想识别任意文本呢?把这个网络搭的足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。
搭建状态网络,是由单词级网络展开音素网络,再展开状态网络。
语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为viterbi算法,用于寻找全局最优路径。
这里所说的累计概率,由三部分构成,分别是:
观察概率:每帧和每个状态对应的概率
转移概率:每个状态转移到自身或转移到下个状态的概率
语言概率:根据语言统计规律得到的概率
其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某种语言本身的统计规律来帮助提升识别正确率。
今天语音搜索了吗?语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。这样基本上语音识别过程就完成了。
点击这里复制本文地址 版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(https://www.angyang.net.cn)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

昂扬百科 © All Rights Reserved.  渝ICP备2023000803号-3网赚杂谈