1

我正在使用深度语音将语音转换为文本。高达 0.8.1,当我运行如下转录时:

byte_encoding = subprocess.check_output(
"deepspeech --model deepspeech-0.8.1-models.pbmm --scorer deepspeech-0.8.1-models.scorer --audio audio/2830-3980-0043.wav", shell=True)
transcription = byte_encoding.decode("utf-8").rstrip("\n")

我会得到非常好的结果。但自从 0.8.2 版本删除了 scorer 参数以来,我的结果充满了拼写错误,这让我觉得我现在得到了一个字符级模型,而我以前是一个单词级模型。错误的方向看起来好像模型没有以某种方式正确指定。

现在我打电话时:

byte_encoding = subprocess.check_output(
    ['deepspeech', '--model', 'deepspeech-0.8.2-models.pbmm', '--audio', myfile])
transcription = byte_encoding.decode("utf-8").rstrip("\n")

我现在看到像这样的错误

  • 无止境->“结束”
  • 服务->“服务”
  • 遗产->“遗产”
  • 收入->“erting”
  • 之前->“befir”

我不是 100% 认为它与从 API 中删除记分器有关,但这是我看到版本之间发生变化的一件事,文档特别建议提高准确性

4

1 回答 1

1

简短:记分员将音频中的字母输出与实际单词相匹配。你不应该把它排除在外。

Long:如果省略 scorer 参数,您将无法检测到真实世界的句子,因为它将声学模型的输出与作为 scorer 一部分的文本语言模型中存在的单词和单词组合相匹配。请记住,每个得分手都有特定lm_alphalm_beta价值观,使搜索更加准确。

0.8.2 版本应该可以采用 scorer 参数。否则更新到 0.9.0,它也有。也许您的环境在某种程度上发生了变化。我将从一个新的目录和 venv 开始。

假设您使用的是 Python,您可以将其添加到您的代码中:

ds.enableExternalScorer(args.scorer)
ds.setScorerAlphaBeta(args.lm_alpha, args.lm_beta)

并检查示例脚本

于 2020-11-04T08:29:27.970 回答