精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
调整语音识别的准确性
语音识别的准确性并不总是很好。
首先,重要的是要了解您的准确度是否低于预期,或者一般是否非常低。如果精度一般非常低,则很可能是错误配置了解码器。如果低于预期,您可以采用各种方法来改进它。
您应该做的第一件事是收集测试样本数据库并测量识别准确性。您需要将话语转储到wav文件中,编写参考文本并使用解码器对其进行解码。然后使用Sphinxtrain中的工具word_align.pl计算字错误率(WER)。测试数据库的大小取决于准确性,但通常只需30分钟的转录音频就可以可靠地测试识别器的准确性。
只有拥有测试数据库,才能继续优化识别准确性。
准确性差的原因
准确性差的主要原因是:
在此处查找更多信息:
测试数据库设置
要测试识别,您需要使用所需的参数配置解码,特别是,您需要具有语言模型<your.lm>。有关更多详细信息,请参阅构建语言模型页面。
创建一个fileids文件test.fileids:
test1
test2
创建一个转录文件test.transcription:
some text (test1)
some text (test2)
将音频文件放在wav文件夹中。确保这些文件具有适当的格式和采样率。
└─ wav
├─ test1.wav
└─ test2.wav
运行测试
现在,让我们运行解码器:
pocketsphinx_batch \
-adcin yes \
-cepdir wav \
-cepext .wav \
-ctl test.fileids \
-lm `<your.lm>` \ # for example en-us.lm.bin from pocketsphinx
-dict `<your.dic>` \ # for example cmudict-en-us.dict from pocketsphinx
-hmm `<your_hmm>` \ # for example en-us
-hyp test.hyp
word_align.pl test.transcription test.hyp
该word_align.pl脚本是sphinxtrain发行版的一部分。
-samprate 8000如果要解码8 kHz文件,请务必将选项添加到上述命令中!
word-align.pl来自Sphinxtrain 的脚本将向您报告确切的错误率,您可以使用它来确定适应性是否适合您。它看起来像这样:
TOTAL Words: 773 Correct: 669 Errors: 121
TOTAL Percent correct = 86.55% Error = 15.65% Accuracy = 84.35%
TOTAL Insertions: 17 Deletions: 11 Substitutions: 93
要查看解码的速度,请检查pocketsphinx日志,它应如下所示:
INFO: batch.c(761): 2484510: 9.09 seconds speech, 0.25 seconds CPU, 0.25 seconds wall
INFO: batch.c(763): 2484510: 0.03 xRT (CPU), 0.03 xRT (elapsed)
具有0.03 xRT解码速度(“记录时间的0.03倍”)。