Kaldi学习笔记(一)

本文详细介绍了使用Kaldi进行语音识别的过程,包括数据准备、特征提取、单音素训练、图构建及解码等关键步骤。通过yesno例子,深入解析了每一步的具体操作和涉及的脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大致看了一下官方文档的Running the example scripts 部分:http://kaldi-asr.org/doc/tutorial_running.html
记录一下,免得忘记,写得也不是很清楚,只是记录一下,以后再填坑

看的过程中,发现了几篇有用的文章:
1.https://blog.youkuaiyun.com/boyStray/article/details/89857435(解析kaldi中yesno的语音分帧和模型)
2.https://blog.youkuaiyun.com/chinatelecom08/article/details/81252140(语音识别——kaldi常用文件查看指令)

kaldi中运行一个例子的几个步骤:(在yesno例子里的run.sh中写得很清楚)
1.数据准备
大致应该是准备语言模型
对应到yesno例子里是:

# Data preparation

local/prepare_data.sh waves_yesno
local/prepare_dict.sh
utils/prepare_lang.sh --position-dependent-phones false data/local/dict "<SIL>" data/local/lang data/lang
local/prepare_lm.sh

其中最重要的应该是prepare_lang.sh

2.特征提取

# Feature extraction
for x in train_yesno test_yesno; do 
 steps/make_mfcc.sh --nj 1 data/$x exp/make_mfcc/$x mfcc
 steps/compute_cmvn_stats.sh data/$x exp/make_mfcc/$x mfcc
 utils/fix_data_dir.sh data/$x
done

注意这里调用的shell文件有make_mfcc.sh
compute_cvmn_stats.sh
fix_data.sh

3.单音素训练(针对训练集)

# Mono trainingexp/mono0a/decode_test_yesno
steps/train_mono.sh --nj 1 --cmd "$train_cmd" \
  --totgauss 400 \
  data/train_yesno data/lang exp/mono0a 

这里调用了train_momo.h
训练好的模型存储在exp/mono0a中
例如0.mdl存储的是gmm模型,可以通过gmm-copy来读取

4.makegraph

# Graph compilation  
utils/mkgraph.sh data/lang_test_tg exp/mono0a exp/mono0a/graph_tgpr

并将结果存储于exp/mono0a exp/mono0a/graph_tgpr

5.解码(针对测试集)

# Decoding
steps/decode.sh --nj 1 --cmd "$decode_cmd" \
    exp/mono0a/graph_tgpr data/test_yesno exp/mono0a/decode_test_yesno

并将结果存储于exp/mono0a/decode_test_yesno

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值