kaldi语音识别实战pdf_语音识别基础:(四)前端处理

模型的训练由数据驱动,有些数据是必须要准备的。为了让机器学会将语音转换为文本,首先需要给它提供大量的例子,即语音及其对应的文本,这是原始素材,也最能反映学习目的。这些数据的符号化和结构化则需要一些人类先验知识,包括语言知识和数字信号处理相关手段。

4.1       数据准备

1)基本数据

run.sh 中的Bookmark: basic preparation 对Thchs30 原始数据进行了形式上的处理,以适应 Kaldi 的需要。一个常规的有监督语音识别数据集必然包括一一对应的语音和文本, 说话人的信息有好处但非必要。Thchs30 经过初步处理后得到四种文本文件,可以直接打开查看(比如训练集放在data/train 下),这四个文件也是 Kaldi 的必需文件:

  • wav.scp,每条语音的ID及其存储路径;

  • text,每条语音的ID及其对应文本;

  • utt2spk,每条语音的ID及其说话人ID;

  • spk2utt,每个说话人的ID及其所说语音的所有ID,使用 utils/spk2utt_to_utt2spk.pl或utils/utt2spk_to_spk2utt.pl 可实现spk2utt和utt2spk的相关转换。

对于不同数据源或任务,可能需要另外准备一些文件,比如 segments 文件标记每个语音片段属于某条语音的哪一部分,文件格式形如“”,时间以秒计,extract-segments读取此文件后对音频进行批量剪切并保存为 Kaldi 支持的格式(sox也可逐条切割音频);spk2gender 文件标明每个说话人的性别,用于性别识别;utt2lang 文件标明每条语音 ID 对应的语种 ID,用于语种识别。由于不同的数据集有着不同的编排,并没有统一的工具提取出以上文件。当根据某个数据集自行生成以上类别的文件并用sort排序后,可以使用utils/validate_data_dir.sh校验是否满足Kaldi需求,并使用utils/fix_data_dir.sh进行修复。根据数据校验和修复脚本也可侧面了解 Kaldi 支持的文件类型和格式。

utt2spk 和 spk2utt 是 Kaldi 处理所必须的,有时候如果不能提供说话人信息,可以“伪造”,比如每条语音的说话人 ID 直接使用这条语音的 ID,这对语音识别性能影响不大,但在做说话人识别任务时,显然务必要提供真实的说话人信息。此外,两个文件都需要按第一列排序,为保证二者顺序的总体一致性,通常句子 ID 的前缀设置为说话人 ID。

2)语言资料

语言知识方面,见Bookmark: language preparation,Kaldi 至少需要以下文件,存放于data/dict 下:

  • lexicon.txt,发音词典,即每个词与其所对应的音素串,格式为“word phone1 phone2 phone3 ...”,中文韵母具有不同的音调,可添加后缀,例如“1”(一声)、“2”(二声)、“3”(三声)、“4”(四声)、“5”(轻声);

  • lexiconp.txt,与lexicon.txt 作用相同,多了发音概率,是人工设置的先验假设,格式为“word pronunciation-probability phone1 ...”,可由系统通过 lexicon.txt 自动生成(此时所有词的概率相同),二者提供一个即可,lexiconp.txt 优先使用;

  • silence_phones.txt,静音类音素,包括静音(sil 或者 SIL)、噪音、笑声等非语言直接相关的伪音素,同一行的音素是某一个音素的不同变体(重音、音调方面),故可共享决策树根;

  • nonsilence_phones.txt,语言直接相关的真实音素,同一行的音素是某一个音素的不同变体(重音、音调方面),故可共享决策树根;

  • optional_silence.txt,备用的静音类音素,一般直接来自 silence_phones.txt 中的sil或者SIL;

  • extra_questions.txt,可为空,同一行的音素有着相同的重音或音调,与GMM训练中自动生成的“questions”一同用于决策树的生成。

对于同一种语言,基于新的数据集训练系统时,上述语言资料文件都可以直接移植过去复用。运行egs/wsj/s5/local/wsj_prepare_dict.sh可以瞥见如何利用 CMU 英语发音词典构建出其他所需文

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值