PaddleSpeech简介

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、语音识别

     语音识别技术是AI技术中非常基础的一部分,我前段时间研究了paddlespeech,下面介绍下这个技术的基础架构。

1.1 技术架构

image.png

Fig.1 The Arcitecture of deepspeech2 online model

deepspeech2离线模型的架构和在线模型的架构基本上是一致的,不同的是离线模型架构是单向的rnn层,而在线的是双向rnn层,并且没有使用fc层。

1.2 模型说明

deepspeech2在线模型主要由下面三大模块组成:

l Data Preparation

l Encoder

l Decoder

1.2.1 Data Preparation

(1)字典

这里面中英文是不一样的,英文字典由26个英文字母、引号、、space和组成。表示CTC中的blank标签,表示未知字符,表示字符的结束。对普通话而言,汉字字符来自于训练集中统计的字符,并且上面的几个特殊字符也包含在内。

(2)CMVN

这部分其实就是数据处理,用于计算特征的mean和std,计算完成以后,用于对特征进行归一化等操作。

1.2.2 Encoder

Encoder主要由两个2D卷积下采样层和几个堆叠的单向rnn层组成,2D卷积下采样提取来自于原始音频的特征并同时减少特征的长度,之后进入堆叠的rnn层,rnn层主要是LSTM、GRU等组成,在rnn后,又加入了FC层。

1.2.3 Decoder

Decoder主要用于解码出语音对应的字符,为了得到每一帧字符的可能性,编码器输出的每一帧特征进入一个投影层,投影层输出的维度和字典大小一样,然后使用softmax把它转为字符的可能性,推理的时候,每一帧字符可能性输入CTC解码器即可得到结果。

1.3 模型优势

模型的选择是一个很有挑战性的工作,因为模型直接关系到最终应用的可靠性、易用性,模型最终封装为PaddleSpeech用于语音识别主要是考虑到下面几个方面。

l 模型开源,利于产品长期发展

l 易用性,方便产品的个性化需求和二次开发

l 高质量的技术社区,可以不断优化代码

l 对标SOTA,使用了高速、轻量级模型和前沿技术

上面几个基本上是模型选择的前置条件,对于开源模型而言,不用担心某些部分因为收费而中止项目,便于长期应用和优化,并且知名的开源项目的commiter经验丰富,提供的源代码质量很高,不会经常出一些低级的bug,当然,最后一条也很重要,本人使用paddle框架多年,本身也是paddle子项目的commiter,对项目中每个技术细节都很熟悉,后期个性化定制和bug的修改都有足够的能力去处理。

猜你喜欢

转载自juejin.im/post/7124992576754565127
今日推荐