Page 512 - 3-2
P. 512

make_channel('speech.googleapis.com', 443))
                # For streaming audio from the microphone, there are three threads.

                # First, a thread that collects audio data as it comes in
                with record_audio(RATE, CHUNK) as buffered_audio_data:

                    # Second, a thread that sends requests with that data
                    requests = request_stream(buffered_audio_data, RATE)

                    # Third, a thread that listens for transcription responses
                    recognize_stream = service.StreamingRecognize(

                        requests, DEADLINE_SECS)



                    # Exit things cleanly on interrupt
                    signal.signal(signal.SIGINT, lambda *_: recognize_stream.cancel())



                    # Now, put the transcription responses to use.

                    try:
                        listen_print_loop(recognize_stream)

                        recognize_stream.cancel()



                    except grpc.RpcError as e:
                        code = e.code()

                        pass
                        # CANCELLED is caused by the interrupt handler, which is expected.

                        if code is not code.CANCELLED:
                            raise






            if __name__ == '__main__':
                main()























                                                         - 512 -
   507   508   509   510   511   512   513   514   515   516   517