O Projeto

Vamos começar descrevendo o projeto e como o sistema funcionará.

Definindo

Explicando em uma frase: Utilizar o Arduino Duemilanove, equipado com o microcontrolador ATmega328, para processamento de sinal de áudio a fim de se comunicar com a implementação da Web Speech Api provida pela Google e obter a  conversão em texto do áudio.

O processamento do sinal será off-line, ou seja, os dados a serem processados já estarão armazenados. Futuramente poderá ser melhorado para um sistema real-time onde o processamento ocorre quase que ao mesmo tempo em que se obtém a amostra.

O tempo de cada amostra será inicialmente fixado em 5s.

Dividindo para conquistar

O projeto foi segmentado em 5 partes para se poder testá-las em separado.
A ordem foi escolhida para que os elementos mais críticos fossem validados primeiro:

  1. Montagem do circuito de captura do sinal de áudio.
  2. Tratamento do Sinal de áudio (utilização de algoritmos específicos).
  3. Codificação do sinal de áudio em arquivo padronizado.
  4. Implementação da comunicação HTTP com a API do Google para a transformação em texto.
  5. Exibição da resposta em um painel LCD.

Lista de Componentes
Utilizei os seguintes componetes:

    • Arduino Duemilanove (Atmega386).
    • Shield Ethernet. (+ 1 cabo RJ-45 e 1 Roteador)
    • 1 Microfone dinâmico mono (UT-MP5127)
    • 1 Conector 1/4 mono para o microfone (Radioshack 274-340)
    • 1 Circuito integrado amplificador de áudio (LM386).
    • 2 Baterias de 9v.
    • 2 Conectores para baterias 9v (Radioshack 270-324).
    • 1 LED
    • 1 Potenciômetro linear de 10 kOhm (Digikey 987-1301-ND)
    • 1 Capacitor eletrolítico 10uF (Digikey P5134-ND).
    • 1 Capacitor cerâmico 47nF (Digikey P4307-ND)
    • 3 resistências de 100kOhm
    • 1 Display de LCD
    • Um punhado de jumpers.
    • 1 Ferro de solda

A maioria dos itens foram comprados na R. Santa Ifigênia. Os Jumpers, o Arduino, a Ethernet Shield  e o display de LCD foram comprados pela internet e o roteador eu já possuía.

Google Speech API

A conversão do áudio para texto será feita através da implementação da “Google Speech API”. Sua interface de chamada não está “aberta” para o português do Brasil. Isso significa que não é especificado como deve ser a conversa com a API em questão.

Para superar este problema foi utilizado o código fonte do Chromium, versão do Google Chrome de Código Aberto. Através dele foi possível entender os parâmetros a serem trocados, já que o Google Chrome tem a implementação da API “embarcada” em si, inclusive para o português do Brasil.

 

Proximo passo

No próximo post vou mostrar como foi configurado o circuito para a entrada de sinal de audio no Arduino.

#vamoquevamo

DYI

Anúncios

Arduino na CPB6

Videos com o Arduino se vê aos montes por aí, mas esse é uma palestra de um cara que eu curto pra caramba palestrando, o Vinicius Senger (@vsenger), e ainda por cima feito na cpb6. Por isso e pela misturar Arduino + REST + Java não pude deixar de compartilhar este vídeo aqui.

Quem estiver afim e tiver paciência, são 49 minutos que valem a pena conferir.

Quem não quiser ver o vídeo, pode acompanhar mais em : http://blog.eletronlivre.com.br/

#ficadica 😉