Google Assistant Library

<ph type="x-smartling-placeholder">

google.assistant.library 软件包。

google.assistant.library.Assistant(credentials, device_model_id)

Google 助理库的客户端。

为 Google 助理提供基本控制功能和生命周期处理。最佳做法是将 Google 助理用作 ContextManager

with Assistant(credentials, device_model_id) as assistant:

这样,底层原生实现便可正确处理内存管理。

调用 start() 后, Google 助理会生成事件流, 指明 Google 助理当前所处的状态,例如:

ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
    {'text': 'what time is it'}
ON_RESPONDING_STARTED:
    {'is_error_response': False}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
    {'with_follow_on_turn': False}

如需详细了解所有事件及其参数,请参阅 EventType

词汇表:

  • 启动指令:Google 助理在未静音时会监听的短语:

    "OK Google" OR "Hey Google"
    
  • Turn:用户发出单个请求后,Google 助理会做出响应。

  • 对话:一个或多个对话回合,最终会得到 Google 助理提供的所需结果:

    "What time is it?" -> "The time is 6:24 PM" OR
    "Set a timer" -> "Okay, for how long?" ->
    "5 minutes" -> "Sure, 5 minutes, starting now!"
    
参数:
  • credentials (google.oauth2.credentials.Credentials) - 用户的 Google OAuth2 凭据。
  • device_model_idstr)- 您在 Google 上为项目注册的 device_model_id。此值不得为空字符串。
引发:

ValueError - 如果 device_model_id 保留为 None 或为空。

device_id

返回 Google 助理生成的设备 ID。

在使用 Google 设备操作等服务时,此值会向服务器标识您的设备。此属性仅在以下时间后填充: 已调用 start()

返回:设备 ID 一次 start()已 否则为空字符串。
返回值类型:str
send_text_query查询

|query| 发送给 Google 助理,就像是用户说出该查询一样。

这与用户说出热词并发出询问或说出对后续询问的回答的行为相同。

参数:querystr)- 要发送给 Google 助理的文本查询。
set_mic_mute(is_muted)

停止 Google 助理监听启动指令。

允许停用 Google 助理监听启动指令。 这类似于 Google Home 背面的隐私权按钮。

如果 Google 助理尚未启动,此方法将不执行任何操作。

参数:is_muted布尔值)- 如果为 true,则停止 Google 助理监听;如果为 false,则允许 Google 助理重新开始监听。
start()

启动 Google 助理,包括监听启动指令。

start() 发生后, Google 助理会开始处理来自 “default”ALSA 音频来源,监听启动指令。这个 还会启动 Google 助理提供的其他服务,例如 计时器/闹钟此方法只能调用一次。调用后,Google 助理将继续运行,直到调用 __exit__

返回:用于通知 Google 助理状态变化的一组事件。
返回值类型:google.assistant.event.IterableEventQueue
start_conversation()

手动与 Google 助理发起新对话。

开始录制用户的语音并将其发送给 Google,类似于 Google 助理听到唤醒字词时所发生的情况。

如果 Google 助理未启动或已经启动,此方法是空操作 已静音。

stop_conversation()

停止与 Google 助理的任何正在进行的对话。

Google 助理可能会监听用户的询问或做出回应。如果 没有正在进行的对话,这是空操作。

class google.assistant.library.event.AlertEvent(event_type, args, **_)

扩展事件以添加对“alert_type”的解析。

google.assistant.library.event.AlertType

提醒类型。

适用于 ON_ALERT_STARTEDON_ALERT_FINISHED 事件。

ALARM = 0

设为绝对时间的活动,例如“周一凌晨 3 点”

TIMER = 1

设置为相对时间的事件,例如“30 秒后”

class google.assistant.library.event.DeviceActionEvent(event_type, args, **kwargs)

扩展了 Event,以添加“actions”属性。

actions

用于为当前设备生成要执行的命令的生成器。

