1.1 ASR的⼯作流程
1.2 语⾳识别数据处理技术
1.2.1 信号预处理
信号预处理包括:采样与滤波、预加重、端点检测、分帧、加窗、降噪采样与滤波:将模拟信号离散化成数字信号
预加重:加重语⾳的⾼频部分,去除⼝唇辐射的影响,增加语⾳的⾼频分辨率端点检测:从⾳频流⾥识别和消除长时间的静⾳段,减少环境对信号的⼲扰分帧:
1.2.2 特征提取与特征补偿
(1)特征提取
常⽤特征:MFCC、Fbank、pitch时频转换
共振峰/包络-MFCC:语⾳信号中能量集中的区域;反映⾳⾊
基⾳周期/精细结构-pitch:声带振动频率(基频)的振动周期;反映⾳⾼
FBank特征 :
三⾓滤波:模仿⼈⽿特性;(低频分辨率⾼,⾼频分辨率低);⼀般取40个
特征压缩
离散余弦变换:13维的特征向量
MFCC特征:⼀阶、⼆阶差分;CMVN归⼀化
⼀段语⾳信号滑动窗⼝
语谱图
1.2.3 解码
声学模型(AM)
给定⾳素、词语,它的发⾳会是什么样语⾔模型(LM)
验证该⽂本是否是⾃然流畅的⽂本词典(Lexicon)规定字词的发⾳规则解码器(Decoder)
通过训练好的模型对给定语⾳进⾏解码常⽤的解码器:维特⽐算法(Veterbi)
维特⽐算法:(1)寻找最优路径
(2)动态规划算法(每⼀步都选择到达该状态的所有路径中的概率最⼤值)
词图(lattice)
(1)得分最靠前的前N条候选路径
(2)⽤更好的语⾔模型对这些句⼦重新打分,选出最优解
1.3 语⾳识别技术的应⽤
语⾳识别作为⼀种基础层感知类技术,既可以作为核⼼技术直接应⽤于终端产品,也可以仅作为⼀种感知类辅助技术集成于语⾳助⼿、车载系统、智慧医疗、智慧等场景的产品中。
2、Kaldi⼯具
2.1 Kaldi的简介
Kaldi是当前最流⾏的开源语⾳识别⼯具(Toolkit),它使⽤WFST来实现解码算法。Kaldi的主要代码是C++编写,在此之上使⽤bash和python脚本做了⼀些⼯具。
语⾳识别,⼤体可分为“传统”识别⽅式与“端到端”识别⽅式,其主要差异就体现在声学模型上。
“传统”⽅式的声学模型⼀般采⽤隐马尔可夫模型(HMM),⽽“端到端”⽅式⼀般采⽤深度神经⽹络(DNN)
Kaldi架构如所⽰,最上⾯是外部的⼯具,包括⽤于线性代数库BLAS/LAPACK和我们前⾯介绍过的OpenFst。中间是Kaldi的库,包括HMM和GMM等代码,下⾯是编译出来的可执⾏程序,最下⾯则是⼀下脚本,⽤于实现语⾳识别的不同步骤(⽐如特征提取,⽐如训练单因⼦模型等等)。
对应⼤部分Kaldi的⽤户来说,我们只需要使⽤脚本和配置⽂件就可以完成语⾳识别系统的训练和预测了。源码:
kaldi - main Kaldi directory which contains:
egs – example scripts allowing you to quickly build ASR systems for over 30 popular speech corpora (documentation is attached for each project)以使⽤的数据库的名字命名。在下⼀级⽬录中以s开头的⽂件是语⾳识别,以v开头的是声纹识别,⼀般v1就是使⽤i-vector的⽅法来进⾏声纹识别
misc – additional tools and supplies, not needed for proper Kaldi functionality,src – Kaldi source code,
tools – useful components and external tools,windows – tools for running Kaldi using Windows.
The most important directory for you is obviously egs. Here you will create your own ASR system
kaldi主要⽤脚本来驱动,每个recipe下会有很多脚本。local⽬录下的脚本通常是与这个example相关,不能移植到别的例⼦,通常是数据处理等“⼀次性”的脚本。⽽util下的脚本是通⽤的⼀些⼯具。steps是训练的步骤,最重要的脚本。
3、ASR 模型测试过程
3.1 准备测试集
测试集:测试数据集,由录⾳和录⾳对应的正确⽂本组成。为了知道模型在⽣产上的实际应⽤效果,从⽣产中抽取具有代表性的样本数据,作为考试题,事先标注正确答案,⽤模型转写后的结果与正确答案做对⽐。
举个例⼦:需知道⼩明的数学成绩,需先要抽取部分考点作为试卷,并事先准备参,⽤⼩明计算出来的结果与参对⽐,可知道⼩明在数学⽅⾯的得分。
测试集⼀般不会变化,因为要⽐较把模型训练前后的效果,需要控制变量。可见,正确答案的标注直接决定了⼩明的得分,因此需要遵循严格,固定的规范。
训练集:为了提升模型能⼒,需要将标注的⽂本和录⾳给到模型进⾏训练,这批答案⽂本和录⾳就是训练数据集,简称训练集。还是⼩明为例,需要提前将⼤量五三考卷的正确答案告知⼩明,⼩明进⾏学习找规律,从⽽提升下⼀次考测试集的能⼒。训练集的数据量⽐较⼤,才会有提升效果。(1)⾳频格式的转换(2)标注⽂件编码的转换(3)混合数据集的拆分
双声道分离左右声道⽴体声转换单声道标注⽂件分离
3.2 测试集标注badcase
质量评估标准
3.2.1 常见错误与解决⽅案
常见错误发⾳不清语速过快
发⽣原因⽤户问题⽤户问题
解决⽅案依赖⽤户根据返回的语速检测值,提醒⽤户说话慢⼀点
1. 优化静⾳检测模型
2. 优化静⾳等待时间3. 算法优化
4. 合作:业务收集数据,算法辅助
落实措施⽤户流程控制录⾳截断(头部截断/尾部截断)
静⾳检测
1.算法优化2.合作:业务收集数据,算法辅助重⼝⾳声学模型
收集不同类别重⼝⾳数据,进⾏标注和训练
收集不同类别⽅⾔数据,进⾏标注和训练
合作:业务收集数据,算法训练合作:业务收集数据,算法训练⽅⾔声学模型
噪⾳声学模型
1.根据返回的背景⼈ 声占⽐值和信噪
⽐,提醒⽤户到安1.流程控制静的地⽅说话
2.合作:业务收集数
2.收集噪⾳和静⾳数据,算法训练据,进⾏ASR抗噪训练
3.提升硬件设备的抗噪能⼒
3.硬件提供⽅
远场(回声/混响)声学模型
1.收集远场语⾳数据,进⾏ASR远场模型训练
1.合作:业务收集数据,算法训练2.提升硬件设备收声
能⼒,减少回声混2.硬件提供⽅响等远场效果
专有名词(地名⼈名术语)识别错误转写错误
声学词典
1.收集专有词汇,添合作:业务收集词加到声学词典或热汇,算法训练词
1.收集历史录⾳,进合作:业务收集数⾏语⾔模型优化训据,算法训练练
语⾔模型
3.2.2 ASR系统问题分类
录⾳尾部截断
由于与上游系统交互问题,ASR引擎只收到前半部分录⾳,就被截断。与⽂本中偶尔漏⼀两个字不同,是整个尾部⽚段缺失
录⾳头部截断
由于与下游系统交互问题,ASR引擎只收到后半部分录⾳,录⾳前半部分就被截断。是整个头部⽚段缺失录⾳被TTS播报打断
由于与上游系统交互,ASR检测⽤户开始讲话存在⼀定延迟,导致MRCP接收超时,误认为⽤户不再说话,开始TTS播报,ASR返回结果MRCP未接收。
3.2.3 录⾳质量问题分类
⽆⼈声
既没有噪⾳,也没有⼈声
系统可能超时(3秒),⽤户没有说话,导致拒识
有噪⾳,没有⼈声
1、没有说话,有含背景⼈声(含可辨识的第⼆⼈声)
2、没有说话,有含节奏噪⾳(类似含叮叮咚咚/喇叭声/或是⾳乐等⼲扰噪⾳)3、没有说话,有含风噪(含⼈呼⽓声或是强风的喷麦噪⾳)4、没有说话,有含其他噪⾳(含其他噪⾳)
标注:【纯噪⾳】 听的清楚/听的不清楚 有⼈声1,发⾳不标准
(1)语速较快(说话较快影响标注内容)【说话快】(2)纯⽅⾔【夹杂⽅⾔】
(3)⽅普⼝⾳(⽅⾔⼝⾳较重,⽅普,含吐词不清,说话听不清楚)2、发⾳标准(1)没有噪⾳
-- 语⾳清晰(转译正确)
(语⾳清晰并可以正确标注客户内容(NLP)可能错误)-- 语⾳清晰(转译错误)
(指语⾳清晰,因谐⾳或发⾳影响,导致转译字数或转译⽂本内容不同,且影响NLP语义理解)(2)有噪⾳
-- 有说话,且含背景⼈声(含可辨识的第⼆⼈声)
-- 有说话,且含节奏噪⾳(含叮叮咚咚/喇叭声/或是⾳乐等⼲扰噪⾳)-- 有说话,且含风噪(含⼈呼⽓声或是强风的喷麦噪⾳)-- 有说话,且含其他噪⾳(含其他噪⾳)【含噪⾳】 x 听的清楚/听的不清楚
3.2.4 录⾳质量问题分类汇总
有⽆⼈声⽆⽆
发⾳是否标准N/AN/A
有⽆噪⾳⽆有
录⾳质量分类安静没说话没说话,有含背景⽆⽆⽆⽆有有有有有有有有有
N/AN/AN/AN/A不标准不标准不标准标准标准标准标准标准标准
有有有有 ⽆⽆有有有有
没说话,有含背景⼈声没说话,有含节奏噪⾳没说话,有含风噪没说话,有含其他噪⾳语速快纯⽅⾔⽅普⼝⾳语⾳清晰(转译正确)语⾳清晰(转译错误)有说话,且含背景⼈声有说话,且含节奏噪⾳有说话,且含风噪有说话,且含其他噪⾳4、语⾳识别(ASR)评估指标
词错误率(Word Error Rate,WER)、字错误率(Character Error Rate,CER)、⾳素错误率(Phone Error Rate,PER)、句错误率(Sentence Error Rate,SER)
替换错误(substitutions)、删除错误(Deletions)、插⼊错误(Insertions)(1)词错误率(Word Error Rate,WER)
-将标准答案与识别结果对齐
- ⽤插⼊、删除、替换错误的总数除以 标准答案的长度
注意:因为有插⼊词,所以WER有可能⼤于100%!
例:如下图所⽰,REF为标准的词序列,第⼆⾏为识别出来的词序列
⽬标词序列有13个词,增加词3个,删除词1个,替换词6个,则WER:
SER:句⼦中如果有⼀个词识别错误,那么这个句⼦被认为识别错误,句⼦识别错误的的个数,除以总的句⼦个数即为SER。计算公式:
正确答案总字数N
Mc准确率/字正确率Corr=Mc/ND
删除错误率Del=D/N
I
插⼊错误率Ins = I/N
S
替换错误率Sub = S/N
S+I+D句错误率SER
句⼦识别错误的个数/总的句⼦个数
词错误率WER =(S+I+D)/N
命中的字数删除错误字数
插⼊错误字数
替换错误字数
总错字个数
5、测试结果的反馈
6、语⾳识别引擎框架
2.1 Hidden Markov Toolkit
Hidden Markov Toolkit由剑桥⼤学开发的早期经典的语⾳识别⼯具包,最早开发于19年,使⽤C语⾔编写,代码和功能⾮常稳定,集成了最主流的语⾳识别技术,具有相对完善的⽂档⼿册HTK Book。缺点:更新相对缓慢,缺乏易⽤的脚本系统,不⽅便上⼿2.2 Microsoft Cognitive Toolkit
微软公司开发的⼯具箱,开源于2015年, 强⼤的神经⽹络功能,定位于多种问题的组合,⽐如机器翻译+语⾳识别,是⼯具包中对Windows平台⽀持最好的。
缺点:不是完全专业的语⾳识别⼯具,需要配合Kaldi等⼯具使⽤, 在持续的优化和更新中2.3 CMU Sphinx
CMU Sphinx由卡内基梅隆⼤学开发,在Github和SourceForge平台同步更新,⾄今也有20多年的历史了, 有C和Java两个版本,⽂档简单易读,贴近实践操作,适合做开发。
缺点:在Github上只有⼀个管理员维护,其他杂项处理程序(如pitch提取)没有kaldi丰富。2.4 KAIDI
有全套的语⾳识别⼯具,由Dan Povey博⼠和捷克的BUT⼤合开发,最早发布于2011年,底层代码使⽤C++编写,接⼝采⽤shell和python,覆盖了统计模型和深度学习⽅法,灵活代码,易于扩展,开发者更为活跃。
缺点:由于贡献者⽐较多,所以会有不稳定或有问题的代码更新。
7、⼈机交互的痛点
语⾳作为⽬前⼈机交互的主要⽅式,⼤家如果使⽤过,应该都能举出⼀些例⼦。⽐如说话要靠近,发⾳要标准,环境要安静,不能持续对话,不能打断等。
不只是语⾳,包括图像、障碍物检测等技术,都会遇到这样的问题,⽐如⼈脸的识别,对光线、⾓度、距离都有⼀定的要求。
归结为⼀点就是,当前⼈机交互在复杂环境的⾃适应性⽅⾯,还有很多问题需要解决。这还只是感知层⾯,另外还包括认知层⾯,AI⽬前还不如我们想象的这么聪明,⽬前不能完全⾃主学习,仍然需要⼈的介⼊,⽐如知识库的导⼊,机器⾏为的纠正等,都需要⼈的参与。
当前的⼈机交互产品,在真正⾯对⽤户时,在⾯对复杂环境时,鲁棒性还不够好。今天的分享,我们⼀起探讨如何解决这些问题,不管是通过算法,还是⼯程,抑或产品,都是我们可以选择的途径。
以前的语⾳交互产品,包括讯飞在内,⼤家提供的都是单点的能⼒,⽐如语⾳合成、语⾳唤醒、语⾳识别、语义理解,另外还有⼈脸识别、声纹识别等。⼤家拿到这么多产品和能⼒,需要花很⼤的⼯作量,去开发⼈机交互功能。AIUI交互解决⽅案:
AIUI是把麦克风阵列、前端声学处理、语⾳唤醒、端点检测、语⾳识别、语义理解、语⾳合成等技术在整个交互链上进⾏深度融合的系统。
8、开源语⾳语料库
3.1 LibriSpeech
当前衡量语⾳识别技术的最权威主流的开源数据集1000⼩时英语有声读物
Librispeech: An ASR corpus based on public domain audio books3.2 ⽜津⼤学:VoxCeleb
VoxCeleb2: Deep Speaker Recognition 2018 VoxCeleb3.3 清华⼤学:Thchs-30
时长30多⼩时,16kHz,16bits;安静室内,单麦克风;设计⽬的:
1 - 增⼴863数据集(2001年,TCMSD)2
3 - 提供语⾳识别基准实验
THCHS-30 : A Free Chinese Speech Corpus 2015 THCHS-303.4 数据堂:aidatatang_1505zh时长1505⼩时,16kHz,16bits安静室内或低噪室外,⼿机设备采集区域覆盖全国34个省级⾏政区域参与录⾳⼈数达08⼈录⾳内容超30万条⼝语化句⼦标注准确率超过98%
数据堂1505⼩时中⽂普通话数据集3.5 数据堂:aidatatang_200zh时长200⼩时,16kHz,16bits安静室内或低噪室外,⼿机设备600位来⾃不同地区的说话⼈标注准确率超过98%
训练集:验证集:测试集 = 7:1:2
3.6 其他
AISHELL-1: An Open-Source Mandarin Speech Corpus and A Speech Recognition BaselineCommonVoice数据集 Primewords
9、参考⽂献
语⾳识别的痛点在哪,从交互到精准识别如何做?
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务