Kaldi是一个语音识别工具,使用C++开发,基于Apache 许可证,目的是为语音识别研究者提供。本文将介绍在线安装kaldi,为之后的离线安装kaldi做一个准备和基础。
1. 下载kaldi
目前kaldi是开源的,在github上可以clone;clone以后进入该目录,然后查看安装方法。
git clone https://github.com/kaldi-asr/kaldi.git
cd kaldi/
cat INSTALL
INSTALL文件指示如下:
This is the official Kaldi INSTALL. Look also at INSTALL.md for the git mirror
继续阅读 »
在很多科研单位和企业研发部门,服务器是极少被允许连外网的,一般情况下只可以通过内网里的机器访问服务器。由于自己的经历,我曾经接触过这样一台服务器,由于有8张Tesla K80的GPU,我很想在上面安装一个kladi。因此,这里的离线指的是服务器不能访问外网,或者服务器压根不能上网。我下面的操作是在和服务器在同一内网下的Windows机器上进行的,读者也可以直接在服务器上操作(不过一般很难得到许可)。
在阅读本文之前,建议先阅读一下我之前写的文章:ubuntu 16.04在线安装kaldi,以熟悉kaldi安装的大概过程。
1. 下载kaldi并上传
从kaldi在github的代码仓库(https://github.com/k
继续阅读 »
本文将以 kaldi 中 timit 的例程来看整个 run.sh 脚本的执行过程。本文来自于Running the example scripts (40 minutes)
数据准备
请先进入 kaldi\egs\timit\s5\ 这个目录。
运行环境
由于 kaldi 可以在本地运行,也可以在 Oracle GridEngine 上运行,因此,请修改 cmd.sh。
如果你是在本地运行,请输入
export train_cmd="run.pl --max-jobs-run 10"
export decode_cmd="run.pl --max-jobs-run 10"
export cuda_cmd="run.p
继续阅读 »
本文主要参考的是 kaldi-asr.org,主要介绍我们在使用 kaldi 的时候可能用到的数据处理的脚本以及相关文件的信息。
简介
在运行完 kaldi 提供的例子之后,也许你想用自己的数据来建立一个系统,本节主要介绍如何准备自己的数据。请确保你使用的是例程脚本是最新的脚本。在本文中,你可以参考这些例子中有关数据准备的脚本。在每一个例子的根目录有一个 run.sh,该文件一般在开头会有若干行和数据准备有关的操作。比如在 RM 的例子中有:
local/rm_data_prep.sh /export/corpora5/LDC/LDC93S3A/rm_comp || exit 1;
utils/prepare_lang.sh
继续阅读 »
本文翻译和总结与 kaldi.org。本文主要介绍 kaldi 代码的组织结构以及依赖结构,以及一些修改和调试代码的经验。如果想更深入了解,可以点击这里。
常用的使用工具
进入 src/base/,查看 kaldi-common.h,其内容主要为下:
```c++
ifndef KALDI_BASE_KALDI_COMMON_H_
define KALDI_BASE_KALDI_COMMON_H_ 1
include
include
include // C string stuff like strcpy
include
include
include
include
include
继续阅读 »
本文主要参考的是 kaldi-asr.org,主要介绍我们在使用 kaldi 的时候可能想要了解的术语词汇表。当然这里介绍的只是一部分例子,相信不久 kaldi-asr.org 就会增加新的内容。
acoustic scale
可以翻译为声学尺度吧,是在解码时使用的。在 C++ 程序中经常被写成 –acoustic-scale,而在其他程序中可能被写作 –acwt。这是对声学对数概率的描述,是一个在 HMM-GMM 和 HMM-DNN 系统中通常使用的系统,以说明帧与帧之间的相关性。其值都成被设置为 0.1,这意味着声学对数概率比语言模型的对数概率具有更低的权重。在打分(score)的脚本中,经常会看到语言模型的权重被搜索的范围
继续阅读 »
本文主要参考的是 kaldi-asr.org,主要讲述的是用自己的录音来构建一个数字串识别系统。
继续阅读 »
最近需要做一个语言模型的自适应,所谓自适应,是指我已经有了一个通用的语言模型,比如 librispeech 的 tgsmall,但是我现在的任务大部分是朗读一段内容,我希望提高语言模型在解码中的比重,于是想利用新的语料训练一个新的语言模型,然后和之前的通用的融合。
继续阅读 »
最近需要做一个语言模型的自适应,所谓自适应,是指我已经有了一个通用的语言模型,比如 librispeech 的 tgsmall,但是我现在的任务大部分是朗读一段内容,我希望提高语言模型在解码中的比重,于是想利用新的语料训练一个新的语言模型,然后和之前的通用的融合。
继续阅读 »
做语音的人很多都会用到的 kaldi,而在 kaldi 里使用最多的并行计算环境是 Sun Grid Engine(SGE),本人也在自己的服务器上部署了 SGE 环境。
部署 SGE
在管理节点上
shell
$ sudo apt-get install gridengine-master gridengine-client
增加管理员(am=add manager)
$ sudo qconf -am
删除管理员(dm=delete manager)
$ sudo qconf -dm
显示所有管理员(sm=show manager)
$ sudo qconf -sm
在所有计算节点上(管理节点
继续阅读 »