Você está na página 1de 56

GUIA PRÁTICO DO MÓDULO

DE VOZ V3
Conheça o VR3!

Prof. Eng. Luiz Gustavo


O que é Módulo de
reconhecimento de voz vr3?

É um componente eletrônico que é capaz


de reconhecer comandos de voz ou som, e
responder com uma mensagem ou uma ação.
E reconhecimento de voz?
O que é?
“Tecnologia que permite que máquinas equipadas
com microfone interpretem a fala humana, para
transcrição(transformar suas palavras em texto) ou
comandos de voz (executar ações).”
Exemplo de sistema para transcrição:

sistemas na telefonia para


comandos de voz:
Tipos de reconhecimento de voz

Dependente

2 tipos

Independente

Treinar: Gravar os comandos


de voz antes de utilizar no seu
projeto! Ensinar o módulo a
reconhecer sua voz!
Por que é importante treinar os
comandos de voz?
Cada pessoa possui seu padrão particular de fala e voz.
Quando a voz é digitalizada é possível extrair mais de 100
elementos ou características de identificação da voz da
pessoa mas elas são oriundas de 3 características principais:
1. Frequência
2. Timbre
3. Intensidade

Logo, o módulo de voz VR3 precisa conhecer estas características no


momento do treinamento para reconhecer a voz desejada corretamente.
Fabricante do VR3

Empresa que vende diversos componentes e


módulos para utilizar na eletrônica.
O primeiro módulo de reconhecimento de voz
que ela fabricou foi o VR2, e posteriormente foi
lançada uma versão mais completa: O VR3.
Ambos são do tipo dependente.
VR3 é melhor que o VR2?

Sim, em todos os aspectos. Veja as diferenças e suas


vantagens:

Possui 3 grupos Só é possível


15 comandos com 5 comandos utilizar um grupo
fixos de voz cada por vez.
VR2

Possui apenas 1 É possível fazer qualquer


80 comandos grupo com todos combinação contendo 7
os comandos comandos dentre os 80.
VR3
Veja as duas principais diferença
entre o VR2 e o VR3!

15 comandos 80 comandos
Comandos limitados aos 3 grupos Não há limitação de grupos
Onde usar o
VR3?

Prof. Eng. Luiz Gustavo


Aplicações
Não há limitação para suas aplicações mas podemos
citar as principais:
1. Automação Residencial

2. Carros inteligentes

3. Robótica
Premissas
Requisitos básicos para correta aplicação do módulo de
reconhecimento de voz VR3:
1. Os comandos de voz devem curtos e rápidos
(uma ou duas palavras)

2. É desejável que a ação a ser executada seja realizada


imediatamente após o comando ter sido reconhecido.

3. As condições de ruído do ambiente de treinamento devem ser


iguais ao ambiente onde os comandos serão reconhecidos.
Automação Residencial

Uma forma legal e bem prática de controlar as lâmpadas e


diversos equipamentos é utilizar comandos pais e filhos(também
chamado de árvore):

Bomba
Ligar Ar condicionado
Desligar sala
cozinha

Comandos pais Comandos filhos


Carros inteligentes

Esta forma de controle também é aplicável ao carro:

Carro
Ligar
Porta-malas

Vidro esquerdo
Desligar
Vidro direito

Comandos pais Comandos filhos


Robótica

Os robôs não ficam atrás, eles também são capazes de nos


ouvir e nos reconhecer e mudar sua rota conforme nossos
comandos:
Pare

esquerda

direita

Avançar

Volte
Anatomia do
VR3!

Conheça o
Hardware desta
maravilha!
Prof. Eng. Luiz Gustavo
Hardware do VR3
Memória Flash Serial Controlador do
Fabricante: Winbond módulo de voz
Especificação: W25Q16BV (16M-bit)
Tipo de memória: EEPROM
Armazena os comandos de voz
Saídas indicadoras do comando
reconhecido: out 0 – out 6
Conexão P2 para
microfone

