Primeiros passos com Google Assistant SDK na Raspberry Pi

Primeiros Passos com o Google Assistant SDK na Raspberry Pi

Temos visto nos últimos anos vários produtos chamados de assistentes. Basicamente são dispositivos conectados a internet com alto-falantes e microfone, com o qual pessoas podem interagir usando comandos de voz. Dentre os mais conhecidos temos o Amazon Echo com o sistema Alexa e o recente lançado Google Home com o Assistant, que será tema deste artigo.

 

Foi em outubro de 2016, em uma transmissão ao vivo do evento da Google chamado #madebygoogle, que ouvi pela primeira vez que no ano seguinte, seria lançado o Google Assistant Embedded SDK e que seria possível instalá-lo em computadores embarcados como a Raspberry Pi. Desde então estive ansioso e atento às notícias do SDK para testar assim que fosse lançado ao público. E foi em 27 de abril de 2017 que recebi uma newsletter por e-mail com título “Announcing the Google Assistant SDK”.

 

Newsletter anunciando lançamento do Assistant SDK
Foto 1 - Newsletter anunciando lançamento do Assistant SDK

 

Neste artigo irei compartilhar um pouco da minha experiência com o Google Assistant SDK e mostrar os primeiros passos de configuração do SDK para o computador embarcado Raspberry Pi 3. Ao final do artigo você terá um “Google Home” instalado em sua Raspberry Pi, poderá usar comandos de voz e ouvirá sua Raspberry Pi respondendo em alto e bom tom.

 

Recomendo também a leitura do artigo “The MagPi de Maio traz kit gratuito em parceria com o Google” escrito por Fábio Souza, onde ele apresenta um kit de desenvolvimento de AI e reconhecimento natural de linguagem feito em parceria pela Raspberry Pi Foundation e Google.

 

Importante: As instruções deste post são referentes a versão 0.0.2 do Google Assistant SDK e podem estar desatualizadas para futuras versões. Esteja atento a página "release notes" para instruções atualizadas de instalação para futuras versões do Google Assistant SDK. 

 

Materiais Necessários

 

Para começar a desenvolver com Google Assistant SDK você irá precisar dos seguintes materiais:

 

  • Raspberry Pi 3;
  • Cartão micro SD com sistema operacional Raspbian Jessie Lite instalado;
  • Mini interface de áudio USB com entrada para microfone P2 ou Microfone USB;
  • Caixas de som ou fones de ouvido(USB ou conector P2 3.5mm).

 

Configuração do Hardware e Conexão a Internet

 

Para mais detalhes sobre como iniciar com o Linux Raspbian na Raspberry Pi, recomento a leitura do artigo "Primeiros passos com Linux na Raspberry Pi 3" escrito por Pedro Bertoleti.

 

Para este artigo utilizamos uma mini interface de áudio USB da Plugable, que funciona muito bem no Linux pois já possui os drivers necessários. Conectamos a interface de áudio em uma porta USB da Raspberry Pi e um microfone na entrada P2 da interface.

 

Para reprodução de som utilizamos um par de caixas de som USB, que também já possuem drivers para Linux.

 

Montagem dos componentes
Foto 2 - Montagem dos componentes

 

Para facilitar o acesso a Raspberry via SSH para configuração do sistema, foi criada uma rede LAN entre o computador de desenvolvimento e a Raspberry. A conexão a internet foi compartilhada do WiFi do computador para porta Ethernet. Veja o seguinte tutorial no Portal de Desenvolvedores da Toradex mostrando como implementar essas configurações no Linux.

 

Se achar mais fácil, simplesmente conecte na Raspberry Pi um mouse, teclado e monitor HDMI para configuração do sistema.

 

Configuração do Projeto de Desenvolvedor Google

 

Acesse https://cloud.google.com/ e no canto superior direito clique em Console.

 

 

Vá para a página de gerenciamento de projetos, selecione um projeto existente ou crie um novo.

 

 

