有没有办法使用HTK来获得单音电话机率?

时间:2019-01-15 22:34:46

标签: speech-recognition htk

理想情况下,我正在寻找一种获取概率向量的方法,该向量表示音频文件的特定片段是特定电话。像这样:

输入:

  • wavfile
  • 开始位置(例如@ 1.4秒)
  • 持续时间(例如500毫秒)

输出:

  • SIL 2.324 * 10 ^ -3
  • AA 1.514 * 10 ^ -4
  • AE 1.482 * 10 ^ -2
  • ...
  • ZH 5.03 * 10 ^ -5

1 个答案:

答案 0 :(得分:1)

您可以在强制对齐模式下获得运行HVite的得分。恐怕您必须为每个音素运行此程序:

HVite -A -D -T 1 -l '*' -o NTW -C HTK.cfg -a \
    -H macros \
    -H hmmdefs \
    -i acoustic_score_AA.mlf \
    -y lab \
    -I AA.mlf \
    -S index.scp \
    words phones

输出文件acoustic_score_AA.mlf将包含结果。我

words词汇文件的内容应类似于:

AA AA
AE AE
....
ZH ZH

据我所记得,phones必须包含音素列表(HMM型号)。

这里的技巧是输入.mlf文件的内容。例如,AA.mlf应该像这样:

#!MLF!#
"*/S0001.lab"
AA
.

这将迫使HVite对整个话语应用AA模型。音频文件的块必须事先执行。