RNN 作为 HTK 语音识别中的后验概率估计

信息处理 语音识别 深度学习
2022-02-17 17:12:01

我是语音识别和深度学习的新手,并且处于学习阶段。

我正在尝试按照这篇论文学习如何在 HTK 环境中使用 RNN 作为后验概率估计。论文提出了RNN-HMM混合系统,所以对于HMM部分我需要使用HTK平台。

问题是我什至无法从任何地方开始。我有一个使用 HMM 识别数字的示例代码,但我无法解决我应该在哪个部分将 RNN 插入代码。

如果有任何想法,我会很高兴。

论文中的系统如下图所示: 论文的方法

我在 python 环境中有代码,HMM 是使用 HTK 应用的。将数据转换为MFCC格式后,我应该使用RNN,但是在使用RNN之后,我应该应用HMM的哪些步骤来生成RNN-HMM声学系统。

1个回答

用 HTK 构建 RNN-HMM 系统是非常巨大的努力。使用更灵活的工具包(如 Kaldi)更容易,它们已经实现了 RNN-HMM。

最新版本 3.5 beta 中的 HTK 已经支持 DNN(不是 RNN,但仍然是神经网络),您可以在源中 grep 获取 HYBRIDHS。有关 DNN-HMM 的详细信息,最好阅读 HTKBook 3.5 第 3.12 节DNN-HMM 系统和第 14 章人工神经网络

您需要修改 HModel.c 文件中的所有地方以引入您自己的模型类型。这不是您可以引入的单独步骤,您必须修改声学模型和 HMM 搜索代码之间的复杂交互。

将 Python 代码嵌入 HTK C 代码也并不简单,您可以将 RNN 分数转储到一个文件中并从 C 中读取它们,否则,您将不得不在 C 中重新实现您的 RNN 代码。