Na seção API Manager, busque por “assistant” na barra de busca. Selecione Google Assistant API e então clique em Enable.

 

 

Crie as credenciais da API clicando em Credentials no canto esquerdo.

 

 

Clique na aba OAuth consent screen e dê um nome ao produto. Clique Save.

 

 

Na aba Credentials, clique em Create credentials e selecione OAuth client ID.

Selecione Other, dê um nome para as credenciais e clique em Create.

 

 

Uma tela irá aparecer com a credencial criada e o segredo. Clique em Ok. Não se preocupe em anotar, você poderá vê-los depois.

 

 

Clique no botão de Download no canto esquerdo para baixar o arquivo da credencial do cliente em formato JSON. Esse arquivo deve ser copiado para Raspberry Pi.

 

 

Para que o Google Assistant funcione corretamente, você precisa compartilhar alguns dados de atividade com a Google. Não se preocupe! Você não vai estar compartilhando nenhuma informação que a Google já não saiba sobre sua vida hehe.

 

Acesse a página de controle de atividade e certifique-se de que os seguintes itens estejam ativados:

 

  • Web & App Activity
  • Location History
  • Device Information
  • Voice & Audio Activity

 

Configuração e Teste de Áudio da Raspberry Pi

 

Com a mini interface de áudio USB e caixas de som USB conectadas a Raspberry Pi, liste os dispositivos de captação e reprodução de áudio reconhecidos pelo sistema.

 

 

 

Anote o número do “card” e “device” listados acima.

 

Crie um arquivo chamado ".asoundrc" em /home/pi/ com o seguinte conteúdo:

 

 

Substitua card number e device number pelos números listados no passo anterior.

 

Utilize os comando a seguir para testar a captura e reprodução do áudio.

 

 

 

Instalação dos pacotes e execução do programa exemplo

 

O programa exemplo que a Google disponibiliza é escrito em Python. Instale um ambiente virtual Python para isolar o SDK e dependências dos pacotes de Python já instalados no sistema. A versão Python 3 é utilizada. Execute os comando a seguir:

 

 

Estando dentro do ambiente virtual python, baixe o pacote contendo as bibliotecas e programa exemplo do Google Assistant.  

 

 

Baixe também a ferramenta de autenticação:

 

 

Autorize o exemplo para que você possa executá-lo em sua Raspberry Pi, referenciando o arquivo JSON de credencial baixado anteriormente.

 

 

Após a execução do comando acima vai aparecer o seguinte:

 

 

No browser do seu computador visite a URL. Ao aparecer a janela abaixo clique no botão Allow.

 

 

Na janela seguinte copie o código indicado e cole no terminal da Raspberry Pi no campo “Enter the authorization code:”

 

 

 

Se tudo ocorrer bem deve aparecer no terminal “credentials saved”.

 

Então finalmente execute a aplicação exemplo com o comando seguinte:

 

 

Diga "Ok Google" ou "Hey Google" em seguida alguma pergunta ou comando.

 

Experimente dizer “What is the time?”, “What is Google Home?”, “What can you do?”.

 

Veja no vídeo abaixo algumas perguntas que fiz ao Google Assistant:

 

 

A partir da versão 0.0.2 já é possível criar lembretes e configurar alarmes. Outras funcionalidades ainda não estão disponíveis como tocar música.

 

Conclusão

 

Cada vez mais os assistentes de voz irão fazer parte do nosso cotidiano. A ideia é tê-los conosco em nosso carro, celular, casa etc. O mesmo assistente do carro vai ser o da sua casa e um lembrete que você criar no assistente da sua casa estará disponível em seu celular. E o mais legal de tudo é que as empresas estão de portas abertas aos desenvolvedores e plataformas, disponibilizando SDKs e exemplos para quem quer começar a desenvolver aplicações nesta área.

 

