kaldi中文语音识别(1)

本文详述了Kaldi工具包的编译安装过程及如何使用它进行中文语音识别,包括环境配置、模型训练和导入,特别介绍了thch30数据集和CVTE模型的应用。

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

                    版权声明:本文为博主原创文章,未经博主允许不得转载。                        https://blog.youkuaiyun.com/zyziszy/article/details/82919957                    </div>
                                                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css">
                                    <div id="content_views" class="markdown_views prism-atom-one-dark">
                <!-- flowchart 箭头图标 勿删 -->
                <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                </svg>
                                        <p></p><div class="toc"><h3><a name="t0"></a>目录</h3><ul><ul><li><a href="#kaldi_13" rel="nofollow" data-token="a2a2ae159a6a29db7d80861b651800fb" target="_self">kaldi是什么</a></li><li><a href="#kaldi_17" rel="nofollow" data-token="e3b403c5add61eb64ef7600ec32def99" target="_self">kaldi与中文语音识别</a></li><li><a href="#kaldi_27" rel="nofollow" data-token="64a4a8aaf7bfc2ab7a1e15d8ad57946f" target="_self">编译与安装kaldi</a></li><li><a href="#kaldi_138" rel="nofollow" data-token="e3928b4ef9043fbc802b91ad2620b71c" target="_self">用kaldi进行中文语音识别</a></li></ul></ul></div><p></p>

这3篇博客,详细总结和记录了我编译安装kaldi和两种用kaldi进行中文语音识别的过程,包括如何kaldi的简单介绍、环境的配置、相关模型的训练、导入,算是自己近期学习的一个总结,也希望可以帮助到需要的人~~~

本篇博客主要记录了我编译安装kaldi的过程

另外两篇博客的连接

  1. kaldi中文语音识别(2)——用thch30数据集做中文语音识别
  2. kaldi中文语音识别(3)——用cvte模型做中文语音识别

kaldi是什么

kaldi是一个用C++写的语音识别工具包。kaldi旨在供语音识别研究员使用。当然,kaldi也可以用作声纹识别。关于他的详细介绍可以访问kaldi的官方文档

kaldi与中文语音识别

感谢很多大神与科研工作者在kaldi上开源了他们的数据集和训练模型,让我这样的小白可以站在巨人的肩膀上前行。目前我所了解到有3个开源的中文语音识别例子。

  1. 清华大学开源的thchs30数据集(疯狂为CSLT打电话~~~)
  2. CVTE公司开源的CVTE Mandarin Model模型
  3. Beijing Shell Shell Technology公司开源的aishell数据集

如果有同学知道其他的数据集or模型,中英文皆可,欢迎联系我补充啊~

编译与安装kaldi

注意:为了提高训练的速度,kaldi最好安装在GPU云服务器下。如果没有服务器话,使用虚拟机应该也是可以的,但一定要分配足够的内存空间和存储空间。下面我就以我使用的centos服务器为例,介绍kaldi的编译与安装。

编译与安装大概分为3步

  1. 安装git、下载kaldi的源码
  2. 安装编译所需依赖包
  3. 配置、编译kaldi

1.kaldi的下载

kaldi的所有源码开源在了GitHub上,可以直接git下载到服务器上,首先得确保服务器上安装了git,如果没有安装的话,就先安装git

sudo yum install git -y

 
 
  • 1

接着git clone下载kaldi

git clone https://github.com/kaldi-asr/kaldi.git

 
 
  • 1

下载完成kaldi源码后,我们将得到如下一个文件结构的目录。

kaldi/
├── COPYING
├── egs/				//egs目录里存放了使用kaldi完成的开源语音识别/声纹识别项目
├── INSTALL				//编译安装kaldi的指导
├── misc/
├── README.md
├── scripts/
├── src/				//src文件夹里存放了kaldi源码
├── tools/				//tools文件夹里存放了语音处理的工具包
└── windows/				//windows文件夹存放了在windows下编译安装kaldi的文件

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.安装编译所需要的依赖包

编译之前需要确操作系统中安装有如下包

  subversion
  automake
  autoconf
  libtool
  g++
  zlib
  libatal
  wget
  sox

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

