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

相关推荐
移远通信5 分钟前
QuecPython 的 VScode 环境搭建和使用教程
ide·vscode·编辑器
吨吨不打野30 分钟前
macOS设置定时播放眼保健操
macos
超级小的大杯柠檬水1 天前
修改Anaconda中Jupyter Notebook默认工作路径的详细图文教程(Win 11)
ide·python·jupyter
色空大师1 天前
【idea】实用插件
java·ide·intellij-idea
suanday_sunny1 天前
VSCode运行,各类操作缓慢,如何清理
ide·vscode·编辑器
信计小白1 天前
vscode报Module containing this breakpoint has not yet loaded
ide·vscode·编辑器
MonkeyKing_sunyuhua2 天前
Visual Studio Code 进行汉化
ide·vscode·编辑器
悠夏安末2 天前
intellij Idea 和 dataGrip下载和安装教程
java·ide·intellij-idea
博观而约取2 天前
Linux 和 macOS 终端中常见的快捷键操作
linux·运维·macos
Alger_Hamlet2 天前
Photoshop 2025 Mac中文 Ps图像编辑软件
macos·ui·photoshop