python-3.x - 如何使用python3在srt中转换pocketsphinx响应数据
问题描述
我需要从音频文件中提取语音。使用pocketsphinx,我能够获得音频中的单词列表及其起始帧和结束帧。
现在我想将从 pocketsphinx 收到的响应转换为“SRT”文件格式。
我试图通过根据开始帧和结束帧计算秒数来实现这一点。但是计算并没有给出正确的响应。
以下是我正在处理的示例代码:-
from pocketsphinx.pocketsphinx import *
config = Decoder.default_config()
config.set_string('-hmm', MODELDIR + "/cmusphinx-en-us-8khz-5.2")
config.set_string('-lm', MODELDIR + "/en-70k-0.2-pruned.lm")
config.set_string('-dict', path.join(MODELDIR, 'cmudict-en-us.dict'))
decoder = Decoder(config)
#
stream = open('Welcome.wav', 'rb')
decoder.start_utt()
while True:
buf = stream.read(1024)
if buf:
decoder.process_raw(buf, False, False)
else:
break
decoder.end_utt()
text = ""
for seg in decoder.seg():
print(seg)
text = text + '\n' + seg.word + " " + str(seg.start_frame) + " " + str(seg.end_frame) + " " + str(seg.prob)
回复 :-
<s> 3699 3702 -27
thank 3703 3731 -697
you 3732 3748 -37
for(2) 3749 3758 -21404
choosing 3759 3810 -11526
be 3811 3826 -38920
an(2) 3827 3839 -54884
上面我得到了这个词,开始帧,结束帧,概率。现在我需要从上面的响应中生成“SRT”文件格式。请为此提供任何解决方案。
解决方案
推荐阅读
- python-3.x - TypeError:'NoneType' 对象在 opencv 中不可迭代
- javascript - 反应分享到社交网络预览图像?
- css - 为什么 Flexbox 在嵌套时不尊重宽度?
- django - 来自 github 的 Heroku Django 设置 install_requires
- docker - 具有进程隔离的 Windows 容器内的物理内存限制
- c - scanf 中 *variable 的用法以及我们为什么使用它?
- javascript - 如何获取特定 Discord 角色的名称?
- sql - 寻找出现更严重疾病的患者
- android - 暂停正在运行的协程
- spring - JavaConfig 中定义的 bean 的 NoSuchBeanDefinitionException