首先进入到kaldi/tools目录下,接着在调用check_dependencies.sh脚本检查系统中的包是否安装完全

cd kaldi/tools
extras/check_dependencies.sh

 
 
  • 1
  • 2

如图所示,这个shell脚本会提示系统需要安装的包,按照提示安装即可。

img

安装完成后再次运行这个脚本,如果提示OK就可以开始进行kaldi的编译。

3.编译kaldi

首先编译tools,在在kaldi/tools目录下输入

make

 
 
  • 1

我使用的服务器是i7有8个核心,因此输入make -j 8可以使用8个核心一起编译,加快编译速度。

之后转到kaldi/src目录下,输入如下命令

cd ../src

 
 
  • 1

在src目录下首先要运行configure进行配置,由于每个人的cuda版本、安装路径不一定相同,所以这里需要根据自己的服务器情况进行修改,如下是我的configure配置方案,仅供参考。

./configure --static \
            --use-cuda=yes \
            --cudatk-dir=/home/zy/cuda/cuda-8.0 \
            --mathlib=OPENBLAS \
            --openblas-root=../tools/OpenBLAS/install \
            --threaded-math=no \
            --static-math=yes \
            --static-fst=yes \
            --fst-root=../tools/openfst

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

配置完成后,就可以进行src的编译了

make depend
make

 
 
  • 1
  • 2

同样,如果是多核CPU的话,你可以使用make depend -j 8make -j 8加快编译速度

完成后会有提示成功和失败,结束make后就算完成了kaldi的编译与安装了~

用kaldi进行中文语音识别

完成kaldi的安装后,就可以用kaldi做语音识别了~,下面分别是我用kaldi做的两种不同中文语音识别的博客连接。

  1. demo(1)——用thch30做中文语音识别
  2. demo(2)——用cvte做中文语音识别

参考资料:

  1. 优快云博客:Kaldi的下载安装与编译
  2. kaldi-ctc的安装、编译、测试
{
	Author: "byr-zyziszy",
	Mail: "zyziszy@foxmail.com",
	Github: "https://github.com/zyzisyz",
	Date: "2018-10-2"
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                </div>
</article>
### 关于Kaldi中文语音识别THC30实现 #### Kaldi简介 Kaldi是一个用于语音识别的工具包,广泛应用于学术研究和工业界。该工具包提供了多种功能强大的算法和技术来处理各种语音任务[^1]。 #### 安装与配置Kaldi 为了使用Kaldi进行中文语音识别,在本地环境中安装和配置Kaldi是非常必要的。通常情况下,这涉及到获取源码、满足依赖关系以及构建项目本身。对于特定版本如THC30来说,可能还需要额外调整某些参数或脚本来适配具体需求。 #### 准备数据集 在开始训练之前,准备高质量的数据集至关重要。针对中文语音识别的任务,应该收集足够的带有标注的音频文件作为输入给Kaldi。这些数据应当被整理成适合框架使用的格式,并且要确保标签准确无误以便后续模型能够有效学习[^2]。 #### 特征提取 当提到特征提取时,值得注意的是Kaldi中的特性设定不同于其他一些传统工具比如HTK。尽管两者之间存在差异,但通过适当设置命令行选项(例如`--htk-compat=true`),可以使二者产生的MFCC特征更加相似。此外,还提供了一个特殊的标志位`--subtract-mean`用来减去每条录音信号的平均值从而改善性能表现[^3]。 #### 训练过程概述 一旦完成了上述准备工作之后就可以着手建立自己的ASR系统了。在这个阶段内会经历多个子步骤,包括但不限于预处理原始波形、生成字典映射表单、定义音素集合等。最终目标是要得到一组权重矩阵和其他统计量描述所学得的语言结构特点。 ```bash # 假设已经准备好所有必需资源路径 cd egs/thchs30/s5 # 进入指定实验目录下工作空间 ./run.sh # 执行自动化流程控制脚本启动整个流水线作业 ``` #### 测试与评估 完成一轮完整的迭代后,利用测试集中未见过的新样本验证系统的准确性就显得尤为重要。此时可以通过解码器将未知话语转换成语义理解单元进而衡量错误率指标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值