我正在使用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.1
或0.01
,然后看看能为您提供什么。
因此,对于您的代码,只需尝试以下变量:
framerate = .1
要么
framerate = .01
关于python - pocketsphinx python给出错误的时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43634243/