X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=google_assistant.py;h=572b4ccdf25644992f77f66eae800ea9e306ce50;hb=d29fd1c72456b3c81ffeccd7994c5a65c91a81ed;hp=a50003c7eb2a41e8326714ad24e4eccd2ec6cc34;hpb=4faa994d32223c8d560d9dad0ca90a3f7eb10d6a;p=python_utils.git diff --git a/google_assistant.py b/google_assistant.py index a50003c..572b4cc 100644 --- a/google_assistant.py +++ b/google_assistant.py @@ -2,6 +2,7 @@ import logging from typing import NamedTuple +import sys import requests import speech_recognition as sr # type: ignore @@ -45,10 +46,16 @@ audio_url: {self.audio_url}""" def tell_google(cmd: str, *, recognize_speech=True) -> GoogleResponse: + """Alias for ask_google.""" return ask_google(cmd, recognize_speech=recognize_speech) def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse: + """Send a command string to Google via the google_assistant_bridge as the + user google_assistant_username and return the response. If recognize_speech + is True, perform speech recognition on the audio response from Google so as + to translate it into text (best effort, YMMV). + """ logging.debug(f"Asking google: '{cmd}'") payload = { "command": cmd, @@ -88,13 +95,19 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse: logger.exception(e) logger.warning('Unable to parse Google assistant\'s response.') audio_transcription = None + return GoogleResponse( + success=success, + response=response, + audio_url=audio, + audio_transcription=audio_transcription, + ) else: - logger.error( - f'HTTP request to {url} with {payload} failed; code {r.status_code}' + message = f'HTTP request to {url} with {payload} failed; code {r.status_code}' + logger.error(message) + return GoogleResponse( + success=False, + response=message, + audio_url=audio, + audio_transcription=audio_transcription, ) - return GoogleResponse( - success=success, - response=response, - audio_url=audio, - audio_transcription=audio_transcription, - ) + sys.exit(-1)