Page 147 - 《应用声学》2020年第3期
P. 147
第 39 卷 第 3 期 李鹏等: 基于双向循环神经网络的汉语语音识别 467
间依赖性的数据进行更好的学习,如语音识别、情 前层之间的权重值,W 1 表示上一时刻隐含层到当
感分类、文本分类、机器翻译、词向量的生成等,将 前时刻隐含层之间的权重值,W 2 表示输入层与向
Bi-RNN 展开后,可看出在网络结构中有一部分参 后层之间的权重值,W 3 表示向前层与输出层之间
数是共享的,这在一定程度上大大减少了所训练的 的权重值,W 4 表示下一时刻隐含层到当前时刻隐
神经网络参数个数,同时也带来了另一个优势—— 含层之间的权重值,W 5 表示向后层与输出层之间
Bi-RNN 输入可以是不固定长度的序列。因此基于 的权重值。Bi-RNN 结构向前传播的计算过程如下
传统的 RNN 计算原理,可对结构进行一定程度的 列公式:
改进,推导出Bi-RNN结构。Bi-RNN 可以同时利用
S (t) = f(W 0 X (t) + W 1 S (t−1) + b), (3)
过去与未来时刻的信息,将时间序列信息分为前后
H (t) = f(W 2 X (t) + W 4 H (t+1) + b 1 ), (4)
两个方向,输入到模型里,并构建向前层与向后层用
来保存两个方向的信息,同时输出层需要等待向前 O (t) = g(W 3 S (t) + W 5 H (t) ), (5)
层与向后层完成更新 [16] ,才能进行更新。其模型结 其中,X (t) 表示在 t 时刻的输入,S (t) 表示向前层的
构如图4所示。 第 t 个 RNN 节点的输出,H (t) 表示向后层的第 t 个
Bi-RNN 的整个计算过程与单向循环神经网络 RNN 节点的输出,O (t) 表示在 t 时刻的输出,b 和 b 1
类似,即在单向循环神经网络的基础上增加了一层 表示偏置参数,f 和g 均表示激活函数。相对于传统
方向相反的隐含层。从输入层到输出层的传播过程 的RNN 而言,Bi-RNN 实现了同时利用过去与未来
中,共有6个共享权值。图4中,W 0 表示输入层与向 时刻的信息,因此记忆效果比之前更佳。
ᣥѣࡏ Ā Ā
W W W
W W W W
ՔՑࡏ
W W W
W W W
W W W W
ՔҒࡏ
W W W
ᣥКࡏ Ā Ā
ᫎ Ā t֓ t t⇁ Ā
图 4 双向循环神经网络结构
Fig. 4 The structure of Bi-RNN
试音频类型分别设置 3 个实验;先用 Bi-RNN 模型
2 汉语识别实验
对 3 个训练集分别进行实验,再基于 3 种训练集所
2.1 实验设计 训练出的模型对其他噪声类型的测试集进行实验;
实验 3:为了研究隐含层中神经元数量对实验
本文基于 tensorflow 深度学习平台,使用 Ana-
效果的影响,本实验基于 Bi-RNN模型,通过调整隐
conda 软件中自带的 spyder 编译器进行编译,并进
含层神经元个数,设置8组实验,再使用不带噪声的
行仿真实验。共设置了3组实验:
训练集进行实验。实验流程图如图5所示。
实验 1:为了说明 Bi-RNN 在语音识别上的优
越性,分别用 DNN 模型与 Bi-RNN 模型对不带噪 ᝫጷ
ᝫጷᬷ വیः
声的训练集进行实验,并与文献 [17] 所提出的改进 ᮕܫေ
ˁ
CNN算法进行比较; ྲढ़
ଢԩ
实验 2:为了测验基于某一个环境训练出的模 តᬷ ѿ വरӜᦡ Ѽхѷ គѿፇ౧
型在不同背景噪声的音频识别效果,首先根据训练 图 5 实验流程图
音频类型共设置了 3 组实验,每组实验下再根据测 Fig. 5 Flow chart of experiment