Kaldi中的nnet3——Data types in the "nnet3" setup.

大部分翻译自kaldi的官网,以及自己的理解,如有错误还请指正

1、nnet3 outline

在nnet3中,使用一个通用的图结构,而不仅仅是一个组件序列,一个nnet3神经网络有下面两部分组成

阅读全文

Kaldi的编译过程-makefile

kaldi 的安装

通过git从github上将kaldi拉下来之后,kald的目录如下:

1
COPYING  INSTALL  README.md  egs  misc  scripts  src  tools  window

阅读全文

阅读和修改kaldi的代码

本节主要涉及kaldi的代码组织,依赖的结构,以及修改代码,调试代码。

通用基础类库

src目录下的base和util是kaldi里面最基础的两个目录,几乎每一个kaldi的程序都依赖于这两个目录,查看base/kaldi-common.h, kaldi-common.h这个头文件中包含了base这个目录下的除了io-funcs-inl.h下的其他所有的头文件以及系统库,其中io-funcs-inl.h则被io-funcs.h包含,而io-funcs.h这包含在kaldi-common.h,可以说kaldi-common.h中包含了所有的头文件。我们可以通过头文件名知道对应的功能,比如日志记录,类型定义,数学库等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//kaldi-common.h

#ifndef KALDI_BASE_KALDI_COMMON_H_
#define KALDI_BASE_KALDI_COMMON_H_ 1

#include <cstddef>
#include <cstdlib>
#include <cstring> // C string stuff like strcpy
#include <string>
#include <sstream>
#include <stdexcept>
#include <cassert>
#include <vector>
#include <iostream>
#include <fstream>

#include "base/kaldi-utils.h"
#include "base/kaldi-error.h"
#include "base/kaldi-types.h"
#include "base/io-funcs.h"
#include "base/kaldi-math.h"
#include "base/timer.h"

#endif // KALDI_BASE_KALDI_COMMON_H_

阅读全文