其他Kaldi公用事业

本页概述了我们在Kaldi代码中使用的各种实用功能。

这排除了在各自部分中处理过的重要实用程序,包括矩阵库,I / O,日志记录和错误报告以及命令行解析。

文字工具

在text-utils.h中有各种用于操作字符串的函数,主要用于解析。重要的包括模板化函数ConvertStringToInteger(),以及为float和double定义的重载ConvertStringToReal()函数。还有SplitStringToIntegers()模板,其输出是整数向量,SplitStringToVector()将字符串拆分为字符串向量。

STL实用程序

在stl-utils.h中是用于操纵STL类型的模板化函数。常用的是SortAndUniq(),它从向量(任意类型)中对重复项进行排序和删除。函数CopySetToVector()将集合的元素复制到向量中,并且是在集合,向量和映射之间移动数据的更大类似函数的一部分(请参阅stl-utils.h中的列表)。还有散列函数类型VectorHasher(用于整数向量)和StringHasher(用于字符串); 这些用于STL unordered_map和unordered_set模板。另一个常用功能是DeletePointers(),删除std ::指针向量中的指针,并将它们设置为NULL。

数学工具

在kaldi-math.h中,除了它们不在系统头math.h中提供的许多标准#defines之外,还有一些数学实用函数。其中最重要的是:

  • 随机数生成函数:RandInt(),RandGauss(),RandPoisson()。
  • LogAdd()和LogSub()函数
  • 用于测试和断言近似数学(in)等式的函数,即ApproxEqual(),AssertEqual(),AssertGeq()和AssertLeq()。

其他工具

在const-integer-set.h中是一个ConstIntegerSet类,它以有效的方式存储一组整数,并允许快速查询。需要注意的是,初始化对象后无法更改集。这用于例如决策树代码中。根据集合中整数的值,它可以在内部将它们存储为vector 或整数的排序向量。

用于与平台无关的定时程序的类Timer在timer.h中。

其他实用程序类型的函数和类在simple-io-funcs.h和hash-list.h中,但它们具有更多的特殊用途。kaldi-utils.h中的一些额外的实用函数和宏,大多数是非常专业的,矩阵代码依赖于它们。这些包括字节交换,内存对齐和编译时断言机制(在模板中很有用)。

你可能感兴趣的:(KALDI工具)