Pinos de
comunicação
Seleção de um Serial
dos 8 grupos ( UART : TX- RX)
que compõe os
80 comandos
IN2 – IN1 – IN0 Pinos de
alimentação
Pinos para comunicação I²C (VCC-GND)
Controlar vários dispositivos por
apenas 2 barramentos(clock e dados)
Pinos de Alimentação
O módulo pode facilmente ser alimentado com
uma tensão vcc de 4,5 a 5,5 V através dos pinos VCC-GND,
que pode ser oriunda do próprio Arduino ou de uma
associação de pilhas, conforme desejado.
Corrente máxima de operação em torno de 40mA!
Pinos de Comunicação
Indicados pelo TX (transmissor do VR3), e
pelo RX(receptor do VR3). Eles devem ser conectados
no receptor e transmissor, respectivamente, do
microcontrolador que irá se comunicar com ele. Estas
portas de comunicação no microcontrolador podem
ser emuladas ou não.
Estes pinos de interface digital funcionam
com um nível de tensão (TTL) de 5V. Não precisa de
conversor de nível quando estiver utilizando o
Arduino, por exemplo, para rebaixar para 3.3V.

MÓDULO VR3 ARDUINO


Pinos de seleção de grupos

É possível utilizar este módulo sem o Arduino ou outra


plataforma computacional. Os pinos (IN2 – IN1 – IN0) servem para
selecionar o grupo de comandos que serão aptos ou carregados
para serem reconhecidos por meio dos pinos Out 6 – Out 0.
Estes conjuntos de comandos são chamados de grupos de
sistemas, e são mostrados no slide a seguir.
Pinos de seleção de grupos

Fazendo a combinação das entradas digitais conforme


tabela é possível carregar qualquer um dos 8 grupos definidos na
tabela abaixo:

Lembrando que se você utilizar o Arduino ou outra


plataforma para controlar o VR3 poderá utilizar o User Group e fazer
qualquer combinação de 7 comandos com os 80 disponíveis!
Pinos de saída de comandos
reconhecidos
Estes pinos são fantásticos ! Eles conseguem acionar
componentes como módulos relés para controle de cargas a saber:
lâmpadas, bombas, tomadas etc.
Não precisa do Arduino, basta somente conectar nestes
pinos de saída que é possível obter o sinal assim que o comando for
reconhecido.
ELE NÃO QUER
RECONHECER
Que droga! Já
estou cansado
MINHA VOZ
Acender! de repetir!

Volte!

Ligar!

Esquerda!
Razões pelas quais sua voz não é
reconhecida pelo módulo VR3

Existem alguns fatores que influenciam e dificultam o


reconhecimento dos comandos de voz oriundo do usuário pelo módulo de
voz vr3:
Você não treinou o comando desejado
Ruído no ambiente

Você está falando o comando errado!


Eco

As características sonoras do ambiente que o comando foi treinado é


diferente de onde você está tentando dar os comandos.

Distância do módulo Não foi carregado no


código Arduino!
Ruído
Eco
O Som refletido chega ao microfone do módulo
de voz e acaba prejudicando a análise do
comando reconhecido pelo módulo de voz!
Ambiente de treinamento
e
Ambiente de reconhecimento

Você deve tentar ao máximo fazer com que as


condições sonoras do ambiente de treinamento serem
iguais às do ambiente de reconhecimento.

Ambiente de treinamento Ambiente de reconhecimento


(aplicação do projeto)
Distância
Você deve tentar ao
máximo fazer com que as
distâncias do usuário para o
módulo sejam iguais ou
próximas no momento do
treinamento e
reconhecimento.

Ambiente de treinamento Ambiente de reconhecimento


(aplicação do projeto)
TREINE OS
COMANDOS SEM
CARREGAR O CÓDIGO
Objetivo do projeto

Evitar carregar o código de treinamento no Arduino


todas as vezes que for treinar um comando de voz!

Ele pode ser inserido em qualquer projeto!


