google助手api grpc绑定
google-assistant-grpc的Python项目详细描述
此包包含为Google Assistant Service生成的Python绑定。 它是Google Assistant SDK的一部分。
这个包应该与支持gRPC和Python的posix平台兼容。
安装
您可以使用pip进行安装。
pip install --upgrade google-assistant-grpc
用法
使用google.assistant.embedded.v1alpha1.embedded_assistant_pb2_grpc初始化GRPC存根。:
import google.assistant.embedded.v1alpha1.embedded_assistant_pb2_grpc assistant = embedded_assistant_pb2.EmbeddedAssistantStub(channel)
调用Assist流方法。它接受AssistRequest的生成器并返回AssistResponse的生成器。
assist_responses_generator = assistant.Assist(assist_requests_generator) start_acquiring_audio()
发送带有音频配置参数的AssistRequest消息,然后是包含助手请求音频数据的多个传出AssistRequest消息。
import google.assistant.embedded.v1alpha1.embedded_assistant_pb2 def generate_assist_requests(): yield embedded_assistant_pb2.AssistConfig( audio_in_config=embedded_assistant_pb2.AudioInConfig( encoding='LINEAR16', sample_rate_hertz=16000, ), audio_out_config=embedded_assistant_pb2.AudioOutConfig( encoding='LINEAR16', sample_rate_hertz=16000, ), device_config=embedded_assistant_pb2.DeviceConfig( device_id=device_id, device_model_id=device_model_id, ) ) for data in acquire_audio_data(): yield embedded_assistant_pb2.AssistRequest(audio_in=data)
处理AssistResponse消息的传入流:
- 当收到AssistResponse且EventType消息设置为END_OF_UTTERANCE时停止录制。
- 从SpeechRecognitionResult字段获取用户查询的转录。
- 从助手的DialogStateOut字段中获取对话元数据(如补充显示文本)。
- 从AudioOut字段提取助理响应的音频数据。
for assist_response in assist_response_generator: if resp.event_type == END_OF_UTTERANCE: stop_acquiring_audio() if resp.speech_results: print(' '.join(r.transcript for r in resp.speech_results) if resp.dialog_state_out.supplemental_display_text: print(resp.dialog_state_out.supplemental_display_text) if len(resp.audio_out.audio_data) > 0: playback_audio_data(resp.audio_out.audio_data)
对于维护人员
有关 python包本身的开发、维护和发布。
许可证
版权所有(c)2017 Google Inc.
由一个或多个贡献者授权给apache软件基金会(asf) 许可协议。请参阅随本工作一起分发的通知文件 有关版权所有权的其他信息。ASF授权这个 根据apache许可证2.0版(“许可证”)向您提交文件;您不能 除非符合许可证,否则请使用此文件。你可以得到一份 在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发的是按“原样”分发的,而不是 明示或默示的任何形式的保证或条件。见 管理以下权限和限制的特定语言的许可证 执照。