我正在使用Pocketsphinx将音频转换为文本。工作正常。现在,我想获取每个单词的时间戳。这是我的代码:

import speech_recognition as sr

r = sr.Recognizer()
framerate = 100
with sr.AudioFile("1.wav") as source:

    audio = r.record(source)

    decoder = r.recognize_sphinx(audio, show_all=False)

    print ([(seg.word, seg.start_frame/framerate)for seg in decoder.seg()])


根据他们的文档,默认帧速率是100。我得到每个单词的开始时间。但是,这是不正确的。差异为2秒,有时超过3秒。

这是已知问题,还是我缺少什么?

最佳答案

我在某处读到速率为1/100,所以在偶然的情况下,我将项目除以1/10而不是1/100,但结果实际上对我的工作还不错。我建议将其除以0.10.01,然后看看能为您提供什么。

因此,对于您的代码,只需尝试以下变量:

framerate = .1


要么

framerate = .01

关于python - pocketsphinx python给出错误的时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43634243/

10-10 06:24