Basta acrescentar este código + esquemático ao seu projeto!
Lista de componentes
Componentes qtde
1 Módulo de reconhecimento de voz vr3 1
2 Protoboard 400 furos 1
3 Jumpers macho-macho 10
4 Display lcd 16x2 1
5 resistores de 220 Ω 2
6 Potenciômetro 5KΩ 1
7 Arduino Uno 1
8 Botões sem retenção(Push button) 2
9 LED’S(vermelho e azul) 2
Esquemático de montagem
ESQUEMÁTICO DISPLAY LCD 16X2
TABELA DE CONEXÃO DOS PINOS DO
DISPLAY LCD 16X2
Fluxograma de funcionamento
Incrementar o Início
comando
selecionado e
carregar os
códigos Configurar
parâmetros
Botão
mais/carregar
comandos
pressionado? Algum
comando
Treinar o reconhecido?
comando
selecionado
Muda o estado
Botão treinar Case vermelho do led_vermelho
pressionado?

Muda o estado
Case azul do led_azul
COMANDOS PAIS E
FILHOS - VR3

Prof. Eng. Luiz Gustavo


Lista de componentes

Componentes qtde
1 Módulo de reconhecimento de voz vr3 1
2 Protoboard 400 furos 1
3 Jumpers macho-macho 10
4 Arduino Uno 1
5 Leds 8
6 Resistor de 220 Ω 8
Esquemático de montagem

PINO 13
Fluxograma de funcionamento
Início
Ligar Ar Comando Ar Comando S
Lâmpada Desligar Ar
condicionado reconhecido? condicionado
S Configura os
reconhecido?
parâmetros N
Comando TV Comando S
Ligar TV Desligar
S reconhecido?
Comando
Lâmpada
TV
reconhecido?
Arduino
N reconhecido? N
Ligar
S Comando Comando S
lâmpada
Lâmpada S Lâmpada Desligar
reconhecido? reconhecido? lâmpada

S Comando
Case Ligar Ligar
reconhecido?
Case Desligar

N Comando S
Desligar
reconhecido?
“VR3”
ELE NÃO PRECISA
DO ARDUINO

Ele trabalha
sozinho!
APLICAÇÕES COM VR3
SEM ARDUINO
Existem algumas aplicações que podemos utilizar o módulo de
reconhecimento de voz VR3 sem o Arduino ou qualquer outra placa
adicional :
Baixo nível de processamento de dados
Aplicações bem otimizadas (poucas funções com o VR3)

Resumindo: Aplicações SIMPLES!

Exemplos (colocar imagens aqui)


Modos de funcionamento do VR3
São dois modos principais:

Controlado por MCU


Sozinho! De forma indepente!
(microcontrolador, microprocessador ou
Controlado pelos seus pinos IN2-IN0
PC) externo.
Obs: Precisa de configuração externa
Lista de componentes

Componentes qtde
1 Módulo de reconhecimento de voz vr3 1
2 Protoboard 400 furos 1
3 Jumpers macho-macho 10
4 Leds (cores diversas) 11
5 resistores de 220 Ω 8
6 botões com retenção 3
7 Arduino Uno (apenas para treinar) 1
8 Pilha 1,5V aa 3
Esquemático de montagem
Para configurar iremos utilizar o
Arduino (pinos 2 e 3)

10 K 10 K 10 K
Fluxograma de funcionamento
Início

Lê as entradas digitais
e carrega o grupo
correspondente

N Algum
comando
reconhecido?
S

Ativa a saída
correspondente
Funcionamento independente do
VR3
Neste modo, o VR3 pode ser configurado para atuar com os pinos
OUT0-OUT6 , em 1 dos 4 tipos de sinais quando o comando
correspondente for reconhecido:
A saída é um pulso negativo
1. Pulso Negativo (Pulse mode)
que varia de 10ms a 1s

2. Flipe Mode Muda o estado da saída quando o


comando é reconhecido (HIGH-LOW-HIGH)

Muda o estado da saída de HIGH para LOW


3. Down Mode e só retorna para o nível HIGH quando o
módulo recebe uma mensagem de reset.

Muda o estado da saída de LOW para HIGH


