美文网首页AI理解与业务应用
NLP业务应用系列-语音识别(2)

NLP业务应用系列-语音识别(2)

作者: 沉默的羔洋 | 来源:发表于2019-07-12 17:26 被阅读0次

    人类的知识信息大部分沉淀都以文本的方式存储在计算机中,但现实世界人类共同最直接最频繁的是【说】,要想在人机交互上进入下一个时代,识别语音就是第一步。当然目前技术对语音的识别已经超过人类,完全到达了商用阶段

    语音识别的过程

    1、拾音与声音处理

    语音识别很多场景并不是用户主动给计算机输入语音文件,很多时候是当做人一样去交互,我们要做的第一步就是如何在复杂的真实环境中抓取到目标任务相关的人声。目前在交互方式上有两大类型的场景

    近场识别

    最简单的方式是:用户想要用语音识别系统,点击按钮(系统开始记录人声)——讲话——松开按钮(系统结束记录人声)——系统输出处理结果;
    这种情况下,通常声音的信噪比比较高,音质清晰。经过简单的处理就可以交给声学模型。

    远场识别

    远场识别过程

    但是CUI交互的目标是像人那样子去交流,不需要手动去触发识别系统;在这样的场景下,拾音可能出现以下问题

    • 真实世界传感器需要抓到声音,但是周围声音是各种各样的,需要抓到有效的人声。
    • 抓到人声也不一定是目标任务的人声,可能是用户和别人交谈
    • 在远场场景下抓到的声音面临着回声干扰、室内混响、多信号源干扰以及非平稳噪声的干扰等等

    解决方案
    1、提取到清晰的声音后需要用语音激活检测(VAD)技术实现抓取语音(开始-结束)
    后续的语音信号处理或是语音识别都是在VAD截取出来的有效语音片段上进行的。

    2、通过语音唤醒(VT)技术实现语音交互的激活
    只有与任务相关的人声才能激活语音,否则极易出现用户正常交谈而激活语音系统。通过与用户“协定”唤醒词作为用户需要语音服务的前置条件;唤醒模块激活后才会进行更复杂的声音处理以及后续的语音交互;

    基于体验来讲,唤醒模块是在本地处理的,该模块只需要较小的声学模型和语言模型(只需要区分出有无唤醒词出现),在本地运行耗费不大且能够及时反馈。
    另外使用唤醒词会存在漏报以及误报的体验要求;叫了好几次不响应或者突然蹦出来说句话都不是我们想要的结果。所以一般来讲我们制定的唤醒词不能是常用语句,体验上有需要简短且朗朗上口,所以一个好的唤醒词还是很重要的。还有就是关于唤醒阈值的设定,需要在误报以漏报做出平衡,可以根据一些场景自动调节:晚上调高点,白天调低一些(之前Echo有过半夜鬼叫的bug,就有可能是误报)

    3、通过麦克风阵列解决回声、混响、多信号源干扰等问题。提高语音质量
    在经过VAD处理后的声音需要用麦列算法解决回声、混响问题;然后在语音唤醒被激活后,我们对语音质量的要求更高,麦列算法进行声源定位以及波束形成;

    目前麦克风有单麦、双麦、多麦等,麦克风数量多的效果较好,比价流行的是6+1结构;考虑麦克风阵列要平衡硬件便捷性以及性能、成本等要素;
    通过麦克风解决远场拾音仅仅是一方面,另一方面需要在声学模型上结合使用场景训练从而做到更好得识别

    2、将声音转化为文字

    语音处理的过程因为需要大规模的模型参与,一般在云端完成
    1、传统方式


    传统训练方式

    1、先将音频文件编码为数字信号,此时数字信号并不带任何意义,所以需要将数字信号进行一小段一小段信号截取,(因为人类说话最小单位是音素,这一小段信号通常小于一节音素,并且在这小段内是稳定的波,具有分辨的意义)生成声音的特征向量;
    2、再将特征向量经过声学模型处理得到一连串识别出的音素,这些是声学模型根据人类发音判断出的最有可能的一些字词,这时候的识别结果无法识别是哪个字/词,特别是同音字会有很多可能;
    3、将声学模型的结果交于语言模型,语言模型是了解人话的规律;从而根据人话规律判断出最有可能的结果;这时候语音识别的过程就结束了

    2、端到端方式


    end-end

    由于深度学习的发展,模型已经能够自动提取特征;不用我们再手动设置 音素 等中间过程
    端到端模型将会越来越普及,但是需要建立在大量语料上的。只要数据足够,端到端模型的效果会比传统的好,因为中间没有流程损失

    指标

    ASR的指标

    WER(词错误率):为了使识别出来的词序列和标准的词序列之间保持一致,需要进行替换、删除或者插入某些词,这些插入、替换或删除的词的总个数,除以标准的词序列中词的总个数的百分比


    指标

    语音唤醒的指标

    唤醒率:叫AI的时候,ta成功被唤醒的比率。
    误唤醒率:没叫AI的时候,ta自己跳出来讲话的比率
    唤醒响应时间:用户发出唤醒指令后的响应时间

    语音识别的应用以及问题

    应用

    1、沟通
    语音在信息表达方面呈现表达快速但是读取较慢的问题,特别是一大段语音发过来会让人失去听的兴趣;所以可以通过ASR来转化为文字,提高双方的用户体验
    2、会议记录
    一些会议上可以用来作为会议记录,帮助与会者提高会议效率
    3、智能硬件/语音搜索/智能客服产品的头部流程
    智能音箱等产品人机交互的第一步就是先进行语音转文字的过程
    4、教育测评
    声学系统与语言模型拎出来稍微加以修改可以作为评分系统应用于教育行业;帮助教师实施教育标准
    5、客服记录
    客服是和用户最近的人群,将语音通话过程转为文字记录下来,有助于客服部门评估业务服务水平,更有利于业务部门通过用户沟通的原始信息分析并理解用户需求

    面临的挑战

    目前的语音识别率达到98%,这个实际指的是安静条件下的近场识别,非安静场景识别率可能90%左右,而且在复杂场景下会遇到各种问题

    环境与网络问题

    在车载环境中,由于不可避免的噪音(轮胎)会造成语音信号识别困难;需要从硬件以及软件上进行降噪处理
    通过麦克风、芯片算法等设计,而且声学模型的训练本身必须需要考虑噪音环境;

    另外像汽车以及翻译机都是移动的,网络也会波动。所以一些基本的功能需要可以离线进行识别,需要本地搭载芯片以及识别模型

    中英文夹杂

    通常来讲,生活中很多时候会使用一些英文词汇(ipad等,某个店名),比较极端的是一些留学人员不由自主得会中英文夹杂;处理这种情况时,我们可以把英语单词都当成汉语舶来词,就是汉语的一部分,至于书写成什么记号,中文也好英文也罢,都不是关键问题。
    训练时作为混合语言去训练,声学模型、语言模型、词典都是混合模型


    中英混合识别

    这样模型就能准确识别出中英文汉字;今年的百度AI大会上可以看到智能音箱已经能够很好得识别中英混杂

    方言

    我国是一个幅员辽阔的国家,各个地区的语言发音都会有所偏差,特别是南方地区,村西和村东可能互相听不懂;再加上方言的语料难以获得,方言一直也是一个棘手的点;

    上文解决中英文夹杂使用混合模型,那方言能这样去训练吗? 实际上效果会不好的,因为当各种发音加进去之后,会极大影响模型对字词概率的判断,种类越多效果可能越差。本质上无法清晰定义训练任务了,当一个字有多种不搭嘎的叫法,就会难以建模;所以方言都是当做独立模型去训练(比如讯飞输入法会让你选择识别哪种语言)


    方言模型

    专业领域

    由于人类社会知识非常复杂,可能所有语料都会训练一片;当语音系统应用在各个场景时,系统的语言模型的偏向可能不同;通常服务商也会提供定制的功能,客户拿到的可能是一个大规模训练后的模型,自己再提供一些个性化的训练数据,从而提高在某个专业领域词条的识别性能(科研、医学等)

    纠错

    只是将用户的语言记录下来也许不错,但是更好地体验是将用户话语中的一些不必要的词汇去除。比如:【今天去 啊不 明天晚上去商城买衣服】 还有一些会议场景上很有可能会出现用户纠正的行为。 另外,实际应用场景中多音字的问题(语言模型也认为是通顺的)总是避免不了的,还需要结合用户场景计算概率从而做出更有可能的判断;

    这些更好的体验就必须借助后续的自然语言理解、知识图谱等技术实现;

    相关文章

      网友评论

        本文标题:NLP业务应用系列-语音识别(2)

        本文链接:https://www.haomeiwen.com/subject/kwyykctx.html