kaldi语音识别实战pdf_学习Kaldi入门:yesno项目

本文介绍了一个使用Kaldi进行ASR的入门项目——yesno。从下载数据集,转换格式,建立词典,到训练模型,解码测试,详细阐述了Kaldi在ASR中的应用流程,最终实现100%准确率的语音识别。
摘要由CSDN通过智能技术生成

这个学期选了一门自然语言处理课,结果这门课主要的研究课题是自动语音识别(ASR)。既然入了这个坑。就先好好了解一下如何做ASR吧。 老师Tom Ko要求使用Kaldi这个工具来做ASR。课上到一半才知道Kaldi中有几千行的脚本代码是老师提交的。好吧,脚本好难的。 为了入门Kaldi,课程的第5次Lab是一个mini projec: yesno

首先要下载并编译Kaldi,安装的过程不是我的学习重点,可以先参考Kaldi的下载安装与编译,在漫长的编译过程之后假设已经安装好了Kaldi。

项目目录结构

yesno项目的脚本和README都在kaldi/egs/yesno之下。 README.txt文件中包含数据集描述:

The "yesno" corpus is a very small dataset of recordings of one individual
saying yes or no multiple times per recording, in Hebrew.  It is available from
http://www.openslr.org/1.
It is mainly included here as an easy way to test out the Kaldi scripts.

The test set is perfectly recognized at the monophone stage, so the dataset is
not exactly challenging.

The scripts are in s5/.

数据脚本路径: kaldi/egs/yesno/s5。在下面执行的很多操作都可以直接调用已经写好的脚本来执行,之所以深入到具体的流程中是为了加强对ASR流程的理解。

下载数据集

第一步是从网络上下载数据集文件waves_yesno.tar.gz到s5/路径下并解压。 原始的数据是60个.wav文件。文件名是八个用下划线分隔的01组合。需要将音频数据转化成kaldi能够处理的格式。

转换成Kaldi能处理的格式

下载完数据集后,将数据集划分为31个训练,30个测试(数量大致相当)。在s5/下创建data文件夹,把划分好的音频文件放入train_yesno和test_yesno。

Kaldi使用以下几个文件来表示数据: 1. Text 音频的文本记录。每一个音频文件一行。格式为<utt_id> <transcript>。为音频的id,一般用不带扩展名的文件名表示。utt_id在wav.scp文件中与具体的文件映射。是音频对应的文字。 2. wav.scp 将文件映射到唯一的utt_id。 格式为<utt_id> <path or command to get wave file> 第二个参数既可以是对应utt_id的音频文件路径,也可以是能够获得音频文件的指令。 3. utt2spk 对于每一个音频文件,标记是哪一个人发音的。因为yesno数据集中只有一个发音者,用global来表示所有的utt_id 文件内每一行的格式为<utt_id> <speaker_id>

  1. spk2utt 和3反过来。文件内每一行对应一个发音者,第一个是speaker的id,后面用空格分隔开60个utt_id。格式为<speaker_id> <utt_id1> <utt_id2> ...

本步骤可直接调用脚本:

cd kaldi/egs/yesno/s5
local/prepare_data.sh waves_yesno

读了一下prepare_data.sh的脚本

#!/usr/bin/env bash

mkdir -p data/local
local=`pwd`/local
scripts=`pwd`/scripts

export PATH=$PATH:`pwd`/../../../tools/irstlm/bin

echo "Preparing train and test data"

train_base_name=train_yesno
test_base_name=test_yesno
waves_dir=$1

ls -1 $waves_dir > data/local/waves_all.list

cd data/local

.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值