linux - HTK:HCompV ReadString:字符串太长

标签 linux speech-recognition raspbian raspberry-pi2 htk

您好,我是 HTK 的新手,并已遵循 http://htk.eng.cam.ac.uk/ 的 HTK 书中的“使用 HTK 的教程示例”

我已经到了必须使用“HCompV”的地步(3.2.1 第 6 步 - 创建平启动单音素)

我已经“cd”到我的工作目录,我的命令如下

HCompV -C wav_config_HCompV -f 0.01 -m -S train.silmodel.scp -M hmm0 proto.silmodel

(不要介意奇怪的名字我做了几次尝试到达这里并用新名称重命名新文件版本以保留旧名称)

我的“wav_config_HCompV”包含

TARGETKIND = MFCC_0_D_A
TARGETRATE = 100000.0
SAVECOMPRESSED = T
SAVEWITHCRC = T
WINDOWSIZE = 250000.0
USEHAMMING = T
PREEMCOEF = 0.97
NUMCHANS = 26
CEPLIFTER = 22
NUMCEPS = 12

我的“train.silmodel.scp”包含

"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0001.wav"
"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0002.wav"
"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0003.wav"
"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0004.wav"
"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0005.wav"
"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0006.wav"
"/home/pi/HTK/htk.eng.cam.ac.uk/HTK Book/train/wav-2/S0007.wav"
etc...

我的“proto.silmodel”包含

~o <VecSize> 39 <MFCC_0_D_A>
~h "proto
<BeginHMM>
<NumStates> 5
<State> 2
<Mean> 39
0.0 0.0 0.0 ...
<Variance> 39
1.0 1.0 1.0 ...
<State> 3
<Mean> 39
0.0 0.0 0.0 ...
<Variance> 39
1.0 1.0 1.0 ...
<State> 4
<Mean> 39
0.0 0.0 0.0 ...
<Variance> 39
1.0 1.0 1.0 ...
<TransP> 5
0.0 1.0 0.0 0.0 0.0 
0.0 0.6 0.4 0.0 0.0 
0.0 0.0 0.6 0.4 0.0 
0.0 0.0 0.0 0.7 0.3 
0.0 0.0 0.0 0.0 0.0 
<EndHMM> 

当我运行命令时出现错误

ERROR [+5013]  ReadString: String too long
FATAL ERROR - Terminating program HCompV

我觉得这很奇怪。因为在像这样的页面上 understanding htk error messages

我最终发现不是在“HCompV”错误消息中而是在“HLed”错误消息中发现

ERROR [+5013] ReadString: String too long
FATAL ERROR - Terminating program HLEd 

解决方案应该是

Make changes to the pronunciation dictionary:
Replace all multiple spaces with single space;
Replace all tabs with single space;
Put a '\' before every double quote ("); %"
Put a '\' before any dictionary entry beginning with single quote (')

我看不出这个错误代码与 HCompV 有什么关系,而且我在网络上的其他任何地方都找不到与我的奇怪错误相关的任何内容。 有没有人知道线索?

我似乎在这个命令中没有任何字典,所以它确实加起来了。

感谢您的阅读,并致以最诚挚的问候, 暗夜

最佳答案

此错误是由于某些输入文件末尾缺少新行引起的。确保每个输入文件都以换行符结尾。您可以为此使用任何好的文本编辑器。

关于linux - HTK:HCompV ReadString:字符串太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940938/

相关文章:

python - 单击桌面图标在 Raspbian 中执行 python 脚本

javascript - 缓冲区.js :246 "Object 1 has no method ' toLowerCase'

java - 从 PHP/Java/Python Web 应用程序调用 shell 命令(包括那些需要 root 权限的命令)的正确方法是什么?

android - .3gp 或 wav 格式的录制音频文件的语音识别

c - 互斥锁 - 定时锁定

c# - 语音识别的简单语法

speech-recognition - Nist 球体格式文件

nginx 意外的文件结尾,在/etc/nginx/sites-enabled/default :20 over Raspbian 中期待 ";"或 "}"

linux - 如何使用 apt-get 在用户定义的目录中安装软件包?

linux - 如何使用 sed 和 awk 命令提取模式?