输入:text(所有录音的分词文本信息- 如果是自己的数据没有人工分词可能要提前jieba等工具分词一下)
输出:data/local/dict文件夹(含extra_questions.txt、lexicon.txt、silence_phones.txt、nonsilence_phones.txt、optional_silence.txt等文件)
代码语言:javascript复制local/prepare_dict.sh || exit 1;
流程:
代码语言:javascript复制1.处理自身数据集
- 获取数据集中所有单词【从text中获取】-> 生成words.txt
- 把整个数据集的单词分成ch和en两个词典 -> 生成words-{en,ch}.txt
2.生成【英文发音字典】,通过CMU字典生成lexicon-en.txt(格式:数据集中的英文单词 及其对应的拼音发音)
- Downloading CMU dictionary
- 格式化cmu字典(把字典中重音和发音标记去除)
- 生成words-en-oov.txt (数据集中有,字典中没有的单词)
- 生成lexicon-en-iv.txt (数据集能在字典中取得的单词,及其对应的cmu音素)
- 下载安装g2p_model(单词到音素模型,用于转换oov)
- 生成lexicon-en-oov.txt (使用g2p_model生成,oov 及其对应的cmu因素 *由于words-en-oov中含有【VISA卡】这种中英文混用的单词会导致转换失败,会少21条数据,不知道对后面会不会有影响*)
- 生成lexicon-en-phn.txt (merge in-vocab and oov lexicon)
- 将cmu和拼音中无法转换的cmu音素替换成可以转换的因素