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倍")。

相关推荐
这儿有一堆花1 天前
IDE 开发的一天
ide
陈大头铃儿响叮当1 天前
Mac 下配置Charles踩坑之旅
macos
swear011 天前
VSCODE 插件 rust-analyzer 使用遇到的问题 快捷键查看定义
ide·vscode·rust
2501_915921431 天前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
pengzhuofan1 天前
IntelliJ IDEA 常用快捷键
java·ide·intellij-idea
Jackson@ML1 天前
用Visual Studio Code最新版开发C#应用程序
ide·vscode·c#
sonrisa_1 天前
下载CUDA Toolkit和VS后,配置vscode
ide·vscode·编辑器
游戏开发爱好者81 天前
iOS 上架要求全解析,App Store 审核标准、开发者准备事项与开心上架(Appuploader)跨平台免 Mac 实战指南
android·macos·ios·小程序·uni-app·iphone·webview
alengan1 天前
ios支付
macos·ios·cocoa
无锋起浪1 天前
Vscode参数设置及使用记录ubuntu2204(更新中)
ide·vscode·编辑器