DAV首页
数字音视工程网

微信公众号

数字音视工程网

手机DAV

null
null
null
卓华,
招商,
null
null
null
快捷,
null

我的位置:

share

威凯特科技:详解本地语音识别的瓶颈和应对措施

来源:数字音视工程网        编辑:胡燕    2017-05-23 14:23:32     加入收藏    咨询

咨询
所在单位:*
姓名:*
手机:*
职位:
邮箱:*
其他联系方式:
咨询内容:
验证码:
不能为空 验证码错误
确定

本文主要围绕语音识别原理、本地语音识别VS云识别的特点、 如何提高本地识别的体验感、深圳威凯特科技语音识别方案等详解本地语音识别的瓶颈和应对措施。

  ---- 威凯特科技致力于语音识别及相关应用

  语音识别技术,是基于关键词语列表识别的技术。只需要设定好要识别的关键词语列表,通过语音识别系统就可以对用户说处的关键词语进行识别,不需要用户作任何录音训练。

  一、 语音识别的原理

  声音实际上是一种波,下图是一个波形的示例。

  在开始语音识别之前,有时需要把首尾端的静音切除(一般称为VAD,用到信号处理的一些技术),降低对后续步骤造成的干扰。

  要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现,这里不详述。帧与帧之间一般是有交叠的,就像下图这样:

  图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。

  分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,声学特征也不止有MFCC这一种,具体这里不讲。

  至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。

  接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍两个概念:

  1. 音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary‎。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。

  2. 状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。

  语音识别是怎么工作的呢?实际上一点都不神秘,无非是:

  把帧识别成状态(难点)。

  把状态组合成音素。

  把音素组合成单词。

  如下图所示:

  图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。

  那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧在状态S3上的条件概率最大,因此就猜这帧属于状态S3。

  那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这一大堆参数的方法叫做“训练”,需要使用巨大数量的语音数据,训练的方法比较繁琐,这里不讲。

  但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号。假设语音有1000帧,每帧对应1个状态,每3个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。

  解决这个问题的常用方法就是使用隐马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很高深的样子,实际上用起来很简单:

  第一步,构建一个状态网络。

  第二步,从状态网络中寻找与声音最匹配的路径。

  这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如你设定的网络里只包含了“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。

  那如果想识别任意文本呢?把这个网络搭得足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。

  搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。

  这里所说的累积概率,由三部分构成,分别是:

  1. 观察概率:每帧和每个状态对应的概率

  2. 转移概率:每个状态转移到自身或转移到下个状态的概率

  3. 语言概率:根据语言统计规律得到的概率

  其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。

  这样基本上语音识别过程就完成了。

  二、 本地语音识别VS云识别之特点

  所谓本地语音识别,是指基于单个SOC独立完成拾音、信号处理、对比识别并输出识别结果。低端的有16位单片机核心,应用与玩具和礼品居多;中端有32位Contex-M0、M3或M4 等,性价比较高,目前应用范围比较广,是智能家居单体产品增加语音控制的首选,也是带云识别联网系统的必要补充;高端的有ARM9-ARM11 等等,早期中低端方案没有出来前,很多算法公司都流行使用这类的架构,因系统配置外围芯片多导致整体价格高,基本都往云识别大系统靠了。

  云识别的特点是把本地拾音结果直接送往云端,识别过程交给后台计算能力强大的后台处理,比如赢最强大脑选手的小度,据说后台有1000台计算机同时运算。正因为计算能力强大,云识别主要特点是:采样率高、声音分帧切段更小更多、可以多线程运行多个识别程序、具有庞大的经验数据支持、返回识别结果还可以词义和语句分析择选输出。

  手机上云识别的体验非常好,得益于科大讯飞、百度、腾讯、Google等多家竞争。

  可见,本地语音识别与云识别根本不是一个级别的东西。既希望芯片价格很低又要求完美性能是不切实际的,还不如用心做好产品,把每一类产品做到最合适功能和高性价比。下面重点分析克服本地语音识别缺点几种可行措施,当然依照不同场合选择使用。

  三、 如何提高本地识别的体验感?

  为了方便描述,以下本地语音识别应用产品以灯具为例。

  1. “听不到”“迟钝”的原因 -- 调整时间窗

  有时候我们说话比较大声,且发音标准,智能灯仍然听不到,感觉很迟钝。我们拿手机做实验,先点击话筒图标,再开始说“伊拉克难民”,结果95% 都可以识别出来;如果换一个动作慢一点的手去点话筒图标,等说出“伊拉克”的第一个字或第二个字后再点,看看出什么结果?

  智能家居的本地识别产品,很少设计有用手点“开始”键再说词条的,故,变通的办法就是利用“废”词条来启动,真正词条紧接着说出来。这个方法说起来很简单,代码可不是很容易实现。时间片编程可以高效灵活的改变主循环轮盘周期长度、自由穿插各种已知运行时间长度的任务。

  2. 灵敏度太高引起的误触发 启动词条的引入

  小威你好,打开灯光。

  小威你好,五分钟后关灯。

  启动词条引入,太多人知道且习惯了,这里不多说。

  要强调的是,过分要求远距离,不是明智的选择。声压随着距离增加急剧降低,距离增加1倍声压级减少6dB。请比较下图 0.5米(左) 和 1米(右) 的“小威你好,打开灯光”波形。

  当距离超过4米说话的波形级别仅仅比低噪高一丁点了,这时也要识别到,就必须大大砍掉“特征信息”,这是造成误触发的最大原因。也是为什么手机识别一般人都喜欢对着话筒很近说的原因。

  3. 智能仪表专用 双词命令 和 语音反馈

  在智能仪表控制应用里,威凯特建议使用双词命令,再加上语音反馈,误识别率基本为零。

  小威智能仪表 ==》“您好!主人”

  设置电压,24伏 ==》“您确定要24伏吗?” ==》 请执行!

  4. 儿童伴读玩具 多页菜单实现上百条指令

  多页菜单,可以实现上百条指令,且可以驱动1W喇叭播放16K 采样率声音,在玩具腔体里声音悦耳动听。

  5. 远距离接力 命令远距离接力

  在智能家居系统产品里,中央控制器隐藏在不易发现的地方,也即声音不易传到的地方。使用RF 422MHz,2.4G BLE模块是远距离接力的常见选择。

  用得起中央控制智能家居系统的地方,一般房间都比较大,接力点就需要足够多才有很好的体验效果。但是,多接力点安装是麻烦的事情,不管什么档次的识别SOC,在识别启动以后功耗都10mA以上,都不是电池可以长期承受的。于是,就有下面的“人在启动识别”方案

  6. 远距离接力 人在启动识别

  “人在启动识别”方案,主要解决房间大需要多个拾音的场合,它的技术关键点在于:

  1) 低功耗MIC(10uA量级)声强触发电路;

  2) 低功耗红外被动人体感应触发电路;

  3) CDMA+QFSK防同频干扰RF私密传输协议;

  4) 威凯特VR321 VR322 VR522 快速启动语音识别模块。

  多拾音器的做法,可以大大提高识别灵敏度、降低误触发,远距离体验特别爽,还可以在同一个位置随意控制不同电器。比如:

  小威小威,吸顶灯,调暗一点。

  小威小威,走廊灯,请关闭。

  7. 降噪-降低环境噪声和AEC

  模块设计图(包含尺寸和引脚定义)

  降噪前语音频谱

  降噪后语音频谱

  AEC声学回声控制(Acoustic Echo Control),在wifi音响里使用,在播放音乐时候仍然可以识别对面人说话,配合云识别点歌,配合本地识别调整音量大小等。

  8. 降噪-特定噪声滤除

  在风扇、抽油烟机等具有固定的特定噪声,通过实地噪声采集,分析频谱范围,使用多段EQ和特殊陷波算法。该技术在华帝、艾美特、美的产品上广泛应用。

  9. 伪云识别 词条超过1000 的本地识别方案

  真正的云识别不仅硬件成本昂贵,不管接入科大讯飞、百度或Google、亚马逊AWS平台,营运商总要向平台商交付年费,所有成本自然最后都落在客户身上。FlexPC的“伪云识别”产品基于安卓硬件平台(4G),与移动、联通、电信和虚拟营运商长期合作,每年处理KK量级的超低价的全功能底板,利用强大的CPU做本地语音识别运算,具备以下优点:

  1) 词条超过1000;

  2) 不需要网络,故不需要叫平台费用;

  3) 以上多钟增强识别效果的措施都可以同样加上,它本来就是本地识别;

  4) 可以做词义、语句再分析判断,故说不太准的句子也能“听明白”。

  5) 生产周期短,走大货资金压力小。

  本地语音识别是云识别的完美补充

  四:深圳威凯特科技语音识别方案

  威凯特科技语音识别ASK现实意义

  语音识别ASR现实意义: ASR技术最重要的现实意义就在于提供了一种脱离按键,键盘,鼠标的基于语音的用户界面,使得用户对于产品的操作更快速,更自然。

  非特定人语音别别技术ASR,是对超大量的语音数据经语言学家语音模型分析,科学家建立数学模型,并经过反复训练提取基元语音的细节特征,以及提取各基元间的特征差异,可以得到在统计概率最优化意义上的各个基元语音特征。最后才由资深工程师将算法以及语音模型 转化为硬件芯片以应用在嵌入式系统中。

  ASR技术是基于关键词语列表识别的技术。 每次识别的过程,就是把用户说出的语音内容,通过频谱转换为语音特征,和这个关键词语列表中的条目进行一一匹配,最优匹配的一条作为识别结果。比如在手机的应用中,这个关键词语列表的内容就是电话本中的人名/手菜的菜单命令/T卡中的歌曲名称等,不论这个列表的条目内容是什么,只需要用户设置相关的寄存器,就可以把相应的待识别条目内容以字符形式传递给识别引擎。

  市场应用

  方案优势

  合作方式

  威凯特以高度集成的创新能力,为用户提供无缝的技术方案。公司致力于智能微控制处理器,数字类功放,数据存储,数据传递与信息加密,电源控制,屏控,触摸,LED驱动与锂电保护等领域的产品方案设计与销售,不断开拓进取,全方位满足不断增大的市场需求。

  深圳市威凯特科技有限公司

  联系人:何经理

  手机:13510558990

  电话:0755-82816669-816

  QQ:2355898188

免责声明:本文来源于网络收集,本文仅代表作者个人观点,本站不作任何保证和承诺,若有任何疑问,请与本文作者联系或有侵权行为联系本站删除。(原创稿件未经许可,不可转载,转载请注明来源)
扫一扫关注数字音视工程网公众号

相关阅读related

评论comment

 
验证码:
您还能输入500