ASR 语言模型在线训练

优质
小牛编辑
120浏览
2023-12-01

ASR语言模型在线训练

分词

文本清洗

语言模型目前不支持英文,阿拉伯数字,标点符号以及特殊字符,所以需要将训练文本中英文剔除,阿拉伯数字转换成相应的中文表示,删除标点符号和特殊字符。

文本分词

一般先用结巴清华分词器分词,再人工矫正,分词的原则是它需要具有独立的实体意义。比如,刘德华, 张学友,这些人名;还有一些地名,张家港,黑龙江等;专有名词,中国,迪士尼等.对于我们需要训练的文本,要保证分词准确。对于一些无实体意义的指令,尽量一个词能够包含两到三个字。比如:

  • 一一八四: 一一 八四
  • 幺三九一二三四五六七九:幺三九 一二 三四 五六 七九

语料优化

负样本

为了压制相近的读音带来的误识别,我们需要在训练样本中增加负样本。目前来说,可以在负样本中增加两种类型:

  • 以字为单位分词
    这每一条句子,负样本尽量不要有与正样本中每一条有相近读音的句子,以下负样本不要出现:
    • 正样本:四十      负样本:私 事;四 是;似 是
    • 正样本:张宇      负样本: 章 鱼;张 雨
  • 以词为单位
    可以为为每一条指令设计两到四个负样本,防止误识别:
    • 正样本:打开 电视      负样本: 打开 爸爸;打开 空气;打开 笨样 等
    • 正样本:今天 天气 怎么样      负样本:今天 天气 你好吗;今天 天气 芭芭拉;今天 天气 培训班;今天 逆势 看电视

总的来说负样本中修改的词和指令中对应的词不要有相近的读音。

难识别指令重复

从识别率的方面来看,对于特别难识别的指令,训练文本中可以多重复几次,重新训练,重复次数,依据测试结果有无改善,如果一直改善不了,那就是声学模型的问题,语言模型解决不了。

控制大小

从实际经验来看,对于千条以内的指令,增加负样本的量达到最终TLG.fst大小在1.5M~2.5M为佳。

在线训练API

API

    POST /api/v1/asr

参数列表

参数含义备注
corpuszip格式的语料文件,裸包含一个名为corpus.txt的文本文件,zip文件名无要求,但内含的文本文件必须名为corpus.txtcorpus.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