Amazon Echo utilizando a Intel Edison

Projetos de processamento de linguagem natural sempre chamaram a minha atenção, pois acredito muito no futuro da automação por voz. Um projeto que eu sempre admirei, e ainda admiro, é o Amazon Echo, porém por não está acessível no Brasil, resolvi pesquisar modos de fazer um.

Encontrei um projeto que transforma uma Raspberry Pi em um Amazon Echo, o AlexaPi. Resolvi então fazer o mesmo em um Intel Edison, pois tenho planos de mais pra frente criar um case para ele.
O port do AlexaPi foi feito utilizando a biblioteca MRAA e foram feitas alterações nos scripts de instalação, para a adequação do port do Raspberry Pi para o Intel Edison.

O que é necessário para o projeto?

Além da Intel Edison, para a execução deste projeto, você irá precisar de uma placa de som USB que tenha saída e entrada de audio. Esta placa pode ser qualquer uma com suporte dos drivers ALSA.

Instalação

Para este projeto, vamos utilizar o Ubilinux, distribuição que tem suporte para a Intel Edison e Galileo.

Para a instalação em outros sistemas não Linux, siga o seguinte passo a passo da SparkFun.

No Linux, faça o download para o Intel Edison: Download

Em seguida, descompacte o conteúdo em uma pasta:

tar xvfz ubilinux-edison-XXXXXX.tar.gz
cd toFlash

Execute o flash:

sudo ./flashall.sh

Após a finalização da instalação do Ubilinux, devemos iniciar um console serial para ter acesso ao Linux na Edison. Para isso utilizamos o programa screen.

sudo screen /dev/ttyUSB0 115200

Para o login, utilizaremos o usuário root e senha edison.

Assim que o sistema estiver pronto, vamos instalar os seguintes aplicativos para utilizar o audio:

apt-get install alsa-utils

E testar o som com o comando:

aplay /usr/share/sounds/alsa/Front_Center.wav

Uma boa fonte de informação de som na Intel Edison é esse site.

Feito isso, vamos instalar a MRAA, que é a biblioteca de interface com as IO’s da Intel. O processo utilizado foi retirado do guia da SparkFun.

Em seguida, vamos iniciar a instalação do AlexaPi no Intel Edison.

As alterações do AlexaPi para rodar no Edison, estão no meu GitHub.

cd
git clone https://github.com/pedrominatel/intel-edison-alexa.git
cd intel-edison-alexa
./setup.sh

Para adicionar as Ids de segurança da Amazon, basta criar uma conta de desenvolvedor na Amazon e criar um novo dispositivo, conforme o video abaixo:

Finalizando a instalação e da adição das chaves, é necessário fazer a geração do refresh token. Para isso basta iniciar o servidor web de autenticação:

python auth_web.py

Para acessar o servidor, basta abrir no browser o link: http://<ip_do_edison>:5000

Basta agora adicionar validar o seu dispositivo, para que o creds.py seja completamente atualizado.

Esquema

Para o esquema elétrico, vamos utilizar o kit Grove com o shield, dois LEDs e um botão.

O botão foi conectado em D2 e os LEDs em D3 e D4. Os LEDs são utilizados para o status de sistema, gravação, conexão e resposta da Alexa.

Utilizando

Após a instalação dos pré-requisitos, vamos executar o comando:

python main.c

Agora você deverá escutar a Alexa dizendo Hello.

Para fazer uma pergunta basta segurar o botão pressionado, fazer a pergunta em Ingles e soltar assim que finalizar.

 

Abaixo um vídeo de demonstração do funcionamento:

Happy Hacking!