Package google.assistant.embedded.v1alpha1

Índice

EmbeddedAssistant

Servicio que implementa la API de Asistente de Google

Converse

rpc Converse(ConverseRequest) returns (ConverseResponse)

Inicia o continúa una conversación con el servicio de asistente incorporado. Cada llamada realiza un recorrido de ida y vuelta; envía una solicitud de audio al servicio y recibe la respuesta de audio. Usa una transmisión bidireccional para recibir resultados, como el evento END_OF_UTTERANCE, mientras envía audio.

Una conversación es una o más conexiones gRPC, cada una de las cuales consta de varias solicitudes y respuestas transmitidas. Por ejemplo, el usuario dice Agregar a mi lista de compras y el Asistente responde ¿Qué quieres agregar?. La secuencia de solicitudes y respuestas transmitidas en el primer mensaje de gRPC podría ser la siguiente:

  • ConverseRequest.config
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseResponse.event_type.END_OF_UTTERANCE
  • ConverseResponse.result.microphone_mode.DIALOG_FOLLOW_ON
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out

Luego, el usuario dice bagels y el asistente responde "De acuerdo, agregué bagels" a tu lista de compras. Esto se envía como otra llamada de conexión de gRPC al método Converse, nuevamente con solicitudes y respuestas transmitidas, como las siguientes:

  • ConverseRequest.config
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseResponse.event_type.END_OF_UTTERANCE
  • ConverseResponse.result.microphone_mode.CLOSE_MICROPHONE
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out

Aunque no se garantiza el orden preciso de las respuestas, los mensajes secuenciales de ConverseResponse.audio_out siempre contendrán porciones secuenciales de audio.

Autorización

Requiere el siguiente alcance de OAuth:

  • https://www.googleapis.com/auth/assistant-sdk-prototype

Para obtener más información, consulta la Guía de Auth.

AudioInConfig

Especifica cómo procesar los datos de audio_in que se proporcionarán en solicitudes posteriores. Si deseas obtener la configuración recomendada, consulta las prácticas recomendadas de la API de gRPC del Asistente de Google.

Campos
encoding

Encoding

Obligatorio: Es la codificación de los datos de audio enviados en todos los mensajes audio_in.

sample_rate_hertz

int32

Obligatorio: Es la tasa de muestreo (en hercios) de los datos de audio enviados en todos los mensajes de audio_in. Los valores válidos van de 16,000 a 24,000, pero 16,000 es el valor óptimo. Para obtener los mejores resultados, establece la tasa de muestreo de la fuente de audio en 16,000 Hz. Si esto no es posible, usa la tasa de muestreo nativa de la fuente de audio (en lugar de volver a muestrear).

Codificación

Es la codificación de audio de los datos enviados en el mensaje de audio. El audio debe ser de un canal (mono). El único idioma admitido es "en-US".

Enumeradores
ENCODING_UNSPECIFIED No se especifica. Se mostrará el resultado google.rpc.Code.INVALID_ARGUMENT.
LINEAR16 Son las muestras de little-endian de 16 bits firmadas y sin comprimir (PCM lineal). Esta codificación no incluye encabezado, solo los bytes de audio sin procesar.
FLAC FLAC (códec de audio sin pérdida gratuito) es la codificación recomendada porque no tiene pérdidas (por lo tanto, el reconocimiento no se ve comprometido) y requiere solo la mitad del ancho de banda de LINEAR16. Esta codificación incluye el encabezado de la transmisión FLAC seguido de los datos de audio. Admite muestras de 16 y 24 bits. Sin embargo, no todos los campos de STREAMINFO son compatibles.

AudioOut

Es el audio que contiene la respuesta del Asistente a la consulta. Se reciben fragmentos secuenciales de datos de audio en mensajes ConverseResponse secuenciales.

Campos
audio_data

bytes

Solo salida: Los datos de audio que contienen la respuesta del Asistente a la consulta. Se reciben fragmentos secuenciales de datos de audio en mensajes ConverseResponse secuenciales.

AudioOutConfig

Especifica el formato que debe usar el servidor cuando muestre mensajes audio_out.

Campos
encoding

Encoding

Obligatorio La codificación de los datos de audio que se mostrará en todos los mensajes audio_out.

sample_rate_hertz

int32

Obligatorio: Es la tasa de muestreo en hercios de los datos de audio que se muestran en los mensajes audio_out. Los valores válidos son 16,000-24,000.

volume_percentage

int32

Obligatorio: Es la configuración del volumen actual de la salida de audio del dispositivo. Los valores válidos van del 1 al 100 (corresponde al 1% al 100%).

Codificación

Es la codificación de audio de los datos mostrados en el mensaje de audio. Todas las codificaciones son bytes de audio sin procesar y sin encabezado, excepto como se indica a continuación.

Enumeradores
ENCODING_UNSPECIFIED No se especifica. Se mostrará el resultado google.rpc.Code.INVALID_ARGUMENT.
LINEAR16 Son las muestras de little-endian de 16 bits firmadas y sin comprimir (PCM lineal).
MP3 con codificación de audio MP3. La tasa de muestreo está codificada en la carga útil.
OPUS_IN_OGG Audio codificado en Opus que se une a un contenedor ogg. El resultado será un archivo que se puede reproducir de forma nativa en Android y en algunos navegadores (como Chrome). La calidad de la codificación es considerablemente mayor que la de MP3, pero con la misma tasa de bits. La tasa de muestreo está codificada en la carga útil.

