【问题标题】:vosk translation output only shows last batch of translationvosk 翻译输出只显示最后一批翻译
【发布时间】:2021-03-19 02:44:42
【问题描述】:

当我尝试使用我自己的音频文件运行 test_ffmpeg.py 时,它并没有真正显示最后的所有翻译。但它只显示最后一段/批次。比如,我的音频文件是这样的:

The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy cat
The quick brown fox jumps over the lazy rat
The quick brown fox jumps over the lazy bat

会发生什么,它会闪烁所有这些文本,并且看起来它们已按预期翻译,但在脚本的结尾,它只显示 快速棕色狐狸跳过懒蝙蝠最终结果

在检查实际文件时,这一行应该显示所有已翻译的文本,但它只打印捕获的最后一部分。

print(rec.FinalResult())

【问题讨论】:

    标签: python vosk


    【解决方案1】:

    rec.FinalResult() 仅用于文件末尾,如documentation 所示。

    返回语音识别结果。与结果相同,但不等待静音 您通常在流的末尾调用它以获得音频的最终位。它 刷新特征管道,因此所有剩余的音频块都得到处理。

    您可能正在寻找将每个结果附加到数组的解决方案。然后,您可以将其打印出来或附加到文件中。

    results = []
    subs = []
    while True:
       data = process.stdout.read(4000)
       if len(data) == 0:
           break
       if rec.AcceptWaveform(data):
           results.append(rec.Result())
    results.append(rec.FinalResult())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 2015-05-19
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多