class google.assistant.library.event.Event(event_type, args, **_)

由 Google 助理生成的事件。

type

EventType - 生成的事件类型。

args

dict - 与此事件关联的参数键值对。

static New(event_typeargs**kwargs)

必要时,请使用专用 Event 类创建新事件。

参数:
  • event_type (int) - 与事件中的事件对应的数字 ID google.assistant.event.EventType.
  • args (dict) – 与此事件关联的参数键值对。
  • kwargs字典)- 特定于 EventType 的 Event 类的特殊化的实参键值对。
google.assistant.library.event.EventType

事件类型。

ON_ALERT_FINISHED = 11

表示 alert_type 的提醒已响铃完毕。

参数:alert_typeAlertType)- 表示刚刚结束的提醒类型的枚举 ID。
ON_ALERT_STARTED = 10

表示警报已开始播放。

在收到具有相同 alert_typeON_ALERT_FINISHED 之前,此提醒将持续显示。只能添加一个提醒 在任何给定时间都处于有效状态

参数:alert_typeAlertType)- 表示当前 提醒类型。
ON_ASSISTANT_ERROR = 12

指示 Google 助理库是否出现错误。

参数:is_fatal (bool) - 如果为 True,则 Google 助理无法恢复 并且应该重启
ON_CONVERSATION_TURN_FINISHED = 9

Google 助理已完成当前转弯。

这包括处理用户的查询和说出 完整响应(如果有)。

参数:with_follow_on_turn (bool) – 如果值为 True,则表示 Google 助理期望获得 用户的后续互动麦克风将 重新打开,以允许用户回答后续问题。
ON_CONVERSATION_TURN_STARTED = 1

表示新转弯已开始。

Google 助理目前正在聆听,正在等待用户 查询。这可能是由于 Google 助理听到启动指令或有人调用 start_conversation() 而导致的。

ON_CONVERSATION_TURN_TIMEOUT = 2

Google 助理在等待可辨别的询问时超时。

这可能是由于热词误触发或 Google 助理无法理解用户所说的内容所致。

ON_DEVICE_ACTION = 14

指明向设备分派了设备操作请求。

如果设备支持的特征触发了任何设备语法,系统就会调度此 intent。此事件类型具有一个特殊的“actions”属性,该属性将返回迭代器或设备操作命令及其关联的参数(如果适用)。

参数:dict - 设备 Action 请求的已解码 JSON 载荷。
ON_END_OF_UTTERANCE = 3

Google 助理已停止监听用户询问。

Google 助理可能尚未完全理解用户所说的内容,但已停止监听更多音频数据。

ON_MEDIA_STATE_ERROR = 20

表示播放曲目时出错。

如果没有剩余内容可播放,内置媒体播放器会尝试跳转到下一个曲目或返回 ON_MEDIA_STATE_IDLE

ON_MEDIA_STATE_IDLE = 16

表示没有任何内容正在播放,也没有任何内容加入队列以供播放。

此事件会在 Google 助理库的内置媒体播放器启动时以及每当播放器因用户停止或暂停媒体且流式传输超时而进入空闲状态时,通过该播放器广播新闻/播客。

ON_MEDIA_TRACK_LOAD = 17

表示正在加载曲目,但尚未开始播放。

如果加载新的元数据,系统可能会多次分派此事件。 异步执行。通常接下来会发生 ON_MEDIA_TRACK_PLAY 事件

参数:
  • 元数据字典)-

    已加载曲目的元数据。此时,并非所有字段都会填充 - 如果字段未知,则不会包含。元数据字段包括:

    album(str):曲目所属专辑的名称。 album_art(str):专辑封面的网址。 artist(str):创作此曲目的音乐人。 duration_ms(double):此曲目的时长(以毫秒为单位)。 title(str):曲目的标题。
  • track_typeMediaTrackType)- 加载的轨道的类型。
ON_MEDIA_TRACK_PLAY = 18

