正在等待语音服务器回应,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
總結
以上是生活随笔為你收集整理的正在等待语音服务器回应,Python如何突破正在等待服务器响应的阻塞生成器?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java虚拟机组成详解
- 下一篇: armbian nginx 部署博客_通