ASR 语言模型在线训练
优质
小牛编辑
140浏览
2023-12-01
ASR语言模型在线训练
分词
文本清洗
语言模型目前不支持英文,阿拉伯数字,标点符号以及特殊字符,所以需要将训练文本中英文剔除,阿拉伯数字转换成相应的中文表示,删除标点符号和特殊字符。
文本分词
一般先用结巴或清华分词器分词,再人工矫正,分词的原则是它需要具有独立的实体意义。比如,刘德华, 张学友,这些人名;还有一些地名,张家港,黑龙江等;专有名词,中国,迪士尼等.对于我们需要训练的文本,要保证分词准确。对于一些无实体意义的指令,尽量一个词能够包含两到三个字。比如:
- 一一八四: 一一 八四
- 幺三九一二三四五六七九:幺三九 一二 三四 五六 七九
语料优化
负样本
为了压制相近的读音带来的误识别,我们需要在训练样本中增加负样本。目前来说,可以在负样本中增加两种类型:
- 以字为单位分词
这每一条句子,负样本尽量不要有与正样本中每一条有相近读音的句子,以下负样本不要出现:- 正样本:四十 负样本:私 事;四 是;似 是
- 正样本:张宇 负样本: 章 鱼;张 雨
- 以词为单位
可以为为每一条指令设计两到四个负样本,防止误识别:- 正样本:打开 电视 负样本: 打开 爸爸;打开 空气;打开 笨样 等
- 正样本:今天 天气 怎么样 负样本:今天 天气 你好吗;今天 天气 芭芭拉;今天 天气 培训班;今天 逆势 看电视
总的来说负样本中修改的词和指令中对应的词不要有相近的读音。
难识别指令重复
从识别率的方面来看,对于特别难识别的指令,训练文本中可以多重复几次,重新训练,重复次数,依据测试结果有无改善,如果一直改善不了,那就是声学模型的问题,语言模型解决不了。
控制大小
从实际经验来看,对于千条以内的指令,增加负样本的量达到最终TLG.fst大小在1.5M~2.5M为佳。
在线训练API
API
POST /api/v1/asr
参数列表
参数 | 含义 | 备注 |
---|---|---|
corpus | zip格式的语料文件,裸包含一个名为corpus.txt的文本文件,zip文件名无要求,但内含的文本文件必须名为corpus.txt | corpus.txt需要手动进行分词,点击下载语料示例文件 |
返回值
参数 | 含义 | 备注 |
---|---|---|
asr.zip | 训练结果压缩文件 | 包含words.txt-词典文件,tlg.fst-模型文件 |
调用示例
首先利用上述分词方法生成分词文件corpus.txt(分词文件名一定要对),然后直接将corpus.txt(压缩包内不要包含目录)压缩成corpus.zip(压缩文件名无要求,这里以corpus.zip为例),也可从这里下载示例压缩包,然后调用如下命令:
curl -sSL -X POST https://ai.nationalchip.com/api/v1/asr -F "corpus=@corpus.zip" -v -o asr.zip