Fazendo uma pequena comparação no quesito instalação e configuração, o Amazon Alexa na Raspberry Pi, me pareceu um pouco complicado, dependendo muito de java e de aplicações gráficas rodando no Desktop da Raspberry Pi. Em momentos foi necessário abrir três terminais simultaneamente para configurar o Amazon Alexa.

 

Já a instalação do Google Assistant me pareceu mais simples e bastou apenas um terminal SSH para realizar todos os passos da instalação.

 

Um dos muitos objetivos do Google Home Assistant é realizar várias interações com a casa, controlando lâmpadas inteligentes, eletrodomésticos e etc. Resta fazer um estudo mais aprofundado para descobrir se, ou quais dessas opções estão disponíveis no Assistant SDK e quais os passos necessários para desenvolver aplicações desse tipo.

 

Referências

 

https://developers.google.com/assistant/sdk/

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/setup

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/config-dev-project-and-account

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/configure-audio

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/run-sample

https://github.com/googlesamples/assistant-sdk-python

 

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Giovanni Bauermeister
É formado em Técnico em Mecatrônica pelo SENAI Roberto Mange de Campinas, onde teve seus primeiros contatos com microcontroladores, eletrônica e programação. Em 2016 obteve a graduação em Engenharia de Controle e Automação pela UNISAL, também em Campinas. Durante a graduação, teve a oportunidade de ingressar como estagiário na empresa Toradex, onde atuou e desenvolveu habilidades em sistemas Linux embarcado. Atualmente atua como Analista de Desenvolvimento em Eletrônica na FILIPEFLOP.

33
Deixe um comentário

avatar
 
15 Comment threads
18 Thread replies
8 Followers
 
Most reacted comment
Hottest comment thread
19 Comment authors
Reginaldo Paulo Pereira da SilvaDanilo SicarimarcusVitor TeixeiraJúlio Victtor Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Reginaldo Paulo Pereira da Silva
Visitante
Reginaldo Paulo Pereira da Silva

Olá! Vi que tem uma nota do Google do dia 08/03/19 que há suporte para algumas outras línguas dentre elas pt-BR. Porém não sei quase nada de Linux para poder setar o assistant para nosso idioma. Poderia nos ajudar com um tutorial? Obrigado!

marcus
Visitante
marcus

ótimo artigo, mas parece q agora vc tem q definir o device, no caso o Pi, mas não acho onde coloco isso de jeito nenhum rs. Se puder atualizar o artigo, vai ajudar mto. Vlw!

Júlio Victtor
Visitante
Júlio Victtor

Pode usar o r
Raspberry pi zero w ?

Daniel
Visitante
Daniel

Opá, comigo está dando esse erro: arecord: main:612: invalid rate argument '16k'

Vitor Teixeira
Visitante
Vitor Teixeira

Viva ! Comigo também dá esse erro... Já conseguiu solucionar ?

Andre Yoshimura
Visitante
Andre Yoshimura

Show de bola, bem bacana.

korzak
Visitante
korzak

Alguma novidade sobre o PT-BR?

Danilo Sicari
Visitante
Danilo Sicari

ja estou utilizando pt-br em modo beta

Denilson Azarias
Visitante
Denilson Azarias

Excelente tutorial, deu tudo certinho aqui...aguardando agora com nosso idioma. Obrigado.

Leonardo Barbosa
Visitante
Leonardo Barbosa

Excelente tutorial. Por acaso conseguimos atualizar para a voz em pt br?

Thiago
Visitante
Thiago

Muito bem explicado. Uma dúvida: consigo interagir com a placa através dos comandos de voz? Exemplo: conectar um RF433 e pedir para o Google Assistant enviar um sinal para ele.

Noob
Visitante
Noob

Tutorial legal, so que deixou o usuario iniciante na mao logo no comeco. Como vou criar ou editar arquivo .asoundrc se nem sei usar o terminal. Agora estou procurando um tutorial para conseguir fazer o seu tutorial, para que facilitar as coisas para o usuario iniciante ne. joga ele na agua e deixa ele aprender a nadar.