system: [SYSTEM]

user: 5. 实验设置与结果分析 5.1. 实验数据准备 为验证所提西班牙语字—音转换模型的性能，本文以自建的西班牙语发音词典语料为实验数据进行了一系列验证实验。具体的，本文首先以自建的西班牙词库作为训练语料，基于word2vec来实现实现西班牙字符嵌入向量的训练。该词库共包含西班牙单词9万余条，单词的长度从1到20分布不均。构成西班牙语单词的字符种类有27种，其中五个元音字符{a， e， i， o， u}在作为重音元音发音时其书写形式为{á， é， í， ó， ú}，因此如果从书写形式上来区分的话，构成西班牙语单词的字符种类实际上有32种。训练字符嵌入所用词库的详细统计信息如表1所示。 Table 1 Spanish thesaurus statistics for character embedding trainin 0 ≤ L ≤ 4 5 ≤ L ≤ 8 9 ≤ L ≤ 12 13 ≤ L ≤ 16 17 ≤ L ≤ 20 单词长度分布 2865 41216 39804 6798 357 所占比例 3.1% 45.3% 43.7% 7.5% 0.4% 字符集 á， é， í， ó， ú， a， e， i， o， u， l， m， n， p， s， t， c， q， d， b， v， r， z， f， j， g， ñ， h， y， x， k， w 表1. 用于字符嵌入训练的西班牙语词库统计信息 在完成字符的嵌入表示训练之后，本文在自建的西班牙语发音词典语料上进行字—音转换模型的训练与性能验证。该语料共包含了91，040条西班牙语单词，每个单词都进行了音素序列的人工标注，其中共设置了44个音素。因为存在部分不同音素对应同一个音标，以及同一个音素有不同音标的情况，所以总共有25个不同的音素标记符号。由于本文研究设置了新的音素类别集合，因此该语料中单词的长度全部大于或等于音素序列的长度，具体的统计信息如表2所示。 Table 2 Statistics of pronunciation dictionary corpu 词长小于音标长 词长等于音标长 词长大于音标长 单词与音标长度 0 79，200 11，840 所占比例 0% 87.0% 13.0% 音素标记集 a， É>， i， o， w， u， l， m， n， p， s， t， k， d， b， r， É3/4， f， x， g， É2， j， ks， ÊŽ， Ê§ 表2. 发音词典语料的统计信息 我们将发音词典语料按照70%、10%和20%的比例进行训练集、验证集和测试集的划分，其中训练集用于模型参数的调整与优化，而验证集则用于记录模型的训练效果，防止产生过拟合，测试集则用于评估模型的标注性能。 5.2. 模型的构建与训练 依据本文提出的解决方案，本文采用python 3.5 + Tensorflow 1.4来构建西班牙语字–音转换序列标注模型，并在自建的西班牙语数据集上完成模型的训练与测试。具体来讲，本文分别基于word2vec中的CBOW模型和skip-gram模型来实现字符嵌入向量的训练，基于Tensorflow来构建基于RNN + CTC的字音转换模型。在训练过程中，采用网络搜索的方式，通过设置多组模型结构并行独立实验来实现模型结构的探索与验证，依据最终的标注效果来科学的选择嵌入向量的维度、神经网络隐含层的节点个数、隐含层的节点类型等，并基于充分、全面的交叉验证实验来保证结果的可靠性和稳定性。需要强调的是，对于CTC输出层的设置，本文依据常用的西班牙音素集共设置26个节点，分别对应25个音素类别和一个空类别。 模型在训练集上训练时的目标函数如4.3节公式8所示。训练方法采用基于Minibatch的随机梯度下降算法，Minibatch大小设置为512，即一次从训练集中随机选取512个单词作为输入，逐个Minibathch的进行模型训练。每个Minibatch计算一次目标函数，进行一次梯度更新。另外，在训练过程中我们还对单词进行填充处理，即将同一Mini-batch内的单词以补0方式填充到统一的长度，以便于利用并行计算来提升模型训练速度。当训练集中每个Minibatch的数据都逐个完成训练后，便在验证集上进行一次模型标注效果的验证。在验证集上的标注效果采用单词的标注精确率作为评估指标，即正确标注的单词数占验证集总体单词数的比例。该指标的计算相对较容易，能够明确反映模型对西班牙单词发音的标注效果。当验证集上的标注准确率不再上升或是开始下降时，即停止模型的训练。同时将模型在测试集上进行单词标音测试，最后，以测试集上获得最高标音精确率的模型作为最终模型。 需要说明的是，本文所有实验均在同一台安装Linux系统的高性能服务器上运行，该服务器内置8颗至强CPU，64G DDR内存，同时配置4块NVIDIA的Tesla K80 GPU卡来进行训练加速。 5.3. 实验结果分析 循环神经网络(Recurrent Neural Network， RNN)是一种特殊的深层神经网络，其显著特点就是隐含层自连接结构使其具有天然的时序特征，因此能够有效建模序列数据的上下文依赖关系 [ 5 ] [ 6 ]。RNN的结构特点可如图7所示。 在参考一些经典神经网络模型配置的基础之上，我们对模型的各种结构参数都进行了不低于10次的训练和测试，并记录了数次实验的平均值作为最终的衡量指标，以在测试集上标音性能最好的网络结构作为最终的网络模型。最终，在多次实验之后，我们确定了最优的字音转换模型结构，具体如表3所示。 Table 3 Specific parameters of the optimal grapheme-to-phoneme conversion mode 层数 结构参数 第一层(输入层) 10个节点，表示10维字符嵌入向量，采用CBOW模型训练获得 第二层(隐含层) 双向循环神经网络，各128个GRU单元 第三层(输出层) Softmax分类层，设置26个输出节点 表3. 最优字音转换模型的具体参数 采用表3所示的模型结构，在经过多轮训练之后，该模型在测试语料上取到了最高的标音准确率，证明了本文所提模型的可行性。同时，为了衡量本文所提模型的标音性能处于何种水平，我们在实验中还构建了几个目前常用的字音转换模型作为对比。这些模型与我们设计的模型都是在同样的硬件条件下、并且采用相同的语料资源完成了训练与测试。我们同样记录了各个模型最优的标音准确率(标音正确的单词占测试集单词的比例)，具体结果如表4所示。 Table 4 Comparison of transcription results of different grapheme-to-phoneme conversion model 模型 辅助处理 测试集标音准确率 HMM-GMM 字素切分并与音素对齐，数据平滑 81.24% CRF 字素切分并与音素对齐，特征模板 88.66% RNN(tanh) 字素切分并与音素对齐 87.54% LSTM + CTC 端到端 88.63% GRU + CTC(ours) 端到端 91.88% 表4. 不同字音转换模型标音结果的对比 从表中可以看出，本文所提出的模型在西班牙语字–音转换任务上取得了最优的标音结果，证明了本文所提方法的优越性。同时需要强调的是，除了标音准确率最高之外，基于RNN + CTC的方式可以实现端到端的训练与解码，即模型的输入是构成单词的原始字符序列，而输出直接就是对应的音素序列，中间不再需要进行单词字素的切分以及与音素间的对齐操作，不仅大大简化了训练数据的构建复杂度，还可以直接实现较长字符序列到较短音素序列的自动转换，避免标音过程中额外的预处理或是后处理操作。这是HMM、CRF以及普通RNN无法实现的功能。同时与基于统计方法的HMM、CRF模型相比，神经网络能够自动的提取字符序列的特征，从而避免了不同语种特征工程的制约，让不具备西班牙语背景的计算机从业人员专注于发音词典模型的构建，而让西班牙语专业人员致力于高质量词库的建设，从而实现更优化的人力资源配置。