Google Assistant Library

google.assistant.library 패키지에서 실행합니다.

클래스 google.assistant.library.Assistant(사용자 인증 정보, device_model_id)

Google 어시스턴트 라이브러리의 클라이언트

Google 어시스턴트의 기본 제어 기능과 수명 주기 처리를 제공합니다. 어시스턴트를 ContextManager로 사용하는 것이 좋습니다.

with Assistant(credentials, device_model_id) as assistant:

이렇게 하면 기본 네이티브 구현이 메모리 관리를 올바르게 처리할 수 있습니다.

start()가 호출되면 어시스턴트는 현재 다음과 같은 다양한 상태를 전달하는 이벤트 스트림을 생성합니다.

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를 참고하세요.

용어:

  • 핫워드: 음소거되지 않을 때 어시스턴트가 듣는 문구

    "OK Google" OR "Hey 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_id (str) - Google을 통해 프로젝트에 등록된 device_model_id입니다. 이 문자열은 비워 둘 수 없습니다.
발생 오류:

ValueError: device_model_id이 None으로 표시되거나 비어 있는 경우

device_id

어시스턴트가 생성한 기기 ID를 반환합니다.

이 값은 Google Device Actions와 같은 서비스를 사용할 때 서버에서 기기를 식별합니다. 이 속성은 start()가 호출된 후에만 채워집니다.

반환:한 번 start()가 호출되면 기기 ID, 빈 문자열
반환 유형:문자열
send_text_query(쿼리)

마치 사용자가 말하는 것처럼 |query|를 어시스턴트로 전송합니다.

이는 핫워드를 말하고 쿼리를 수행하거나 후속 쿼리에 답변을 말하는 것과 같습니다.

매개변수:query (str) – 어시스턴트로 전송할 텍스트 쿼리입니다.
set_mic_mute(is_muted)

어시스턴트가 핫워드를 듣지 못하게 합니다.

어시스턴트가 핫워드를 듣지 못하도록 사용 중지합니다. Google Home 뒷면에 있는 개인 정보 보호 버튼과 비슷한 기능을 제공합니다.

어시스턴트가 아직 시작되지 않은 경우 이 메서드는 작동하지 않습니다.

매개변수:is_muted (bool): True로 설정하면 어시스턴트가 듣지 못하게 하고 False로 설정하면 다시 시작할 수 있습니다.
start()

핫워드 듣기를 포함하여 어시스턴트를 시작합니다.

start()가 호출되면 어시스턴트가 '기본' ALSA 오디오 소스의 데이터를 처리하고 핫워드를 수신 대기합니다. 이렇게 하면 어시스턴트에서 제공하는 다른 서비스(예: 타이머/알람)도 시작됩니다. 이 메서드는 한 번만 호출할 수 있습니다. 호출하면 __exit__가 호출될 때까지 어시스턴트가 계속 실행됩니다.

반환:어시스턴트 상태 변경을 알리는 이벤트 큐
반환 유형:google.assistant.event.IterableEventQueue 클래스의 생성자
start_conversation()

어시스턴트와 새 대화를 수동으로 시작합니다.

사용자의 핫워드를 들을 때처럼 사용자의 음성을 녹음하고 Google에 전송합니다.

이 메서드는 어시스턴트가 시작되지 않았거나 음소거된 경우 작동하지 않습니다.

stop_conversation()

진행 중인 어시스턴트와의 대화를 모두 중지합니다.

어시스턴트가 사용자의 검색어를 듣거나 응답할 수 있습니다. 활성 대화가 없으면 노옵스(no-ops)입니다.

클래스 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초 후'처럼 상대적인 시간으로 설정된 이벤트입니다.

클래스 google.assistant.library.event.DeviceActionEvent(event_type, args, **kwargs)

이벤트를 확장하여 '작업' 속성을 추가합니다.

actions

현재 기기에서 실행할 명령어 생성기입니다.

클래스 google.assistant.library.event.Event(event_type, args, **_)

어시스턴트가 생성한 이벤트

type

EventType – 생성된 이벤트의 유형입니다.

args

dict – 이 이벤트와 연결된 인수 키/값 쌍입니다.

static New(event_type, args, **kwargs)

필요한 경우 특수한 이벤트 클래스를 사용하여 새 이벤트를 만듭니다.

매개변수:
  • event_type (int) – google.assistant.event.EventType의 이벤트에 해당하는 숫자 ID입니다.
  • args (dict) – 이 이벤트와 연결된 인수 키/값 쌍입니다.
  • kwargs (dict) – EventType의 이벤트 클래스 전문화에 사용되는 선택적 인수 키/값 쌍입니다.
google.assistant.library.event.EventType클래스

이벤트 유형입니다.

ON_ALERT_FINISHED = 11

alert_type의 알림음이 완료되었음을 나타냅니다.

