Sigue las instrucciones que se indican en cada sección a continuación para integrar el Asistente de Google en tu proyecto.
Vinculaciones de gRPC
El servicio del Asistente de Google se basa en gRPC, una alta de RPC de código abierto y rendimiento. Este marco es adecuado para transmisión de audio bidireccional.
Python
Si usas Python, comienza con esta guía.
C++
Consulta nuestra muestra de C++. en GitHub.
Node.js
Consulta nuestra muestra de Node.js. en GitHub.
Android Things
¿Te interesan los dispositivos incorporados? Descubre el SDK de Asistente sample para Android Things.
Otros idiomas
- Clona el repositorio de googleapis a fin de obtener las definiciones de la interfaz del búfer de protocolo para la API de servicio del Asistente de Google.
- Sigue la documentación de gRPC para generar gRPC. vinculaciones para el lenguaje que elijas
- Sigue los pasos que se indican en las siguientes secciones.
Autoriza y autentica tu Cuenta de Google para trabajar con el Asistente
El próximo paso es autorizar tu dispositivo para que se comunique con Asistente de Google usando tu Cuenta de Google.
Cómo obtener tokens de OAuth con el permiso del SDK de Assistant
El SDK de Assistant usa tokens de acceso de OAuth 2.0 para autorizar a tu dispositivo a hacer lo siguiente: a conectarse con Asistente.
Durante el prototipado, puedes usar la herramienta de autorización para generar OAuth2.0 con facilidad
las credenciales del archivo client_secret_<client-id>.json
que se generan cuando
registrando el modelo de tu dispositivo.
Haz lo siguiente para generar las credenciales:
Usa un entorno virtual de Python para aislar la herramienta de autorización y sus dependencias de los paquetes de Python del sistema.
sudo apt-get update
sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate
Instala la herramienta de autorización:
python -m pip install --upgrade google-auth-oauthlib[tool]
Ejecuta la herramienta. Quita la marca
--headless
si lo ejecutas desde una terminal en el dispositivo (no una sesión SSH):google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
Cuando esté todo listo para integrar la autorización como parte del proceso de tu dispositivo, lee nuestras guías sobre cómo usar OAuth 2.0 para acceder a las APIs de Google cómo obtener, conservar y usar tokens de acceso OAuth para permitir que tus para que se comunique con la API de Assistant.
Cuando trabajes en estas guías, usa lo siguiente:
- Alcance de OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Flujos de OAuth admitidos:
- (Recomendado) Apps instaladas
- Aplicaciones de servidor web
Consulta las prácticas recomendadas sobre privacidad y seguridad. para obtener recomendaciones sobre cómo proteger tu dispositivo.
Autentica tu conexión gRPC con tokens de OAuth
Por último, consulta cómo usar la autenticación basada en tokens autenticación con Google para autenticar la conexión gRPC con la API de Assistant.
Registra tu dispositivo
Registra el modelo de dispositivo y la instancia de forma manual. o con la herramienta de registro (disponible en Python).
Cómo implementar un diálogo de conversación básico con Asistente
- Implementa un cliente gRPC de transmisión bidireccional. para la API de Google Assistant Service.
- Espera a que el usuario active una solicitud nueva (p. ej., espera una interrupción de GPIO). al presionar un botón).
Envía un
AssistRequest
con el campoconfig
configurado (consultaAssistConfig
). Asegúrate de que el campoconfig
contenga lo siguiente:- El campo
audio_in_config
, que especifica cómo procesar la Datos deaudio_in
que se proporcionarán en solicitudes posteriores (consultaAudioInConfig
). - El campo
audio_out_config
, que especifica el formato deseado para el que se usará cuando muestre mensajesaudio_out
(consultaAudioOutConfig
). - El campo
device_config
, que identifica la dispositivo registrado con el Asistente (consultaDeviceConfig
). - El campo
dialog_state_in
, que contiene ellanguage_code
asociada con la solicitud (consultaDialogStateIn
).
- El campo
Inicia la grabación.
Enviar varias
AssistRequest
salientes con datos de audio de la consulta de voz en el campoaudio_in
.Controlar
AssistResponse
entrantes mensajes nuevos.Extraer metadatos de conversaciones de
AssistResponse
mensaje. Por ejemplo, desdedialog_state_out
, obténconversation_state
. yvolume_percentage
(consultaDialogStateOut
).Detener la grabación cuando recibas un
AssistResponse
con unevent_type
deEND_OF_UTTERANCE
.Reproducir audio de la respuesta de Asistente con datos de audio provenientes de
audio_out
.Toma el archivo
conversation_state
que extrajiste antes y cópialo. a laDialogStateIn
en elAssistConfig
de las siguientesAssistRequest
.
De este modo, ya puedes enviar tus primeras solicitudes a Google a través de tu dispositivo.
Cómo extender el diálogo de conversación con Acciones del dispositivo
Extiende el diálogo básico de la conversación anterior para activar el hardware único capacidades de un dispositivo:
- En el
AssistResponse
entrante mensajes, extrae el campodevice_action
(consultaDeviceAction
). - Analiza la carga útil de JSON del campo
device_request_json
. Consulta las Device Traits de la una lista de características admitidas. En cada página del esquema de trait, se muestra un ejemplo de EXECUTE solicitud con los comandos del dispositivo y los parámetros que se devuelven en el Carga útil de tipo JSON.
Obtén la transcripción de la solicitud del usuario
Si el dispositivo tiene una pantalla conectada, es posible que quieras usarla para
mostrar la solicitud del usuario. Para obtener esta transcripción, analiza el campo speech_results
en la AssistResponse
mensajes nuevos. Cuando se complete el reconocimiento de voz, esta lista contendrá un elemento
con un stability
establecido en 1.0.
Obtén el texto o la renderización visual de la respuesta de Asistente
Si el dispositivo tiene una pantalla conectada, es posible que quieras usarla para
Mostrar la respuesta de texto sin formato del Asistente a la solicitud del usuario Este texto se encuentra
en la DialogStateOut.supplemental_display_text
.
El Asistente admite respuestas visuales a través de HTML5 para ciertas consultas (¿Qué
es el clima en Mountain View? o ¿Qué hora es?). Para habilitar esta función, configura
el campo screen_out_config
en AssistConfig
.
La ScreenOutConfig
tiene el campo screen_mode
, que debe establecerse en PLAYING
.
La AssistResponse
los mensajes tendrán configurado el campo screen_out
. Puedes extraer los datos HTML5 (si los hay) de la
data
.
Cómo enviar consultas mediante la entrada de texto
Si tienes una interfaz de texto (por ejemplo, un teclado) conectada al dispositivo,
Configura el campo text_query
en el campo config
(consulta AssistConfig
).
No configures el campo audio_in_config
.
Soluciona problemas
Consulta la sección de solución de problemas. si tienes problemas.