4. Up Mode e só retorna para o nível LOW quando o
módulo recebe uma mensagem de reset.
Funcionamento dos
modos independentes
Primeiro Segundo
reconhecimento do reconhecimento do Mensagem de Reset
comando comando

1. Pulso Negativo
(Pulse mode)
10ms a 1s 10ms a 1s

2. Flipe Mode

3. Down Mode

4. Up Mode
Como configurar o VR3 para ele
funcionar sozinho??

São necessários alguns passos para chegar até lá:

1.Checar em qual modo e parâmetros o seu VR3 está configurado


a. Carregar o código Train e acessar o settings no monitor serial para
alterar: Outpu IO Mode e Group control by external IO
2. Carregar o código arduino “vr_sample bridge” nos exemplos do
VR3 na ide do Arduino
3. Enviar os comandos hexadecimais de configuração desejados
conforme datasheet.
4. Setar as entradas (IN2-IN0) para selecionar o grupo desejado a
ser reconhecido
5. Ligar e desligar o módulo e testar o projeto!
Mudando os parâmetros... Está
quase lá!
Iremos alterar apenas dois parâmetros:
1. Grupo de comandos de voz
2. Modo de saída dos pinos OUT
Após carregar o código vr_sample bridge, abra o monitor
serial e envie o comando Hexadecimal correspondente ao modo
desejado:

Comando a ser enviado:32 00 01 Comando a ser enviado:12 01


System Group 00 2. Flipe Mode
USE O VR3 COM QUALQUER
PLACA

Prof. Eng. Luiz Gustavo


Objetivo do projeto

Mostrar como é possível realizar a comunicação e


controle com o módulo de reconhecimento de voz V3 com
QUALQUER MICROCONTROLADOR utilizando comunicação
serial por meio da linguagem Hexadecimal.
Você pode utilizar o microcontrolador PIC, ou
plataformas de prototipagem como : Arduino, ESP8266,
K46F NXP FREESCALE etc.
Lista de componentes

Componentes qtde
1 Módulo de reconhecimento de voz vr3 1
2 Protoboard 400 furos 1
3 Jumpers macho-macho 6
4 Jumpers macho-fêmea 4
5 Arduino Uno 1
6 Leds 5
7 Resistor de 220 Ω 5
Esquemático de montagem

PINO 13
Fluxograma de funcionamento
Algoritmo (passo-a-passo)

Início Swicth a[5]


Configurar os
parâmetros Mudar o estado do
Caso 1
led branco
Carregar os 5 comandos
no módulo V3 Mudar o estado do
Caso 2
led azul
Algum comando
Não reconhecido? Mudar o estado do
Caso 3
Sim led vermelho
Lê o buffer do módulo V3 e
Mudar o estado do
colocar no vetor a[i] Caso 4
led amarelo
Mudar o estado do
Caso 5
led verde
Envio dos códigos hexadecimais para
o módulo V3

Carregar os 5 comandos Habilitar o reconhecimento Verificar se algum o


no módulo V3 dos comandos do V3 comando foi reconhecido
VR3.write(0xaa);
VR3.write(0xaa);
VR3.write(0x07); if(VR3.available())
VR3.write(0x0D);
VR3.write(0x30);
VR3.write(0x0a);
VR3.write(0x01);
VR3.write(0x02);
VR3.write(0x03); Transformar as leituras para
Fazer a leitura dos
VR3.write(0x04); comandos reconhecidos
o formato hexadecimal para
VR3.write(0x05); visualizar no monitor serial
for(int i = 0; i<9;i++){
VR3.write(0x0a); a[i] = VR3.read(); Serial.print( a[i],HEX);
Serial.print( a[i],HEX);
Serial.print("-");
delay(1);
}
Gostou do conteúdo?

 Curta, comente e compartilhe


 Prof. Eng. Luiz Gustavo
 Inscreva-se em nosso canal

Contato para aulas por vídeo-conferência


 Email: LGUSTAVOSDP@YAHOO.COM.BR
 CANAL YOUTUBE: L GUSTAVO

Você também pode gostar