Siga as instruções em cada seção abaixo para integrar o Google Assistente ao seu projeto.
Vinculações gRPC
O serviço do Google Assistente é baseado no gRPC, uma biblioteca de RPC de alto desempenho e código aberto. Esse framework é adequado para streaming de áudio bidirecional.
Python
Se você estiver usando Python, comece usando este guia.
C++
Confira nosso exemplo de C++ (link em inglês) no GitHub.
Node.js
Confira nosso exemplo do Node.js no GitHub.
Android Things
Você tem interesse em dispositivos incorporados? Confira o exemplo do SDK do Assistente para o Android Things.
Outros idiomas
- Clone o repositório googleapis para receber as definições de interface do buffer de protocolo para a API Google Assistant Service.
- Siga a documentação do gRPC para gerar vinculações do gRPC para a linguagem de sua escolha.
- Siga as etapas nas seções abaixo.
Autorizar e autenticar sua Conta do Google para trabalhar com o Assistente
A próxima etapa é autorizar o dispositivo a se comunicar com o Google Assistente usando sua Conta do Google.
Receber tokens OAuth com o escopo do SDK do Google Assistente
O SDK do Assistente usa tokens de acesso do OAuth 2.0 para autorizar o dispositivo a se conectar com o Assistente.
Ao prototipar, você pode usar a ferramenta de autorização para gerar facilmente credenciais
OAuth2.0 do arquivo client_secret_<client-id>.json
gerado ao
registrar o modelo de dispositivo.
Faça o seguinte para gerar as credenciais:
Use um ambiente virtual do Python para isolar a ferramenta de autorização e as dependências dos pacotes do sistema Python.
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
Instale a ferramenta de autorização:
python -m pip install --upgrade google-auth-oauthlib[tool]
Execute a ferramenta. Remova a sinalização
--headless
se ele estiver sendo executado em um terminal no dispositivo (não em uma sessão SSH):google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
Quando você estiver pronto para integrar a autorização como parte do mecanismo de provisionamento do dispositivo, leia nossos guias sobre Como usar o OAuth 2.0 para acessar as APIs do Google para entender como conseguir, manter e usar os tokens de acesso do OAuth para permitir que seu dispositivo se comunique com a API do Assistente.
Use as seguintes opções ao trabalhar com esses guias:
- Escopo do OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Fluxos OAuth compatíveis:
- (Recomendado) Apps instalados
- Aplicativos do servidor da Web
Confira as práticas recomendadas de privacidade e segurança para conferir recomendações sobre como proteger seu dispositivo.
Autenticar a conexão gRPC com tokens OAuth
Por fim, junte todos os elementos lendo como usar a autenticação baseada em token com o Google para autenticar a conexão gRPC com a API Assistant.
Registrar seu dispositivo
Registre o modelo de dispositivo e a instância manualmente ou com a ferramenta de registro (disponível em Python).
Implementar uma caixa de diálogo de conversa básica com o Google Assistente
- Implemente um cliente gRPC de streaming bidirecional para a API Google Assistant Service.
- Aguarde o usuário acionar uma nova solicitação (por exemplo, aguarde uma interrupção GPIO após o pressionamento de um botão).
Envie uma mensagem
AssistRequest
com o campoconfig
definido (consulteAssistConfig
). Verifique se o campoconfig
contém o seguinte:- O campo
audio_in_config
, que especifica como processar os dados deaudio_in
que serão fornecidos nas solicitações subsequentes (consulteAudioInConfig
). - O campo
audio_out_config
, que especifica o formato desejado para o servidor usar quando ele retorna mensagensaudio_out
. ConsulteAudioOutConfig
. - O campo
device_config
, que identifica o dispositivo registrado para o Google Assistente. ConsulteDeviceConfig
. - O campo
dialog_state_in
, que contém olanguage_code
associado à solicitação. ConsulteDialogStateIn
.
- O campo
Iniciar gravação.
Envie várias mensagens
AssistRequest
de saída com dados de áudio da consulta falada no campoaudio_in
.Gerenciar as mensagens
AssistResponse
recebidas.Extraia metadados da conversa da mensagem
AssistResponse
. Por exemplo, emdialog_state_out
, acesseconversation_state
evolume_percentage
(consulteDialogStateOut
).Interrompe a gravação ao receber um
AssistResponse
com umevent_type
deEND_OF_UTTERANCE
.Tocar o áudio da resposta do Google Assistente com dados de áudio do campo
audio_out
.Copie o
conversation_state
extraído anteriormente e copie-o para a mensagemDialogStateIn
noAssistConfig
para o próximoAssistRequest
.
Com isso, estará tudo pronto para você fazer as primeiras solicitações ao Google Assistente usando o dispositivo.
Estender uma caixa de diálogo de conversa com ações no dispositivo
Estenda a caixa de diálogo de conversa básica acima para acionar os recursos de hardware exclusivos do seu dispositivo específico:
- Nas mensagens
AssistResponse
recebidas, extraia o campodevice_action
(consulteDeviceAction
). - Analise o payload JSON do campo
device_request_json
. Consulte a página Características do dispositivo para conferir uma lista de características compatíveis. Cada página de esquema de características mostra um exemplo de solicitação EXECUTE com os comandos do dispositivo e os parâmetros retornados no payload JSON.
Receber a transcrição da solicitação do usuário
Se você tem uma tela conectada ao dispositivo, ela pode ser usada para
mostrar a solicitação do usuário. Para acessar esta transcrição, analise o campo speech_results
nas mensagens
AssistResponse
. Quando o reconhecimento de fala for concluído, a lista conterá um item com stability
definido como 1.0.
Veja o texto e/ou a renderização visual da resposta do Google Assistente
Se há uma tela conectada ao dispositivo, ela pode ser usada para
mostrar a resposta em texto simples do Google Assistente à solicitação do usuário. Esse texto está localizado
no campo
DialogStateOut.supplemental_display_text
.
O Google Assistente oferece respostas visuais via HTML5 para determinadas consultas (Qual
está o clima em Mountain View? ou Que horas são?). Para ativar esse recurso, defina
o campo screen_out_config
em AssistConfig
.
A mensagem ScreenOutConfig
tem o campo screen_mode
, que precisa ser definido como PLAYING
.
As mensagens AssistResponse
terão o campo screen_out
definido. É possível extrair os dados do HTML5 (se houver) do campo data
.
Como enviar consultas por entrada de texto
Se você tiver uma interface de texto (por exemplo, um teclado) conectada ao dispositivo,
defina o campo text_query
no campo config
(consulte AssistConfig
).
Não defina o campo audio_in_config
.
Solução de problemas
Consulte a página Solução de problemas se tiver problemas.