具体到其中的「语音识别」,它包括两大模型:在语言模型上我们现在用的是 n-gram 结合 RNN 的模型;识别模型在嵌入式端主要用 CNN 和 DNN 模型,服务器上采用 CLDNN 模型结构。 我们在算法上做的提升包括:一个是前端音频信号处理,我们正在做一套完整的前端模块或者说是算法套件。有了前端的提升之后,我们的识别系统对强噪声干扰、人声干扰就会有更好的鲁棒性。 另一个提升是针对语音识别场景的打磨。因为扫地机器人或者是空调,都有一些本体噪声。我们需要模型能够适应这种本体噪声。此外,就是一些建模方法、模型结构上的改变或者改进,比如 Deep CNN 模型、LSTM 模型以及进一步引入 CTC 准则。
刚才提到的 LSTM 模型、CLDNN 模型,在一些数据集上我们都已经能够验证效果,并将逐步将算法移植到我们自己的芯片上。 语音合成上,我们现在用的是基于 BLSTM 模型的一套参数合成系统,现在也在追踪 WaveNet。 黄畅:现在很多学术界或者业界的新发展,基本上都是基于大规模的服务器、GPU 去完成的。我们在跟踪这些最新的方法同时,非常关注哪些更加适合部署在嵌入式平台,部署在低成本、低功耗的通用处理器以及我们设计的专用芯片架构上。 机器之心:这整套方法的准确率大约在多少呢?有没有测试出一个结果? 牛建伟:根据我们的内部评测结果,在 1000 小时的数据上,CLDNN+CTC 模型相比于之前公司的 DCNN 模型性能大概提升了 15%~20%。 机器之心:在语音合成方面刚才你提到的追踪 WaveNet,能补充说明一下吗? 牛建伟:我们现在已有的是一个相对来说比较主流的技术框架。文本处理前端就是利用 NLP 相关算法、资源进行文本的规整,提取词法和语法信息。后端主要集中在参数合成,这一环节比较容易放到嵌入式的端上面进行,atv,因为它的资源量比较小。这样的话 TTS 系统只需要占用几十 MB 的空间,对计算的要求也可控。后端我们用的就是一个相对主流的 BLSTM 模型,这基本上也是各家都在用的。 至于 WaveNet,它相对来说提高了合成语音的自然度,还有舒适度,j2直播,但是它存在一个问题就是计算量很大。语音是 16K 采样,一秒钟它就要预测 16000 次。当然可以再做加速,但现在加速的效果还没有那么好,现在基本上还是 100 倍的实时率,就是合成一秒钟语音还需要 100 多秒的计算时间。这没办法直接用到产品上面,所以我们还是在追踪 WaveNet 的阶段。 机器之心:吴恩达今年在 NIPS 2016 上提到了端到端学习在语音识别上的应用,我们在这方面有没有深入的研究呢? 牛建伟:吴恩达的「端到端」,在英文识别中是指从一个频率的特征直接建模到音素这一级,中文指 从一个频率特征建模到拼音声母跟韵母这一级。从目前主流的实践上看,这其实就是一个 LSTM 和它的变形,然后加上一个 CTC 目标函数。之所以认为是一个端到端,是因为它省略了以前语音识别三音素表述的概念。 再进一步发展的话就不限于一定是频率的特征,可能就是从原始的波形一直到因素或声韵母,这相当于是更宽的端到端。 黄畅:其实端到端不是一个新的概念,而且端到端也是相对而言的。你现在听到的端到端是相对于过去的工作而言,过去工作是什么呢?是把输入到输出的中间部分分成两三个不同的阶段,然后分别去做优化。现在是把这两三个阶段合在一起,直接做输入到输出的端到端优化。但如果把视线放到端到端之外,其实输入前还有信号处理、特征抽取,输出后还有解码、语言模型、语义理解。所以你现在所看到的端到端如果放到我前面提过的序列中还只是整个语音识别链条中的很小一部分。 端到端的思想其实来源于深度学习的一个核心思想,这只是深度学习方法应用于问题中不断的延展。理想情况就是提供一个或者多个麦克风,不做信号处理就直接读取录音内容,然后通过深度学习模型最终直接输出意义。 机器之心:如果要促进语音识别更加地实用,还要做些什么样的工作呢? (责任编辑:本港台直播) |