表示轨道当前正在输出音频。

仅当我们从一种状态转换到另一种状态时,才会触发此事件, 来源:ON_MEDIA_TRACK_LOADON_MEDIA_TRACK_STOP

参数:
  • 元数据字典)-

    正在播放的曲目的元数据。如果字段未知 则不会被包含在内。元数据字段包括:

    album(str):曲目所属专辑的名称。 album_art(str):专辑封面的网址。 artist(str):创作此曲目的音乐人。 duration_ms(double):此曲目的时长(以毫秒为单位)。 title(str):曲目的标题。
  • position_ms (double) - 当前播放曲目在 从开始算起。如果“metadata.duration_ms”未知(设置为 0),系统不会设置此字段。
  • track_typeMediaTrackType)- 正在播放的曲目的类型。
ON_MEDIA_TRACK_STOP = 19

表示之前正在播放的曲目已停止。

这通常是由用户暂停导致的;曲目可以返回到 ON_MEDIA_TRACK_PLAY 由用户恢复

参数:
  • 元数据字典)-

    已停止的轨道的元数据。如果字段未知,则不会包含。元数据字段包括:

    album(str):曲目所属专辑的名称。 album_art(str):专辑封面的网址。 artist(str):创作此曲目的音乐人。 duration_ms(double):此曲目的时长(以毫秒为单位)。 title(str):曲目的标题。
  • position_ms (double) - 停止轨道中的当前位置 从开始算起。如果“metadata.duration_ms” 未知(设置为 0),将不会设置此字段。
  • track_typeMediaTrackType)- 停止的轨道的类型。
ON_MUTED_CHANGED = 13

指示 Google 助理当前是否正在聆听。

start() 将始终 生成 ON_MUTED_CHANGED 报告初始值。

参数:is_muted (bool) - 如果为 True,则 Google 助理当前未在聆听 并且不会响应用户查询。
ON_NO_RESPONSE = 8

Google 助理已经轮到你了,但是你什么都没说。

ON_RECOGNIZING_SPEECH_FINISHED = 5

Google 助理已确定最终识别出的语音。

参数:textstr)- 用户查询的最终文本解释。
ON_RENDER_RESPONSE = 15

表示 Google 助理有文本输出可用于呈现响应。

参数:
  • type (RenderResponseType) – 要渲染的响应的类型。
  • textstr)- 要针对 RenderResponseType.TEXT 渲染的字符串。
ON_RESPONDING_FINISHED = 7

Google 助理已完成语音回复。

ON_RESPONDING_STARTED = 6

Google 助理已开始通过语音做出回应。

Google 助理会一直回应你,直到 ON_RESPONDING_FINISHED

参数:is_error_responsebool)- 值为 true 表示正在播放本地错误 TTS,否则 Google 助理会使用服务器响应进行响应。
ON_START_FINISHED = 0

Google 助理库已完成启动。

class google.assistant.library.event.IterableEventQueue(timeout=3600)

扩展 queue.Queue 以添加 __iter__ 接口。

offer事件

提供要放入队列中的事件。

如果队列当前已满,事件将被记录,但不会添加。

参数:event事件)- 要尝试添加到队列中的事件。
class google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

扩展事件以添加“状态”的解析。

google.assistant.library.event.MediaTrackType

ON_MEDIA_TRACK_X 事件的轨道类型。

ON_MEDIA_TRACK_LOADON_MEDIA_TRACK_PLAYON_MEDIA_TRACK_STOP 搭配使用

CONTENT = 2

项(新闻/播客)的实际内容。

TTS = 1

与商品相关的 TTS 简介或插页轨道。

class google.assistant.library.event.RenderResponseEvent(event_type, args, **_)

扩展了事件,以添加“response_type”的解析。

google.assistant.library.event.RenderResponseType

要呈现的内容的类型。

ON_RENDER_RESPONSE 搭配使用