매개변수:alert_type (AlertType) - 방금 완료된 알림 유형을 나타내는 Enum ID입니다.
ON_ALERT_STARTED = 10

알림이 울리기 시작했음을 나타냅니다.

이 알림은 alert_type이 동일한 ON_ALERT_FINISHED가 수신될 때까지 계속됩니다. 한 번에 하나의 알림만 활성화해야 합니다.

매개변수:alert_type (AlertType) – 현재 알림 유형을 나타내는 Enum의 ID입니다.
ON_ASSISTANT_ERROR = 12

어시스턴트 라이브러리에 오류가 발생했는지 여부를 나타냅니다.

매개변수:is_치명적인 (bool): True인 경우 어시스턴트를 복구할 수 없으므로 다시 시작해야 합니다.
ON_CONVERSATION_TURN_FINISHED = 9

어시스턴트가 현재 회전을 완료했습니다.

여기에는 사용자의 쿼리를 처리하고 전체 응답(있는 경우)이 모두 포함됩니다.

매개변수:with_follow_on_turn (bool) - 참인 경우 어시스턴트는 사용자의 후속 상호작용을 예상합니다. 사용자가 후속 질문에 답할 수 있도록 마이크가 다시 열립니다.
ON_CONVERSATION_TURN_STARTED = 1

새로운 회전이 시작되었음을 나타냅니다.

어시스턴트는 현재 사용자 쿼리를 기다리는 중입니다. 이는 핫워드가 들리거나 어시스턴트에서 start_conversation()가 호출되었기 때문일 수 있습니다.

ON_CONVERSATION_TURN_TIMEOUT = 2

어시스턴트가 식별할 수 있는 쿼리를 기다리는 시간을 초과했습니다.

이는 핫워드가 잘못 트리거되었거나 어시스턴트가 사용자의 말을 이해하지 못했기 때문일 수 있습니다.

ON_DEVICE_ACTION = 14

Device Action 요청이 기기로 전달되었음을 나타냅니다.

이는 기기에서 지원하는 특성에 대해 기기 문법이 트리거되면 전달됩니다. 이 이벤트 유형에는 반복기 또는 기기 작업 명령어와 연결된 매개변수 (해당하는 경우)를 반환하는 특수한 '작업' 속성이 있습니다.

매개변수:dict – 기기 작업 요청의 디코딩된 JSON 페이로드
ON_END_OF_UTTERANCE = 3

어시스턴트가 사용자 쿼리 듣기를 중지했습니다.

어시스턴트가 사용자가 말한 내용을 파악하지 못했을 수 있지만 더 많은 오디오 데이터 수신을 중단했습니다.

ON_MEDIA_STATE_ERROR = 20

트랙 재생 중에 오류가 발생했음을 나타냅니다.

재생할 미디어가 남아 있지 않으면 내장 미디어 플레이어가 다음 트랙으로 건너뛰려고 하거나 ON_MEDIA_STATE_IDLE로 돌아갑니다.

ON_MEDIA_STATE_IDLE = 16적축

재생 중인 콘텐츠와 대기 중인 콘텐츠가 없음을 나타냅니다.

이 이벤트는 시작 시 뉴스/팟캐스트를 위해 그리고 사용자가 미디어를 중지하거나 일시중지하여 스트림이 타임아웃되어 플레이어가 유휴 상태가 될 때마다 Google 어시스턴트 라이브러리의 내장 미디어 플레이어에서 브로드캐스트됩니다.

ON_MEDIA_TRACK_LOAD = 17

트랙이 로드 중이지만 재생이 시작되지 않았음을 나타냅니다.

새 메타데이터가 비동기식으로 로드되면 이 명령어가 여러 번 전송될 수 있습니다. 일반적으로 이 이벤트 후에 ON_MEDIA_TRACK_PLAY 이벤트가 발생합니다.

매개변수:
  • metadata (dict) –

    로드된 트랙의 메타데이터 이 시간까지 모든 필드가 채워지는 것은 아닙니다. 필드를 알 수 없는 경우에는 포함되지 않습니다. 메타데이터 필드는 다음과 같습니다.

    album(str): 트랙이 속한 앨범의 이름입니다. album_art(str): 앨범 아트의 URL입니다. artist(str): 이 트랙을 만든 아티스트입니다. duration_ms(double): 이 트랙의 길이(밀리초)입니다. title(str): 트랙의 제목입니다.
  • track_type (MediaTrackType) – 로드된 트랙의 유형입니다.
ON_MEDIA_TRACK_PLAY = 18

트랙에서 현재 오디오를 출력 중임을 나타냅니다.

이는 ON_MEDIA_TRACK_LOAD 또는 ON_MEDIA_TRACK_STOP와 같이 한 상태에서 다른 상태로 전환할 때만 트리거됩니다.

