CMUS狮身人面像(六)-调整语音识别准确性

调整语音识别准确性



语音识别的准确性并不总是很高。

首先,重要的是要了解您的准确性是否只是低于预期,还是总体上非常低。如果总体精度非常低,则您很可能错误配置了解码器。如果低于预期,可以采用各种方法来改进。

您应该做的第一件事是收集测试样本数据库并测量识别准确性。您需要将话语转储到 wav 文件中,编写参考文本并使用解码器对其进行解码。然后使用 Sphinxtrain 的工具计算字错误率 (WER) word_align.pl。测试数据库的大小取决于准确性,但通常有 30 分钟的转录音频就足以可靠地测试识别器的准确性。

只有拥有测试数据库,您才能继续优化识别精度。

精度差的原因

精度不佳的主要原因是:

  • 传入音频的采样率和通道数不匹配或传入音频带宽不匹配。它必须是 16 kHz(或 8 kHz,具体取决于训练数据)、16 位 Mono(= 单通道)Little-Endian 文件。您需要通过重采样来修复源的采样率(仅当其采样率高于训练数据的采样率时)。您不应该对文件进行上采样并使用在更高采样率的音频上训练的声学模型对其进行解码。可以使用命令验证音频文件格式(采样率、通道数)

    highlight 复制代码
    sox --i /path/to/audio/file

    在此处查找更多信息: 什么是采样率?

  • 声学模型不匹配。为了验证这个假设,您需要根据测试数据库文本构建一个语言模型。这样的语言模型会非常好,并且一定会给你很高的准确率。如果精度仍然较低,则需要在声学模型上进行更多工作。您可以使用声学模型自适应来提高准确性。

  • 语言模型不匹配。您可以创建自己的语言模型来匹配您尝试解码的词汇。

  • 字典中的不匹配以及单词的发音。在这种情况下,必须在语音词典中完成一些工作。

测试数据库设置

要测试识别,您需要使用所需的参数配置解码,特别是,您需要有一个语言模型<your.lm>。有关更多详细信息,请参阅构建语言模型页面。

创建一个fileids 文件test.fileids

highlight 复制代码
test1
test2

创建转录文件test.transcription

highlight 复制代码
some text (test1)
some text (test2)

将音频文件放入wav文件夹中。确保这些文件具有正确的格式和采样率。

highlight 复制代码
└─ wav
   ├─ test1.wav
   └─ test2.wav

运行测试

现在,让我们运行解码器:

highlight 复制代码
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 发行版的一部分。

如果您要解码 8 kHz 文件,请务必将该选项添加-samprate 8000到上述命令!

Sphinxtrain 的脚本word-align.pl将向您报告准确的错误率,您可以使用该错误率来确定改编是否适合您。它看起来像这样:

highlight 复制代码
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 日志,它应该如下所示:

highlight 复制代码
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倍")。

相关推荐
紫_龙3 小时前
window 维护多版本Android studio
android·ide·android studio
曹牧5 小时前
Eclipse 批量文本替换
java·ide·eclipse
xiaowang1234shs6 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
yAdrian9 小时前
macOS launchd CPU 占用过高问题排查记录
macos
vistaup9 小时前
Android studio 历史版本
android·ide·android studio
代码的小搬运工11 小时前
【iOS】3G-Share仿写总结
macos·ios·cocoa
2501_9160074713 小时前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
游戏开发爱好者814 小时前
iOS开发IDE有哪些 Xcode 和 快蝎 轻量替代方案
ide·vscode·ios·个人开发·xcode·swift·敏捷流程
张太行_14 小时前
vscode在open folder如何设置默认路径
ide·vscode·编辑器
qq_452396231 天前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang