正在等待语音服务器回应,Python如何突破正在等待服务器响应的阻塞生成器?

我想添加一个错误处理程序,它可以在出现internet连接问题时停止转录过程。我创建了一个连接监视器线程,每隔几秒钟检查一次internet连接,并将设置一个标志isConnectionError = True。在

我设法停止音频录制生成器进程,但无法停止另一个阻止并等待服务器发送响应消息的生成器进程:def listen_print_loop(responses):

"""Iterates through server responses and prints them.

The responses passed is a generator that will block until a response

is provided by the server.

Each response may contain multiple results, and each result may contain

multiple alternatives; for details, see . Here we

print only the transcription for the top alternative of the top result.

In this case, responses are provided for interim results as well. If the

response is an interim one, print a line feed at the end of it, to allow

the next result to overwrite it, until the response is a final one. For the

final one, print a newline to preserve the finalized transcription.

"""

num_chars_printed = 0

for response in responses:

if not response.results:

continue

# The `results` list is consecutive. For streaming, we only care about

# the first result being considered, since once it's `is_final`, it

# moves on to considering the next utterance.

result = response.results[0]

if not result.alternatives:

continue

# Display the transcription of the top alternative.

transcript = result.alternatives[0].transcript

# Display interim results, but with a carriage return at the end of the

# line, so subsequent lines will overwrite them.

#

# If the previous result was longer than this one, we need to print

# some extra spaces to overwrite the previous result

overwrite_chars = ' ' * (num_chars_printed - len(transcript))

if not result.is_final:

sys.stdout.write(transcript + overwrite_chars + '\r')

sys.stdout.flush()

num_chars_printed = len(transcript)

else:

print(transcript + overwrite_chars)

# Exit recognition if any of the transcribed phrases could be

# one of our keywords.

if re.search(r'\b(exit|quit)\b', transcript, re.I):

print('Exiting..')

break

num_chars_printed = 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java9个异常处理的最佳实践

在本文中,作者介绍了9个处理异常的最佳方法与实践,以举例与代码展示结合的方式,让开发者更好的理解这9种方式,并指导读者在不同情况下选择不同的异常处理方式。 以下为译文: Java中的异常处理不是一个简单的话题。初学…

formidable ajax上传,nodejs+express+ajax实现图片上传及显示

图片上传:页面aja中比需抖接朋功要朋插x写法var data new FormData();var files $("#idFile")[0].files;if(files){data.append("file", files[0]);data.append("CompanyPicAddress","");data.append("CompanyNameC…

小白零基础怎么学习Java?不要慌

近年来,Java视频逐渐取代了“书籍”的作用,许多初学者已经将视频视为最重要的学习方式。然而,通过对java自学的长期观察和研究,我们发现书籍和视频都有自己的作用。阅读和观看视频对于Java学习者来说是不可或缺的。但是&#xff0…

服务器的虚拟内存怎么调,服务器的虚拟内存怎么调才好

服务器的虚拟内存怎么调才好 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。开启弹性云服务器的虚拟内存后,会导致硬盘…

Java小白零基础学习如何突破自己的方法

有很多Java程序员在学习之初经常对如何学习感到困惑。本文将分析如何学习Java编程,并相信它可以帮助处于混乱状态的初学者。 I.培养兴趣 兴趣是可以让你继续前进的动力。如果你只是把这个程序写成谋生手段,那么你将会非常疲惫,更关心这个行…

修改epo服务器 gps,epo

EPO是促红细胞生成素(Erythropoietin)的英文简称。人体中的促红细胞生成素是由肾皮质肾小管周围间质细胞和肝脏分泌的一种激素样物质,能够促进红细胞生成。服用促红细胞生成素可以使患肾病贫血的病人增加血流比溶度(即增加血液中红细胞百分比)。人体缺氧时&#xff…

ug使用服务器系统,ug服务器设置教程视频

ug服务器设置教程视频 内容精选换一换本教程旨在演示使用GDS(General Data Service)工具将远端服务器上的数据导入GaussDB(DWS)中的办法,帮助您学习如何通过GDS进行数据导入的方法。在本教程中,您将:生成本教程需要使用的CSV格式的数据源文件…

目前Java编程语言最流行的7个框架,你了解多少?

小编有看到过很多文章写Java快要被取代了,但到目前为止Java软件开发也一直坚持主导地位。毫无疑问,Java是目前最流行的编程语言之一,小编今天总结了2018年流行的框架,相信2019年也不会让我们失望。 1,SpringMVC 在中国…

小白零基础学习Java开发入门教程奉上,希望对你有所帮助!

“持久和新”是编程语言方面对Java的适当评估。 想要进入互联网行业,想转向编程,Java无疑是一个非常普遍的选择。 但是,Java毕竟是一种编程语言,并且仍然存在一些技术障碍。如果你想开始,有一些困难,特别…

JAVA构架之并发编程的一些总结

所谓并发编程是指在一台处理器上"同时"处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 一、程序与进程 程序是一组有序指令的集合,是一种静态的概念。进程是程序的一次执行,属于一种动态的概念。在多道程序环境…

Java技术学习心得

1. 学习之路,不走弯路,就是捷径 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。所有的人都期盼成功,但是并不是每个人都会为走向 成功全力以赴。人们在渴望成功的同时,也渴望能…

做到年薪50W是如何学习Java架构技术的?

工作年时间长,经验比较丰富 他们的共同特点是:10 年以上的工作经验,在大公司当过螺丝钉,也在创业公司做过技术 leader,有过一两段不算成功的创业经历。 这样的程序员无论是去 BAT 还是去创业公司,都能拿到…

Java程序员该如何学习才能成长为一名优秀的架构师

Java架构师,首先要是一个Java程序员,熟练掌握使用各种框架,并知道它们实现的原理,Java虚拟机原理、调优,懂得JVM能让你写出性能更好的代码,池技术,什么对象池,怎么解决并发量、连接池…

java程序员应该掌握的技术才算得上熟练Java开发

1.语法:Java程序员必须熟悉语法。编写代码时,IDE编辑器应该能够根据错误消息报告行错误,并知道什么样的语法错误并知道任何更正。 2,命令:必须熟悉JDK带来的一些常用命令和常用选项,该命令至少需要熟悉&am…

2019年Java初级和高级部分的技术面试

事实上,并不是我故意想成为一个困难的候选人。毕竟,在我加入这份工作后,我是一名同事,但面试官的角色是,如果高级面试官一般都是一样的话。 如果你在这里写,我担心一些想面试的朋友会害怕。如果他们有很强…

2019年Java编程开发值得学习的10大技术

01 Gradle Java世界中主要有三大构建工具:Ant、Maven和Gradle。经过几年的发展,Ant几乎销声匿迹,还剩Maven和Gradle两种,maven是我目前工作中用的版本管理工具。maven现在已经是行业标准,Gradle算是后起之秀&#xff…

Java编程学习中必须掌握的13个核心技术

1. JDBC(Java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外JDCB对数据库的访问也具有平台无关性。 2. JNDI(Java Name and Directory Interface): …

让你脱胎成技术大神的JAVA开发技巧

开发过程中,那些被称为“666”的大神,领先你的,往往也只有几个快捷键的距离。一些简单的技巧和开发习惯,往往能让你在开发过程中事半功倍。 避免重复创建对象 为什么? 更少的对象会需要更少的垃圾回收 使用的空间越…

Java大牛分享的面试知识点

1.基本部分 无论使用哪种编程语言,基础始终是您不能忽视的部分。以下是经常出现的十点,当然最好熟悉。 使用length属性获取数组的长度,public,private,protected,friendly。 计算2 * 8的最有效方法是等于…

看Java大牛是如何高效学习的?你掌握好这些了吗?

1. 能够认清自己 一个技术专家,年龄不是那么可怕,可怕的是你不符合他们的年龄技术深度。当你把你的工作换成一个刚刚毕业的人,你很快就会被淘汰。所以,你必须选择你感兴趣的方向,因为只有这样,你才有兴趣深…