在流式识别 python 代码中使用生成器

Working with generators in a streaming recognition python code

提问人:Pedro Borghi 提问时间:10/26/2023 更新时间:10/26/2023 访问量:24

问:

我很难理解与块生成器和转录过程相关的 python 脚本摘录的动态。

以下是完整代码:https://cloud.google.com/speech-to-text/docs/samples/speech-transcribe-streaming-mic#code-sample

而且我没有得到脚本的这一部分:

    with MicrophoneStream(RATE, CHUNK) as stream:
        audio_generator = stream.generator()
        requests = (
            speech.StreamingRecognizeRequest(audio_content=content)
            for content in audio_generator
        )

        responses = client.streaming_recognize(streaming_config, requests)

        # Now, put the transcription responses to use.
        listen_print_loop(responses)

我可以管理“audio_generator”变量接收一种函数返回(来自麦克风的音频流块)。但随后,“request”变量会得到多个“语音”。StreamingRecognizeRequest“对象,这些对象被馈送到”client.streaming_recognize“请求中。然后,在“listen_print_loop”中处理“responses”对象以显示文本结果。但是,我不明白为什么脚本能够无限循环,以及它如何以说“退出”结束。

我尝试搜索线程解释(由于队列使用)和函数返回的“yield”,但我不明白这部分是如何工作的。

python 语音识别 音频流 google-cloud-speech

评论


答: 暂无答案