ConverseConfig

Especifica cómo procesar los mensajes ConverseRequest.

Campos
audio_in_config

AudioInConfig

Obligatorio: Especifica cómo procesar el audio entrante posterior.

audio_out_config

AudioOutConfig

Obligatorio: Especifica cómo dar formato al audio que se mostrará.

converse_state

ConverseState

Obligatorio Representa el estado actual del diálogo.

ConverseRequest

El mensaje de nivel superior que envía el cliente. Los clientes deben enviar, al menos, dos mensajes de ConverseRequest, aunque suelen ser varios. El primer mensaje debe contener un mensaje config y no debe contener datos audio_in. Todos los mensajes posteriores deben contener datos audio_in y no deben contener un mensaje config.

Campos
Campo de unión converse_request. Se debe especificar exactamente uno de estos campos en cada ConverseRequest. converse_request puede ser solo uno de los siguientes:
config

ConverseConfig

El mensaje config proporciona información al reconocedor que especifica cómo procesar la solicitud. El primer mensaje ConverseRequest debe contener un mensaje config.

audio_in

bytes

Los datos de audio que se reconocerán. Los fragmentos secuenciales de datos de audio se envían en mensajes ConverseRequest secuenciales. El primer mensaje ConverseRequest no debe contener datos audio_in, pero todos los mensajes ConverseRequest posteriores deben contener datos audio_in. Los bytes de audio deben estar codificados como se especifica en AudioInConfig. El audio debe enviarse aproximadamente en tiempo real (16,000 muestras por segundo). Se mostrará un error si el audio se envía mucho más rápido o lento.

ConverseResponse

El mensaje de nivel superior que recibe el cliente. Se transmite una serie de uno o más mensajes ConverseResponse al cliente.

Campos
Campo de unión converse_response. Exactamente uno de estos campos se propagará en cada ConverseResponse. converse_response puede ser solo uno de los siguientes:
error

Status

Solo salida Si se configura, muestra un mensaje google.rpc.Status que especifica el error de la operación. Si se produce un error durante el procesamiento, este mensaje se configurará y no se enviarán más mensajes.

event_type

EventType

Solo salida indica el tipo de evento.

audio_out

AudioOut

Solo salida: Es el audio que contiene la respuesta del Asistente a la consulta.

result

ConverseResult

Solo salida: Es el resultado semántico de la consulta por voz del usuario.

EventType

Indica el tipo de evento.

Enumeradores
EVENT_TYPE_UNSPECIFIED No se especificó ningún evento.
END_OF_UTTERANCE Este evento indica que el servidor detectó el final del enunciado de voz del usuario y que no espera que siga hablando. Por lo tanto, el servidor no procesará audio adicional (aunque puede que muestre resultados adicionales de forma posterior). El cliente debe dejar de enviar datos de audio adicionales, cerrar de forma parcial la conexión de gRPC y esperar cualquier resultado adicional hasta que el servidor también la cierre.

ConverseResult

Es el resultado semántico de la consulta por voz del usuario.

Campos
spoken_request_text

string

Solo salida: La transcripción reconocida de lo que dijo el usuario.

spoken_response_text

string

Solo salida: Es el texto de la respuesta por voz del asistente. Solo se muestra para una acción IFTTT.

conversation_state

bytes

Información de estado solo de salida para los ConverseRequest posteriores. Este valor debe guardarse en el cliente y mostrarse en conversation_state con el próximo ConverseRequest. (El cliente no necesita interpretar ni usar este valor). No es necesario guardar esta información después de reiniciar el dispositivo.

microphone_mode

MicrophoneMode

Solo salida: Especifica el modo del micrófono después de que se procese esta RPC de Converse.

volume_percentage

int32

Solo salida: Se actualizó el nivel del volumen. El valor será 0 o se omitirá (lo que indica que no habrá cambios), a menos que se reconozca un comando por voz como "Sube el volumen" o "Establece el volumen en el nivel 4", en cuyo caso el valor será entre 1 y 100 (correspondiente al nuevo nivel de volumen de 1% a 100%). Por lo general, el cliente debe usar este nivel de volumen cuando reproduce los datos de audio_out, conservar este valor como el nivel de volumen actual y proporcionarlo en el AudioOutConfig de la siguiente ConverseRequest. (Algunos clientes también pueden implementar otras formas de permitir que se cambie el nivel actual del volumen, por ejemplo, proporcionando un botón que el usuario pueda girar).

MicrophoneMode

Estados posibles del micrófono después de que se completa una RPC Converse.

Enumeradores
MICROPHONE_MODE_UNSPECIFIED No se especificó ningún modo.
CLOSE_MICROPHONE El servicio no espera una pregunta de seguimiento del usuario. El micrófono debe permanecer apagado hasta que el usuario lo reactive.
DIALOG_FOLLOW_ON El servicio espera una pregunta de seguimiento del usuario. El micrófono se debe volver a abrir cuando se complete la reproducción de AudioOut (iniciando una nueva llamada RPC de Converse para enviar el audio nuevo).

ConverseState

Proporciona información sobre el estado del diálogo actual.

Campos
conversation_state

bytes

Obligatorio: Es el valor conversation_state que se mostró en el ConverseResponse anterior. Omite (no configures el campo) si no hubo ConverseResponse anteriores. Si hubo un ConverseResponse anterior, no omitas este campo. Si lo haces, finalizará esa conversación (y esta nueva solicitud iniciará una nueva conversación).