![](https://img.haomeiwen.com/i10447154/c1e01e98cbf6edfc.jpg)
这里是第二部分了,上次说到是参数配置
3、推理参数
推理参数这里才真正涉及到语言模型和解码器,在模型的训练过程中实际上不涉及到解码和把汉字编码的序号映射到文字这个过程的,这些都在推理中,所以现介绍一下后面的参数
(1)lm_path语言模型的路径,这项目目前支持kenlm语言模型,事先准备好语料,目前我训练的这个是(jieba)分词后的,实际上之前模型使用的label是以单个汉字为单位的,这个后面再做一下对比吧,实验效果还未知,对于kenlm有现成的训练工具,不需要自己重造模型(下载好kenlm工具包之后进行编译,得到arpa格式的模型之后压缩成bin格式模型,可以提高预测速度)
bin/build_binary trie -a 22 -q 8 -b 8 xx.arpa xx.bin
bin/build_binary trie -a 22 -q 8 -b 8 xx.arpa xx.klm
(2)cutoff_top_n 和 cutoff_prob是beamDecoder的语音模型参数
beamDecode中会输入我们模型中使用的labels,其中记录了语音数据集中出现的所有汉字,实际上就是json文件数据格式:['我','有','非']等等的,我这里用了大概8000个汉字
cutoff_top_n是说要把这个label文件里面的统计概率(出现概率)最高的前多少个字作作为有效的,出现在预测结果里面,不排除我们的label里面有一些生僻字,实际上并没啥用;cutoff_prob如果等于1就是直接计入所有的汉字,不修剪cut。
(3)lm_workers:lm语言模型具有并行执行的能力,这个不设置也是有默认值的
4、数据格式的变化
上一篇说到了拿到数据集之后首先做的事情就是特征提取了,提取到的这个数据的格式会伴随着后面整个模型的数据处理过程,
特征提取--(161, 8000)
这个特征提取之后的结果就是我们的模型可以处理的了,对维度进行包装就好,所以他执行的位置一般在train dataset生成的过程,每一条csv 清单文件中的数据提供了(短音频文件路径,音频文件语音内容路径),进行特征提取和txt文件读取会的带一个数据集中完整的item,实际上数据集在代码中的体现是一个迭代器,把这一条item用getitem方法返回,比如以下这样
from torch.utils.data import Dataset
class SomeDataset(Dataset):
def __getitem__(self, audio_path, txt_path):
spect = getAudioData(audio_path)
transcript = getTxtData(txt_path)
return spect, transcript
今天先说到这,下一篇继续吧❥(^_-)
网友评论