매개변수:
  • metadata (dict) –

    재생 중인 트랙의 메타데이터 알 수 없는 필드는 포함되지 않습니다. 메타데이터 필드는 다음과 같습니다.

    album(str): 트랙이 속한 앨범의 이름입니다. album_art(str): 앨범 아트의 URL입니다. artist(str): 이 트랙을 만든 아티스트입니다. duration_ms(double): 이 트랙의 길이(밀리초)입니다. title(str): 트랙의 제목입니다.
  • position_ms(double) – 시작 부분부터 재생 트랙의 현재 위치(밀리초)입니다. 'metadata.duration_ms'를 알 수 없는 경우 (0으로 설정) 이 필드가 설정되지 않습니다.
  • track_type (MediaTrackType) - 재생 중인 트랙의 유형입니다.
ON_MEDIA_TRACK_STOP = 19

이전에 재생 중인 트랙이 중지되었음을 나타냅니다.

이는 일반적으로 사용자가 일시중지한 결과입니다. 트랙이 사용자가 다시 시작하는 경우 ON_MEDIA_TRACK_PLAY로 반환될 수 있습니다.

매개변수:
  • metadata (dict) –

    중지된 트랙의 메타데이터 알 수 없는 필드는 포함되지 않습니다. 메타데이터 필드는 다음과 같습니다.

    album(str): 트랙이 속한 앨범의 이름입니다. album_art(str): 앨범 아트의 URL입니다. artist(str): 이 트랙을 만든 아티스트입니다. duration_ms(double): 이 트랙의 길이(밀리초)입니다. title(str): 트랙의 제목입니다.
  • position_ms(double) – 중지된 트랙의 현재 위치(시작 이후 밀리초 단위로 표시) 'metadata.duration_ms'를 알 수 없는 경우 (0으로 설정) 이 필드가 설정되지 않습니다.
  • track_type (MediaTrackType) - 트랙의 유형이 중지되었습니다.
ON_MUTED_CHANGED = 13

어시스턴트가 현재 듣고 있는지 나타냅니다.

start()는 항상 초깃값을 보고하는 ON_MUTED_CHANGED를 생성합니다.

매개변수:is_muted (bool) – True인 경우 어시스턴트가 현재 핫워드를 듣지 않고 사용자 쿼리에 응답하지 않습니다.
ON_NO_RESPONSE = 8

어시스턴트가 차례를 완료했지만 할 말이 없습니다.

ON_RECOGNIZING_SPEECH_FINISHED = 5

어시스턴트가 마지막으로 인식된 음성을 확인했습니다.

매개변수:text (str) - 사용자 검색어를 최종적으로 해석한 텍스트
ON_RENDER_RESPONSE = 15

어시스턴트가 응답을 위해 렌더링할 텍스트 출력을 가지고 있음을 나타냅니다.

매개변수:
  • type (RenderResponseType) - 렌더링할 응답 유형입니다.
  • text (str) – RenderResponseType.TEXT에 대해 렌더링할 문자열입니다.
ON_RESPONDING_FINISHED = 7

어시스턴트가 음성으로 응답했습니다.

ON_RESPONDING_STARTED = 6

어시스턴트가 음성으로 응답하기 시작합니다.

어시스턴트는 ON_RESPONDING_FINISHED를 수신할 때까지 응답합니다.

매개변수:is_error_response (bool) - 참은 로컬 오류 TTS가 재생되고 있음을 의미합니다. 그렇지 않으면 어시스턴트가 서버 응답으로 응답합니다.
ON_START_FINISHED = 0

어시스턴트 라이브러리 시작이 완료되었습니다.

클래스 google.assistant.library.event.IterableEventQueue(timeout=3600)

queue.Queue를 확장하여 __iter__ 인터페이스를 추가합니다.

offer(이벤트)

대기열에 추가할 이벤트를 제공하세요.

현재 대기열이 가득 차면 이벤트가 기록되지만 추가되지는 않습니다.

매개변수:event (Event) – 대기열에 추가하려는 이벤트입니다.
클래스 google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

이벤트를 확장하여 '상태' 파싱을 추가합니다.

google.assistant.library.event.MediaTrackType클래스

ON_MEDIA_TRACK_X 이벤트에 대한 트랙 유형입니다.

ON_MEDIA_TRACK_LOAD, ON_MEDIA_TRACK_PLAY, ON_MEDIA_TRACK_STOP와 함께 사용

CONTENT = 2

항목의 실제 콘텐츠 (뉴스/팟캐스트).

TTS = 1

항목과 관련된 TTS 소개 또는 전면 광고 트랙입니다.

클래스 google.assistant.library.event.RenderResponseEvent(event_type, args, **_)

이벤트를 확장하여 ‘response_type’ 파싱을 추가합니다.

google.assistant.library.event.RenderResponseType클래스

렌더링할 콘텐츠 유형입니다.

ON_RENDER_RESPONSE와 함께 사용됨