ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【语音识别】Kaldi学习之数据整理(1)

2021-03-30 00:00:12  阅读:725  来源: 互联网

标签:语音 训练 示例 Librispeech Kaldi 子集 clean 识别 数据


数据整理


在使用语音识别工具训练声学模型时,需要面临的两个问题:

  1. 如何选择训练数据
  2. 如何将数据整理成工具可以支持的格式。

本文介绍如何构建符合Kaldi脚本规范的数据资源文件,包括数据文件夹data和语言文件夹data/lang,并以Librispeech为例,介绍如何划分训练数据,以及各种资源文件的内容和用途。

1. 数据分集

通常将数据分为训练数据、开发数据和测试数据三个子集。

  1. 训练数据:用于训练模型的参数
  2. 开发数据:用于指导训练配置参数和调节解码配置参数,优化模型训练过程和配置解码器
  3. 测试数据:测试模型的性能

一般会按照80%、10%、10%或者85%、10%、5%的比例划分。

1.1 Librispeech示例的数据处理过程

Librispeech示例的脚本是从数据下载开始的,在网站上分发的时候已经做好了分集,其中训练、开发和测试分别用train、dev和test表示
为了给数据分集,首先对每个句子做一遍语音识别。识别的声学模型使用WSJ示例中训练的声学模型,语言模型使用二元文法,语言模型数据来自这些语音数据对应的电子书文本。根据识别结果,统计每个说话人的WER,然后从低到高排序。在排序的说话人列表中,前一半标记为clean,其他标记为other。

从clean数据集中,随机抽取20名男性和20名女性作为开发集(dev-clean),从剩下的说话人中随机取20名男性和20名女性作为测试集(test-clean)。剩余的clean数据用于训练,随机地分为大约100小时和360小时的两个子集,分别命名为train-clean-100和train-clean-360。

在other数据集中,挑选WER比较高的数据用于开发和测试,以说话人为单位按照WER从低到高排序,在第三个四分位点附近随机选择。剩余other数据用于训练,命名位train-other-500。

Librispeech数据来源:http://openslr.org/12
Librispeech数据集
完整的压缩包共61GB。

1.2 数据下载和解压

训练脚本的第一步就是数据下载,首先通过如下定义给出数据存放的位置。这里通常使用绝对路径。下载脚本位于:kaldi/egs/librispeech/s5/local/download_and_untar.sh。使用方法如下:

local/download_and_untar.sh [--remove-archive] <data> <data_url> <part>

如果指定了–remove-archive选项,则会在解压后删除数据压缩包。例如,下载dev-clean这个子集:

$ ./local/download_and_untar.sh /home/ubuntu/Sound/Data/storage https://www.openslr.org/resources/12 dev-clean

下载dev-clean子集
解压后的数据目录结构如下。
dev-clean数据目录结构
对于其他数据子集,数据目录结构类似。每个子集的目录下面是这个子集中包含的每个说话人的目录,每个说话人的目录下面是该说话人所阅读的每个章节的目录。在每个章节的目录下面可以看到这个章节的全部文本和每一句的录音文件。以dev-clean为例:
录音文件结构
其中1271是说话人编号,128104是章节编号,flac文件是每一句录音的音频,不是常见的wav格式。txt文件是这个章节的文本,内容如下:
txt文本内容
句子间用换行符隔开,文本和音频编号之间用空格隔开,同时可以看到,文本已经进行了规范。

说话人的详细信息可以在SPEAKERS.TXT文件中找到,内容示例如下。例如14号说话人信息有性别、所属子集、录音时长和姓名。
说话人的详细信息
录音文本的详细信息可以在CHAPTERS.TXT文件中找到,示例内容如下。例如1号章节的详细信息有阅读者、时长、所属子集、章节和书名等信息。
录音文本信息
因此,Librispeech除了可以用来构建语音识别的示例外,也可以用来完成说话人识别、性别分类、音频检索等任务。

标签:语音,训练,示例,Librispeech,Kaldi,子集,clean,识别,数据
来源: https://blog.csdn.net/ARPOSPF/article/details/114381212

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有