找回密码
 立即注册
搜索

从最简单的yesno模型入门kaldi语音识别(1.数据处理阶段)

kaldi官网工具大全http://kaldi-asr.org/doc/tools.html





执行 run.sh入口程序
# 数据处理阶段
一. 训练和测试数据预处理阶段
先讲解一下前20行代码,3,4两行代码是为了分割任务并行加速计算用的,暂时不需要研究
6-11行这表示如果没有这个yesno的训练数据文件就去openslr仓库下载并解压
13-14行设置变量名称主要为了生成训练目录和测试目录
16行 删除之前生成的旧数据文件夹 data exp mfcc三个文件夹
第20行是我们今天需要学习的数据处理脚本



执行local/prepare_data.sh waves_yesno
该脚本很短,下面分解开来一步一步讲解





1. 是把waves_yeno目录下的文件名全部保存到waves_all.list中.
ls -1 $waves_dir > data/local/waves_all.list2.使用perl脚本create_yesno_waves_test_train.pl把样本集一半数据共30个用作训练文件名列表存在 data/local/waves.train,另一半共30个识别测试文件名列表存到data/local/waves.test。
3.create_yesno_wav_scp.pl脚本把waves.test文件进行标注存到data/local/test_yesno_wav.scp,格式:
1_0_0_0_0_0_0_0 waves_yesno/1_0_0_0_0_0_0_0.wav1_0_0_0_0_0_0_1 waves_yesno/1_0_0_0_0_0_0_1.wav4.create_yesno_wav_scp.pl脚本把waves.train进行标注存到data/local/train_yesno_wav.scp,格式:
0_0_0_0_1_1_1_1 waves_yesno/0_0_0_0_1_1_1_1.wav0_0_0_1_0_0_0_1 waves_yesno/0_0_0_1_0_0_0_1.wav5.create_yesno_txt.pl脚本把waves.test进行标注到data/local/test_yesno.txt,格式:
1_0_0_0_0_0_0_0 YES NO NO NO NO NO NO NO1_0_0_0_0_0_0_1 YES NO NO NO NO NO NO YES6.create_yesno_txt.pl脚本把waves.train进行标注到data/local/train_yesno.txt,格式:
0_0_0_0_1_1_1_1 NO NO NO NO YES YES YES YES0_0_0_1_0_0_0_1 NO NO NO YES NO NO NO YES7. data/local 目录创建一个文件lm_tg.arpa内容:
\data\ngram 1=4\1-grams:-1 NO-1 YES-99 <s>-1 </s>\end\

8. 从WSJ样本复制阶段


8.1.创建目录data/train_yesno 和data/test_yesno
8.2. 把data/local/test_yesno_wav.scp 复制到data/test_yesno/wav.scp
把data/local/train_yesno_wav.scp 复制到data/train_yesno/wav.scp
8.3.把data/local/train_yesno.txt 复制到 data/train_yesno/text
把data/local/test_yesno .txt 复制到 data/test_yesno/text
8.4.通过awk文本处理工具处理text文本 输出到 data/train_yesno/utt2spk文件 和 data/test_yesno/utt2spk文件,这个两个文件分别是发音和人对应关系,以及人和其发音 id的对应关系.由于只有一个人的发音,所以这里都用global来表示发音.格式:
1_0_0_0_0_0_0_0 global1_0_0_0_0_0_0_1 global1_0_0_0_0_0_1_1 global...8.5.通过 utils/utt2spk_to_spk2utt.pl 脚本 把 utt2spk 转换成spk2utt 格式:
global 1_0_0_0_0_0_0_0 1_0_0_0_0_0_0_1 1_0_0_0_0_0_1_1 1_0_0_0_1_0_0_1 1_0_0_1_0_1_1_1 1_0_1_0_1_0_0_1 1_0_1_1_0_1_1_1 1_0_1_1_1_0_1_0 1_0_1_1_1_1_0_1 1_1_0_0_0_0_0_1 1_1_0_0_0_1_1_1 1_1_0_0_1_0_1_0 1_1_0_0_1_0_1_1 1_1_0_0_1_1_1_0 1_1_0_1_0_1_0_0 1_1_0_1_0_1_1_0 1_1_0_1_1_0_0_1 1_1_0_1_1_0_1_1 1_1_0_1_1_1_1_0 1_1_1_0_0_0_0_1 1_1_1_0_0_1_0_1 1_1_1_0_0_1_1_1 1_1_1_0_1_0_1_0 1_1_1_0_1_0_1_1 1_1_1_1_0_0_1_0 1_1_1_1_0_1_0_0 1_1_1_1_1_0_0_0 1_1_1_1_1_1_0_0 1_1_1_1_1_1_1_1此时目录结构如下:
data├───local<span style="color:#00000a"><code>│ ├───</code><code>waves.train</code><code>│ ├───</code><code>waves.test</code><code>│ ├───</code><code>test_yesno_wav.scp</code><code>│ ├───</code><code>train_yesno_wav.scp</code></span>│ ├───test_yesno.txt
│ ├───test_yesno.txt
<span style="color:#00000a"><code>│ ├───</code><code>lm_tg.arpa</code><code>│ └───</code><code>waves_all.list </code><code>├───</code><code>train_yesno</code><code>│ ├───</code><code>text</code><code>│ ├───</code><code>utt2spk</code><code>│ ├───</code><code>spk2utt</code><code>│ └───</code><code>wav.scp</code><code>├───</code><code>test_yesno</code><code>│ ├───</code><code>text</code><code>│ ├───</code><code>utt2spk</code><code>│ ├───</code><code>spk2utt</code><code>│ └───</code><code>wav.scp </code></span>

————————————————
至此数据处理脚本讲解完毕,后面会继续更新,敬请期待

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

蛀心虫1号 2023-6-28 13:14:09 来自手机 显示全部楼层
报告!别开枪,我就是路过来看看的。。。
回复

使用道具 举报

没有去办棕 2023-6-28 18:48:28 显示全部楼层
报告!别开枪,我就是路过来看看的。。。
回复

使用道具 举报

翔fei 2023-6-29 07:08:06 显示全部楼层
前排支持下
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies