Professional Documents
Culture Documents
BitSophia - www.bitsophia.com.br
BitVoicer 1.2
Manual do Usurio
Portugus
BitSophia - www.bitsophia.com.br
Sumrio
1 APRESENTAO _____________________________________________________________________ 3
1.1
1.2
1.3
INSTALAO ________________________________________________________________________ 3
INTERFACE GRFICA ___________________________________________________________________ 4
ATIVAO _________________________________________________________________________ 4
3 CONFIGURAES ____________________________________________________________________ 5
3.1 INICIALIZAO_______________________________________________________________________ 6
3.2 RECONHECIMENTO DE VOZ ______________________________________________________________ 7
3.2.1 SPEECH RECOGNITION LANGUAGE (IDIOMA DO RECONHECIMENTO DE VOZ) ____________________________ 7
3.2.1.1 Idiomas Adicionais _______________________________________________________________ 7
3.2.2 ACCEPTABLE CONFIDENCE LEVEL (NVEL DE CONFIANA ACEITVEL) _________________________________ 8
3.2.3 MINIMUM AUDIO LEVEL (NVEL MNIMO DE UDIO)____________________________________________ 8
3.2.4 AUDIO LEVEL ACTIVATED PERIOD (PERODO ATIVADO POR NVEL DE UDIO) ____________________________ 9
3.2.5 LATENCY PERIOD (PERODO DE LATNCIA) __________________________________________________ 10
3.2.6 DESEMPENHO DO RECONHECIMENTO DE VOZ _______________________________________________ 10
3.3 COMUNICAO _____________________________________________________________________ 11
3.4 AUDIO INPUT (ENTRADA DE UDIO)_______________________________________________________ 11
3.4.1 AUDIO STREAMING CALIBRATION (CALIBRAO DE UDIO STREAMING) _____________________________ 11
4 CRIANDO, EDITANDO E USANDO ESQUEMAS DE VOZ ______________________________________ 12
4.1
4.2
4.3
4.4
4.5
4.6
4.7
5 COMUNICAO ____________________________________________________________________ 18
5.1 PROTOCOLO BITVOICER _______________________________________________________________ 18
5.2 ENVIANDO DADOS AO BITVOICER ________________________________________________________ 20
5.3 COMANDOS _______________________________________________________________________ 20
5.4 BIBLIOTECA BITVOICER PARA ARDUINO ____________________________________________________ 20
5.4.1 REFERNCIA DA BIBLIOTECA BITVOICER PARA ARDUINO_________________________________________ 21
5.5 EXEMPLOS DE UTILIZAO DA BIBLIOTECA BITVOICER ___________________________________________ 23
5.5.1 UDIO CAPTADO PELO MICROFONE DO COMPUTADOR _________________________________________ 23
5.5.2 UDIO CAPTADO POR UM MICROFONE CONECTADO AO MICRO-CONTROLADOR _________________________ 25
6 UDIO STREAMING _________________________________________________________________ 28
6.1
BitSophia - www.bitsophia.com.br
1 Apresentao
BitVoicer o software de reconhecimento de voz que traz para o universo dos micro-controladores todo
o poder de processamento e anlise de voz dos PCs. Sua tecnologia de reconhecimento de voz e o uso de
padres de comunicao comuns na indstria (TCP/IP e Serial/UART) tornam extremamente fcil e rpida a
criao de funcionalidades complexas de reconhecimento de voz para praticamente qualquer microcontrolador programvel disponvel no mercado.
Este manual ir guia-lo pelo processo de instalao e configurao do BitVoicer, demonstrar a incrvel
flexibilidade dos Esquemas de Voz da BitSophia e apresentar todas as ferramentas disponveis no
aplicativo.
1.2 Compatibilidade
A principio, o BitVoicer compatvel com qualquer micro-controlador programvel e/ou shield que utilize
comunicao TCP/IP baseada em sockets ou comunicao serial (interface UART). No entanto, voc deve
consultar atentamente a documentao do fabricante do seu dispositivo e certificar-se que ele compatvel
com estes padres de comunicao.
Durante o desenvolvimento do BitVoicer alguns produtos dos fabricantes abaixo foram utilizados e esto
mais propensos a serem compatveis:
Arduino
Roving Networks
Digi International
Atmel Corporation
Sparkfun Electronics
2 Primeiros passos
2.1 Instalao
Para realizar os procedimentos de instalao a seguir, ser necessrio ter iniciado o Windows em uma
conta com permisses administrativas:
BitSophia - www.bitsophia.com.br
1) Baixe o arquivo
(www.bitsophia.com).
de
instalao
BitVoicerSetup_v12_xXX.exe
do
site
da
BitSophia
File New: inicia a criao de um novo Esquema de Voz iniciando o editor na rea de trabalho
do aplicativo.
File Open: permite a abertura de Esquemas de Voz previamente gravados. Por padro, a
pasta inicial exibida a mesma informada em File Preferences Default output folder.
File Close: fecha o Esquema de Voz atualmente aberto. Caso o Esquema de Voz atual
tenha sido alterado, uma caixa de mensagem perguntar ao usurio se deseja salvar o
Esquema de Voz atual.
OBS: a utilizao de qualquer uma das opes acima interrompe o reconhecimento de voz caso
ele esteja sendo executado.
File Save: grava o Esquema de Voz atual. Caso este esquema ainda no tenha sido gravado
anteriormente, uma caixa de dialogo solicitar ao usurio que informe o nome e a localizao do
arquivo a ser gravado.
File Save as: grava o Esquema de Voz atual em arquivo e local a ser especificado pelo
usurio.
File Preferences: abre o formulrio onde devem ser informadas todas as configuraes
padres do BitVoicer.
File Exit: encerra o aplicativo e o motor de reconhecimento de voz caso ela esteja sendo
executada. Se o Esquema de Voz aberto tiver sido alterado e no for salvo, o BitVoicer ir
perguntar ao usurio se este deseja gravar o Esquema de Voz antes de encerrar o aplicativo.
Help BitVoicer manual: abre o manual de referncia do BitVoicer.
Help Activation: abre o formulrio que iniciar o processo de ativao da sua cpia do
BitVoicer. Caso a ativao j tenha sido feita, este formulrio ficar inacessvel ao usurio.
Help About BitVoicer: exibe todas as informaes sobre sua cpia do BitVoicer alm de
dados para contato.
2.3 Ativao
Para poder utilizar as interfaces de comunicao do BitVoicer, necessrio realizar a ativao de sua
cpia com uma chave de produto vlida. Caso voc ainda no possua esta chave, adquira a sua em
www.bitsophia.com.
Com a chave de produto em mos, abra o BitVoicer como administrador (clique no atalho do BitVoicer
com o boto direito do mouse e selecione Executar como administrador) e acesse a opo Activation no
menu Help do BitVoicer. Voc dever ver o formulrio a seguir:
BitSophia - www.bitsophia.com.br
Aps informar uma chave de produto vlida, clique em Activate. Neste ponto, seu computador dever
estar conectado internet para que o servio de ativao da BitSophia possa confirmar a chave de produto
informada.
Na caixa de texto abaixo do boto Activate, possvel acompanhar o processo de ativao e visualizar
qualquer erro que ocorra durante este processo. Caso a ativao seja bem sucedida, uma caixa de
mensagem ir avisar que sua cpia do BitVoicer est ativada e o motor de reconhecimento de voz j pode
ser iniciado.
Durante o processo de ativao, o BitVoicer gera um cdigo exclusivo para o seu computador. Este
cdigo ser criptografado e armazenado nos servidores da BitSophia, porm no ser utilizado para
contata-lo no futuro e no ser compartilhado com terceiros.
Uma vez ativada, a chave de produto no poder ser utilizada para ativao de qualquer verso do
BitVoicer em outro computador. Sendo assim, ative sua cpia do BitVoicer apenas na mquina que deseja
utilizar o software.
3 Configuraes
Para acessar o formulrio de configurao do BitVoicer clique em Preferences no menu File. Voc
dever visualizar o formulrio a seguir:
BitSophia - www.bitsophia.com.br
3.1 Inicializao
As seguintes opes de inicializao podem ser alteradas nas configuraes de inicializao do
BitVoicer:
Open BitVoicer when you log on to the computer (Abra o BitVoicer quando voc logar no
computador): quando esta opo estiver marcada, o BitVoicer ir iniciar junto com o Windows e
aparecer minimizado na barra de tarefas do seu computador.
Activate speech recognition when the BitVoicer starts (Ativar reconhecimento de voz
quando o BitVoicer iniciar): quando esta opo estiver marcada, o BitVoicer ir iniciar o motor
de reconhecimento de voz logo aps ser aberto. Caso esta opo seja marcada, ser
necessrio informar tambm um Esquema de Voz padro (Default Voice Schema) que ser
carregado logo aps a abertura do BitVoicer. Voc pode utilizar a ferramenta de busca de
arquivos (boto Search), localizada direita da caixa de texto Default Voice Schema, para
selecionar o arquivo padro.
Default output folder (Pasta de sada padro): esta a pasta padro utilizada para gravar os
esquemas de voz criados no BitVoicer. Voc pode utilizar a ferramenta de busca de pastas
BitSophia - www.bitsophia.com.br
(boto Search), localizada direita da caixa de texto Default output folder, para selecionar a
pasta padro.
Alemo (Alemanha)
Catalo
Chins (China, Honk Kong e Taiwan)
Coreano (Coria)
Dinamarqus (Dinamarca)
Espanhol (Mxico e Espanha)
Finlands (Finlndia)
Francs (Canada e Frana)
Holands (Holanda)
Ingls (Austrlia, Canada, ndia, Reino Unido e Estados Unidos)
Italiano (Itlia)
Japons (Japo)
Noruegus (Noruega)
Polons (Polnia)
Portugus (Brasil e Portugal)
Russo (Rssia)
Sueco (Sucia)
Por padro, o BitVoicer instalado com ingls (US) apenas. Se voc precisar instalar qualquer idioma
adicional, consulte a seo Idiomas Adicionais (item 3.2.1.1).
BitSophia - www.bitsophia.com.br
A caixa de listagem com os idiomas exibe apenas os idiomas que no esto instalados em seu
computador. Selecione um dos idiomas da lista e clique no boto Install (instalar). Depois do download e
instalao do pacote de idioma, ser possvel selecionar o idioma recentemente instalado no formulrio de
preferncias (consulte a seo 3).
BitSophia - www.bitsophia.com.br
3.2.4 Audio Level Activated Period (Perodo ativado por nvel de udio)
O perodo ativado por nvel de udio se inicia quando o nvel mnimo de udio atingido. Este perodo
se renova sempre que o nvel mnimo de udio atingido e toda fala reconhecida neste perodo ser aceita
pelo BitVoicer, independentemente do nvel de udio no momento do reconhecimento, a no ser que:
Para entender melhor a funo desta configurao, preciso entender em que ordem os filtros do
BitVoicer atuam e seus graus de prioridade:
Filtro
Nvel de confiana
Nvel de udio
Perodo de ativao por nvel de udio
Perodo de latncia
Perodo de ativao por palavra de ativao
Atuao
1 a atuar
2 a atuar
3 a atuar
4 a atuar
5 a atuar
Prioridade
5
4
3
2
1
De acordo com a tabela acima, os nveis de prioridade mais alta (sendo 1 a mais elevada e 5 a mais
baixa) anulam o reconhecimento aceito por filtros de prioridade mais baixa. Por exemplo, se todos os filtros
validarem um reconhecimento de voz, mas o 5 filtro (cuja prioridade mais elevada) recusar o
reconhecimento, o BitVoicer ir considerar a fala rejeitada. Em outras palavras, todos os filtros devem
validar um reconhecimento para que o BitVoicer aceite determinada fala.
O perodo ativado por nvel de udio deve ser informado em milissegundos (1000 milisegundos = 1
segundo) e deve ser levada em considerao a quantidade de palavras e o tempo necessrio para concluir
a pronncia das sentenas presentes no Esquema de Voz.
BitSophia - www.bitsophia.com.br
Para mais informaes sobre perodo ativado por nvel de udio, consulte a seo Desempenho do
reconhecimento de voz (item 3.2.6).
Fale de maneira clara e firme. Quanto mais tempo o motor de reconhecimento de voz
permanecer em execuo, maior ser a preciso no estabelecimento de nveis de confiana
adequados;
Pronunciar as palavras com sotaque adequado fundamental para aumentar o nvel de
confiana das sentenas reconhecidas. Se o idioma utilizado no for seu idioma nativo, ser
necessrio dar maior ateno pronncia correta das palavras.
Mantenha o microfone a, no mnimo, um metro de outras fontes de som como alto-falantes e
televisores. Se a interferncia de outras fontes de udio persistir, considere a adoo de um
microfone direcional neste caso;
Evite criar sentenas muito curtas que contenham apenas palavras com uma ou duas slabas. O
motor de reconhecimento de voz do BitVoicer pode identificar estas palavras em diversas partes
da linguagem cotidiana e gerar falsos positivos.
Caso voc esteja utilizando uma palavra de ativao (item 4.4), recomendamos o uso de
palavras com 3 ou mais slabas e cuja ocorrncia na linguagem cotidiana seja pequena;
Para evitar falsos positivos (reconhecimento aceito que deveria ter sido rejeitado), aumente
gradativamente o nvel de confiana aceitvel (preciso decimal) nas configuraes do
BitVoicer;
Em ambientes abertos, com grande quantidade de rudo e/ou outras pessoas falando, considere
a adoo de um headset (h opes sem fio no mercado) e aumente o nvel mnimo de udio
nas configuraes do BitVoicer. Ao utilizar um headset, a boca fica mais prxima do microfone e
a qualidade e o nvel de udio aumentam. Aumentando tambm o nvel mnimo de udio no
BitVoicer, voc evita que a fala de outras pessoas ao redor sejam reconhecidas pelo motor de
reconhecimento de voz.
Considere aumentar gradativamente o nvel mnimo de udio caso estejam ocorrendo falsos
positivos provenientes de outras fontes de udio cujo volume baixo;
Considere aumentar o perodo de latncia para evitar falsos positivos. Dessa forma, o
BitVoicer ir ignorar reconhecimentos imediatamente posteriores a um reconhecimento vlido.
Caso voc tambm esteja utilizando uma palavra de ativao, o perodo de latncia deve ser
menor, j que, na maioria dos casos, uma fala deve sim ser reconhecida logo aps a palavra de
ativao;
Estabelecer um perodo de ativao por nvel de udio correto tambm pode evitar falsos
positivos. Se este perodo de ativao for muito maior que o tempo necessrio para se
pronunciar as sentenas do Esquema de Voz, aumentar a probabilidade de um
reconhecimento com baixo nvel de udio ser aceito. Isso ocorre porque o BitVoicer no ir
rejeitar por baixo nvel de udio reconhecimentos ocorridos dentro deste perodo.
Caso a captao de udio esteja sendo realizada atravs de um microfone conectado ao microcontrolador, certifique-se que a frequncia de amostragem no seja menor que 8000 ou maior
10
BitSophia - www.bitsophia.com.br
que 8200 captaes por segundo. O desempenho do reconhecimento de voz pode ser alterado
de forma imprevisvel caso a amostragem esteja fora desta faixa. Certifique-se tambm que o
udio enviado ao BitVoicer est livre de interferncias ou rudos causados pela CPU do microcontrolador, por erros de comunicao, por variaes de voltagem ou por flutuaes de
medio.
3.3 Comunicao
Nesta seo das preferncias, voc configura o meio utilizado pelo BitVoicer para se comunicar com
seu micro-controlador:
Em ambas as interfaces de comunicao, o BitVoicer ir bloquear as portas em uso assim que o motor
de reconhecimento de voz for iniciado. Nenhuma outra aplicao no computador ter acesso a estas portas.
No entanto, possvel enviar dados de seu micro-controlador de volta para o PC e visualizar os dados
enviados no painel monitor de comunicao (item 7.2).
Voc tambm pode desabilitar o envio de informaes ao micro-controlador selecionando Disable
communications. Mesmo com esta opo selecionada, possvel iniciar o motor de reconhecimento de voz
e monitorar a atividade do BitVoicer no painel de atividade (item 7.1).
11
BitSophia - www.bitsophia.com.br
O campo Samples per Second (amostras por segundo) exibe a quantidade de amostras recebidas
pelo BitVoicer a cada segundo. Esse valor pode ser usado como referncia para que seja ajustada a
quantidade de captaes de udio feitas pelo micro-controlador.
O campo Reference Audio Level (nvel de udio de referncia) exibe o valor mdio das amostras
recebidas. Em uma onda de udio, este valor representa o centro da amplitude da onda como demostrado
na figura abaixo. Como o BitVoicer processa amostras de 8 bits (0 a 255), os valores ideais para este
campo so 128 ou 129. Mais informaes sobre udio streaming na seo 6 deste manual.
Ao clicar no boto Start (Iniciar), o BitVoicer envia o comando Start Sampling (Iniciar amostragem)
para o micro-controlador. O boto Stop, por sua vez, envia o comando Stop Sampling (Parar
amostragem) quando pressionado. Mais informaes sobre comandos do BitVoicer na seo Comunicao
(item 5) deste manual.
Item Simgle
turn
Item Option
on
off
Item Single
the
Item Option
lights
tube
oven
shower
12
BitSophia - www.bitsophia.com.br
turn
turn
turn
turn
turn
turn
turn
turn
on
on
on
on
off
off
off
off
Anagrams
the
the
the
the
the
the
the
the
lights
tube
oven
shower
lights
tube
oven
shower
Para melhor compreenso, esta seria a rvore de possibilidades encontrada no Esquema de Voz:
lights
on
tube
the
shower
oven
turn
lights
tube
off
the
oven
shower
No Editor de Esquemas de Voz do BitVoicer, esta seria a apresentao do Esquema de Voz acima:
13
BitSophia - www.bitsophia.com.br
14
BitSophia - www.bitsophia.com.br
Ao clicar neste boto, uma nova sentena adicionada ao Esquema de Voz. Por padro, esta sentena
j criada com um item Single (simples) em branco. direita do item de sentena, tambm aparecem dois
botes para adio e excluso de itens (mais detalhes no item 4.3).
O boto Delete Selected Sentences, localizado direita do boto Add New Sentences, remove as
sentenas marcadas na caixa de seleo localizada no incio de cada sentena (identificado pela seta
laranja). Remover qualquer sentena do Esquema de Voz tambm remove todos os comandos associados
a esta sentena. Caso seus comandos possuam dados que voc no quer perder, lembre-se de copiar os
dados dos comandos antes de remover uma sentena.
Note que, ao inserir uma sentena, um anagrama criado na rea Sentence Anagrams do quadro de
comandos. Este anagrama aparece com a descrio {EMPTY}, por que no h qualquer dado nesta
posio da sentena que permita a criao de um anagrama completo. Diferente de um item Single, um
item de sentena do tipo Option (consulte o item 4.3 logo a seguir) aparecer com a descrio [{EMPTY}]
quando este estiver vazio.
Um Esquema de Voz pode conter inmeras sentenas e os anagramas criados com base em cada uma
dessas sentenas sero colocados em ordem no painel de comandos. Tome como exemplo um Esquema
de Voz com duas sentenas, sendo que cada sentena possui quatro anagramas possveis. O painel de
comandos exibir primeiro os quatro anagramas da primeira sentena e, em seguida, os quatro anagramas
da segunda sentena, ou seja, os anagramas no se misturam. O ltimo anagrama de uma sentena
sempre define o incio dos anagramas da sentena seguinte.
Um aspecto muito importante sobre o motor de reconhecimento de voz do BitVoicer que ele sempre
identifica uma sentena por inteiro e no apenas parte dela. Suponha que voc possua a seguinte sentena
em seu esquema de voz: v para frente dez centmetros. O motor de reconhecimento de voz espera ouvir
a frase completa e no apenas parte dela como, por exemplo, v para frente. Nesta situao, o motor de
reconhecimento de voz deve rejeitar o reconhecimento. Se voc desejar que o BitVoicer identifique ambas
as sentenas (v para frente e v para frente dez centmetros), ser necessrio criar duas sentenas.
Uma para cada frase.
Single (Simples): os itens Single representam uma posio na sentena cujo contedo
comum a todas as permutaes possveis. Um item Single pode conter uma palavra ou um
conjunto de palavras consideradas como uma unidade.
15
BitSophia - www.bitsophia.com.br
Option (Opo): os itens Option so compostos por um conjunto de opes que podem variar
dentro daquela posio na sentena. Se um item Option contiver apenas uma opo, ele
apresentar o mesmo comportamento de um item Single dentro do Esquema de Voz. Da
mesma forma que um item Single, cada opo dentro de um item Option pode ser composta por
apenas uma palavra ou um conjunto de palavras consideradas como uma unidade.
Veja que os itens Single (1 e 4 itens) se repetem em todos os anagramas. Mesmo para o primeiro item
Single, formado por duas palavras, no h criao de permutaes para cada uma das palavras contidas
neste item.
O 2 e o 3 item so itens do tipo Option e, neste caso, os anagramas sofrem permutaes exatamente
na posio a que cada um deles pertence. Nestes itens do tipo Option, possvel notar que nmeros no
devem ser utilizados em um Esquema de Voz em sua forma numeral (1,2,3 ...), mas, sim, em sua forma
literal (um, dois, trs ...).
Para diferenciar entre um item de sentena do tipo Single ou Option, basta selecionar a opo
correspondente em cada item. Nos itens do tipo Single, os botes de + (adio) e (remoo) e a caixa de
listagem de opes ficam desabilitadas. Ao alterar um item de sentena para o tipo Option, estas opes do
item tornam-se ativas.
Para adicionar uma opo em um item Option, voc deve digitar o texto da opo na caixa de texto do
item e clicar no boto + (adio) ou, ainda, simplesmente digitar o texto e pressionar ENTER. O BitVoicer
automaticamente adicionar a opo lista de opes.
Para remover uma opo em um item Option, selecione a opo na caixa de listagem de opes e
clique no boto (remoo). Remover qualquer opo de um item Option tambm remove todos os
comandos associados a esta opo. Caso seus comandos possuam dados que voc no quer perder,
lembre-se de copiar os dados dos comandos antes de remover uma opo.
16
BitSophia - www.bitsophia.com.br
O perodo de ativao por palavra de ativao representa o perodo durante o qual no necessrio
repetir esta palavra para que o BitVoicer considere um reconhecimento como vlido. Este perodo deve ser
informado em segundos.
A palavra de ativao pode ser usada para imprimir pessoalidade ao Esquema de Voz ou como forma
de evitar falsos positivos. Neste ltimo caso, deve-se considerar a utilizao de palavras de ativao cuja
ocorrncia seja pequena na linguagem cotidiana e recomenda-se o uso de palavras com 3 ou mais slabas.
Vale lembrar que a palavra de ativao um dos filtros utilizados pelo BitVoicer para aceitar ou rejeitar
um reconhecimento (consulte o item 3.2.4).
necessrio estar com um Esquema de Voz aberto para poder iniciar o reconhecimento de voz e este
esquema no pode conter qualquer anagrama com a descrio {EMPTY} ou [{EMPTY}], ou seja, no pode
haver qualquer item de sentena vazio no Esquema de Voz. No necessrio estar com todos os
comandos preenchidos no painel de comandos, mas quando o anagrama correspondente a este comando
for identificado pelo motor de reconhecimento de voz, o painel de atividade ir informar um erro ao enviar
comando.
S ser possvel utilizar as interfaces de comunicao se voc possuir uma cpia ativada do BitVoicer.
Para ativar sua cpia consulte o item 2.3 deste manual.
Vale lembrar que o BitVoicer ir bloquear a porta de comunicao especificada nas preferncias e esta
porta permanecer bloqueada at que o motor de reconhecimento de voz seja parado. Ao iniciar o
reconhecimento, tambm no ser possvel realizar qualquer edio no Esquema de Voz e os painis de
informao (consulte item 7) passaro a exibir diversas informaes sobre o estado do aplicativo e da
comunicao. Para ganhar acesso novamente ao Esquema de Voz, necessrio parar o motor de
reconhecimento.
Ao clicar no boto Start ou Stop, o BitVoicer envia uma atualizao de status para o micro-controlador.
Este status pode ser Engine Runnning (motor funcionando) ou Engine Stopped (motor parado). Para
maiores informaes sobre a troca de dados entre micro-controladores e o BitVoicer, consulte a seo
Comunicao (item 5).
17
BitSophia - www.bitsophia.com.br
Esta ferramenta especialmente til se voc est criando um Esquema de Voz com muitos anagramas
e lhe poupar trabalho quando estiverem sendo definidos os comandos do Esquema de Voz.
5 Comunicao
O BitVoicer pode se comunicar com o micro-controlador atravs de portas seriais ou portas TCP/IP
(consulte o item 3.3). Qualquer que seja o meio de comunicao utilizado, a maioria dos dados trocados
entre o BitVoicer e o micro-controlador so formatados em um protocolo prprio descrito no item 5.1. Este
protocolo s no utilizado quando o BitVoicer est recebendo fluxo de udio enviado pelo microcontrolador (item 6).
A comunicao entre o BitVoicer e o micro-controlador se d em 5 situaes:
18
BitSophia - www.bitsophia.com.br
Nome
Inicio de transmisso
Posio do
Byte
1
Valor
1
Tipo de dado
1 = Char
2 = Int
3 = Byte
4 = String
254 = Comando
255 = Status
Dados
4an
Fim de transmio
n+1
Descrio
Marcador de inicio de transmisso
Embora os comandos sejam formatados segundo estes parmetros, em essncia, todos os dados
enviados so uma sequncia de bytes cujo comprimento ir variar em funo do tipo de dado e da
quantidade de informao a ser enviada.
O primeiro byte de um datagrama sempre deve conter o valor 1 (0x01). Este byte sinaliza o comeo de
um datagrama. O segundo byte, cujo valor pode ser aqueles da coluna Valor na tabela acima, informa o tipo
de dado contido no campo Dados. O terceiro byte indica o comprimento, em bytes, do campo Dados. Como
o campo Comprimento dos Dados composto de apenas um byte, o maior comprimento possvel para o
campo Dados 255 (maior valor possvel em apenas um byte). O quarto campo contm os dados
propriamente ditos e seu comprimento aquele informado no terceiro byte. O quinto campo deve conter o
valor 4 (0x04) e indica o fim do datagrama. Este campo pode ser utilizado para checar se um datagrama
completo foi recebido.
As informaes contidas no campo Dados do datagrama so formatadas conforme a descrio a seguir:
19
BitSophia - www.bitsophia.com.br
conter o valor 1 (0x01) para iniciar a amostragem ou o valor 0 (0x00) para encerrar a
amostragem;
Dados Status: um datagrama com este tipo de dado enviado sempre que se inicia ou se
encerra o motor de reconhecimento de voz. Ao iniciar o reconhecimento de voz atravs do
boto Start do Editor de Esquemas de Voz (item 4.1), o valor 1 (0x01 Engine Running)
empacotado em um datagrama e enviado ao micro-controlador. Ao clicar no boto Stop, o valor
0 (0x00 Engine Stopped) enviado da mesma forma.
5.3 Comandos
Os comandos so dados que o BitVoicer envia ao micro-controlador em resposta a um reconhecimento
de voz. Estes dados so formatados em um protocolo prprio (consulte o item 5.1) e podem ser dos
seguintes tipos:
O painel de comandos (localizado logo abaixo do construtor de sentenas) o local onde se informam
os comandos para cada anagrama gerado no Esquema de Voz. A figura abaixo mostra um trecho do painel
de comandos e alguns comandos de exemplo:
20
BitSophia - www.bitsophia.com.br
Para utilizar a biblioteca BitVoicer em seu sketch, necessrio copiar toda a pasta BitVoicer11 para a
sub-pasta libraries localizada dentro da pasta de instalao da IDE Arduino. Em seguida, adicione a
referncia para a biblioteca BitVoicer no incio do cdigo como exibido abaixo:
#include <BitVoicer11.h>
Para obter maiores informaes sobre como utilizar uma biblioteca em seus sketches, consulte o tutorial
sobre bibliotecas disponvel no site do Arduino (http://arduino.cc/en/Hacking/LibraryTutorial).
OBS 1: A biblioteca BitVoicer para Arduino for feita para funcionar com todas as boards Arduino
exceto a board Arduino Due.
OBS 2: Por padro, a biblioteca BitVoicer utiliza a classe Serial da plataforma Arduino para
implementar comunicao serial. Se for necessrio utilizar qualquer outra interface serial (Serial1,
Serial2 ou Serial3), ser necessrio substituir todas as ocorrncias da classe Serial na biblioteca
BitVoicer pela interface serial desejada.
O ponto central da biblioteca BitVoicer para Arduino a classe BitVoicerSerial. Esta classe contm uma
srie de variveis e funes utilizadas para se comunicar com o BitVoicer e recuperar dados enviados pelo
programa. Para ter acesso as funes desta classe, crie uma instncia global da classe BitVoicerSerial
adicionando o trecho de cdigo abaixo antes das funes setup() e loop() no seu sketch:
BitVoicerSerial bvSerial = BitVoicerSerial();
Antes de utilizar a instncia da classe BitVoicerSerial criada acima, ser necessrio iniciar a
comunicao serial de sua board Arduino. Para isso, insira o trecho de cdigo abaixo dentro da funo
setup() de seu sketch:
Serial.begin(115200);
Lembre-se que a velocidade de comunicao acima deve ser a mesma informada nas preferncias do
BitVoicer (item 3.3) caso a comunicao se d atravs de porta serial.
Neste ponto, todas as configuraes necessrias para comear a interagir com o BitVoicer foram
concludas. Consulte o tpico a seguir para obter informaes sobre todas as variveis e funes
disponveis na classe BitVoicerSerial. O item 5.5 deste manual contm tambm dois exemplos prticos de
como ligar ou desligar um LED conectado a sua board. O primeiro exemplo utiliza captao de udio pelo
microfone do computador e o segundo utiliza um microfone conectado ao micro-controlador.
Construtor:
o BitVoicerSerial(): retorna uma instncia da classe BitVoicerSerial com todas as
variveis pblicas configuradas com seus valores padro.
Constantes:
o BUFFER_SIZE: contm o valor padro do buffer interno da classe BitVoicerSerial. Valor
= 64;
o BV_DEFAULT: utilizada para configurar a voltagem de referncia nos pinos de entrada
analgica. Valor = 3;
o BV_EXTERNAL: utilizada para configurar a voltagem de referncia nos pinos de
entrada analgica. Valor = 1;
o BV_UNDEFINED: pode ser usada para testar o tipo de dado retornado pela funo
getData(). Valor = 0;
o BV_CHAR: pode ser usada para checar o tipo de dado retornado pela funo getData().
Valor = 1;
21
BitSophia - www.bitsophia.com.br
BV_INT: pode ser usada para checar o tipo de dado retornado pela funo getData().
Valor = 2;
o BV_BYTE: pode ser usada para checar o tipo de dado retornado pela funo getData().
Valor = 3;
o BV_STR: pode ser usada para checar o tipo de dado retornado pela funo getData().
Valor = 4;
o BV_COMMAND: pode ser usada para checar o tipo de dado retornado pela funo
getData(). Valor = 254;
o BV_STATUS: pode ser usada para checar o tipo de dado retornado pela funo
getData(). Valor = 255;
o BV_STARTSAMPLING: pode ser usada para checar o dado contido em um datagrama
do tipo Comando. Valor = 1;
o BV_STOPSAMPLING: pode ser usada para checar o dado contido em um datagrama
do tipo Comando. Valor = 0;
o BV_ENGINERUNNING: pode ser usada para checar o status do motor de
reconhecimento de voz na varivel pblica engineRunning da classe BitVoicerSerial.
Valor = 1;
o BV_ENGINESTOPPED: pode ser usada para checar o status do motor de
reconhecimento de voz na varivel pblica engineRunning da classe BitVoicerSerial.
Valor = 0;
Variveis Pblicas:
o byte byteData: armazena o valor da ltima leitura feita pela funo getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo byte. Essa varivel
pode ser acessada e alterada a qualquer momento pelo cdigo do usurio. Default = 0;
o char charData: armazena o valor da ltima leitura feita pela funo getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo char. Essa varivel
pode ser acessada e alterada a qualquer momento pelo cdigo do usurio. Default = 0;
o int intData: armazena o valor da ltima leitura feita pela funo getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo int. Essa varivel
pode ser acessada e alterada a qualquer momento pelo cdigo do usurio. Default = 0;
o String strData: armazena o valor da ltima leitura feita pela funo getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo String. Essa varivel
pode ser acessada e alterada a qualquer momento pelo cdigo do usurio. Default = 0;
o byte cmdData: armazena o valor da ltima leitura feita pela funo getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo comando. Essa
varivel pode ser acessada e alterada a qualquer momento pelo cdigo do usurio.
Esta varivel s ser alterada pela classe BitVoicerSerial durante a execuo da
ferramenta de Calibrao de udio Streaming (item 3.4.2). Default = 0;
o boolean engineRunning: armazena o valor da ltima leitura feita pela funo getData()
caso haja algum dado no buffer serial de entrada e caso o dado seja do tipo status.
Essa varivel pode ser acessada e alterada a qualquer momento pelo cdigo do
usurio. O valor desta varivel ser alterado ao iniciar ou parar o motor de
reconhecimento de voz (item 4.5). Default = false;
Funes:
o getData(): realiza uma leitura do buffer de entrada do Arduino, armazena o dado
existente no datagrama na varivel pblica correspondente e retorna o tipo de dado
contido no datagrama. Se o datagrama estiver corrompido ou no corresponder ao
formato do protocolo BitVoicer, os dados do buffer so descartados at o inicio do
prximo datagrama e a funo retorna 0 (BV_UNDEFINED).
o setAudioInput(byte pin): configura o Arduino para fazer leituras analgicas rpidas no
pino de entrada analgico passado funo. Sem a utilizao desta funo, o
conversor analgico-digital (ADC) do micro-controlador ATMEL trabalha com um clock
22
BitSophia - www.bitsophia.com.br
o
o
muito baixo. Uma vez que uma preciso de apenas 8 bits necessria para que o
BitVoicer possa analisar o fluxo de udio recebido, aumentar o clock do conversor ADC
no causa prejuzo preciso do conversor e torna possvel a obteno de pelo menos
8000 amostras por segundo.
undoAudioInput(): retorna as configuraes do conversor ADC para os padres
originais de fbrica.
setAnalogReference(byte mode): altera a voltagem de referncia a ser utilizada pelo
conversor analgico-digital. Por padro, as boards Arduino utilizam 3.3 ou 5 volts como
voltagem de referncia nas medies feitas pelo ADC. Se for utilizada qualquer
voltagem de referncia conectada ao pino AREF, obrigatoriamente, deve-se chamar
esta funo passando a constante BV_EXTERNAL como parmetro antes de chamar a
funo setAudioInput() ou processAudio(). Se isso no for feito, a voltagem de
referncia interna do Arduino e a voltagem recebida em AREF causaro um curtocircuito que pode danificar sua board.
startStopListening(): sinaliza ao BitVoicer para iniciar ou parar de considerar os dados
recebidos do micro-controlador como fluxo de udio. Antes de iniciar a transmisso de
fluxo de udio, necessrio chamar esta funo para que o BitVoicer passe a
direcionar o udio recebido para o motor de reconhecimento de voz e no para o painel
Monitor de Comunicao. Uma vez iniciada a transmisso de udio, para enviar
qualquer dado a ser exibido no Monitor de Comunicao, necessrio chamar esta
funo para que o BitVoicer deixe de considerar os dados recebidos como fluxo de
udio e direcione os dados para o Monitor de Comunicao. Se isto no for feito,
qualquer informao recebida pelo BitVoicer enquanto ele estiver processando fluxo de
udio, ser considerada udio e enviada ao motor de reconhecimento de voz. O sinal
enviado ao BitVoicer consiste em uma sequencia de bytes com os seguintes valores:
{255, 255, 255, 255, 0, 0, 0, 0}.
processAudio(unsigned int wait): realiza uma leitura rpida no pino analgico
passado funo setAudioInput(). O valor passado a esta funo o tempo que a
funo ir esperar antes de realizar uma leitura e deve ser informado em
microssegundos (1 microsegundo = 1000 milisegundos). Este tempo deve ser utilizado
para calibrar as tomadas de medio de modo que se atinja o valor mais prximo
possvel de 8000 leituras por segundo. Assim que a medio estiver completa, esta
funo envia ao BitVoicer o valor da medio (1 byte valor 0 a 255). Por esta razo,
esta funo deve ser chamada em intervalos regulares de tempo a fim de evitar
distores no udio digitalizado.
sendToBV(var data): empacota o dado passado a ela em um datagrama do BitVoicer e
envia esta informao ao BitVoicer a fim de exibi-la no Monitor de Comunicao. Os
dados aceitos so do tipo char, byte, int ou String. Caso esteja sendo processado fluxo
de udio, necessrio chamar a funo startStopListening() antes e depois desta
funo.
23
BitSophia - www.bitsophia.com.br
Em seguida, copie e cole o sketch abaixo na IDE Arduino e envie o cdigo para a board. Lembre-se que
preciso copiar a pasta contendo os arquivos da biblioteca BitVoicer para a pasta library da IDE Arduino
antes de compilar e enviar seu sketch (consulte o item 5.4).
24
BitSophia - www.bitsophia.com.br
25
BitSophia - www.bitsophia.com.br
Observao importante: note na ligao acima que o pino de 3.3 volts do Arduino est sendo utilizado
como voltagem de referncia (AREF) para o conversor analgico-digital (ADC). Esta configurao se fez
necessria, pois, embora o microfone electrec da Sparkfun funcione em voltagens de 2.7V a 5.5V, no foi
possvel obter leituras satisfatrias com este microfone conectado diretamente fonte de 5 volts do Arduino.
Foi necessrio conectar o microfone fonte de 3.3 volts da board e conectar AREF (referncia analgica)
mesma fonte de 3.3 volts. Dessa forma, foi possvel obter leituras em todo o espectro de valores de 8 bits (0
a 255) com leituras em ambiente silencioso oscilando entre 128 e 129. Atenco: no utilize a funo
analogRead() do Arduino com qualquer voltagem de referncia conectada AREF. Isso pode danificar
sua board se a funo analogReference() no for chamada anteriormente. No cdigo abaixo, a funo
setAnalogReference() da biblioteca BitVoicer chamada para configurar adequadamente a voltagem de
referncia para o conversor ADC do Arduino. Essa funo DEVE ser chamada antes de qualquer outra
funo da classe BitVoicerSerial caso esteja sendo aplicada qualquer voltagem AREF.
Em seguida, copie e cole o sketch abaixo na IDE Arduino e envie o cdigo para a board. Lembre-se que
preciso copiar a pasta contendo os arquivos da biblioteca BitVoicer para a pasta library da IDE Arduino
antes de compilar e enviar seu sketch (consulte o item 5.4).
26
BitSophia - www.bitsophia.com.br
27
BitSophia - www.bitsophia.com.br
6 udio Streaming
O BitVoicer pode processar voz captada por um microfone conectado ao micro-controlador e enviada ao
BitVoicer como fluxo de udio. Usando tambm uma interface de comunicao wireless, possvel dar
capacidades de reconhecimento de voz avanadas a qualquer micro-controlador, mantendo o microcontrolador fisicamente separado do computador.
Copyright BitSophia Software Ltda. 2013. Todos os direitos reservados.
28
BitSophia - www.bitsophia.com.br
As medies devem ocorrer em intervalos de tempo regulares. Para obter 8000 amostras por
segundo, necessrio realizar uma medio a cada 125 microsegundos. Neste intervalo devem
ser considerados:
o O tempo necessrio para realizar a medio;
o O tempo necessrio para o conversor ADC realizar a converso;
o O tempo gasto em outras atividades executadas pelo micro-controlador entre as
medies.
Oscilaes na tenso fornecida ao microfone;
Flutuaes de voltagem na porta de medio;
Aterramento inadequado;
Interferncia de outros circuitos;
Erros de comunicao.
29
BitSophia - www.bitsophia.com.br
de udio e seja necessrio enviar dados ao painel Monitor de Comunicao, devem ser enviados os
seguintes bytes ao programa: { 255, 255, 255, 255, 0, 0, 0, 0 } + Anagrama formatado no Protocolo BitVoicer
+ { 255, 255, 255, 255, 0, 0, 0, 0 }. Este ciclo avisa o BitVoicer para parar de processar fluxo de udio, em
seguida o anagrama processado e depois o motor de reconhecimento de voz passa a ouvir novamente
ao fluxo de udio.
7 Painis de informao
Os painis de informao esto localizados na parte direita do Editor de Esquemas de Voz. Estes
painis permanecem inativos durante a edio de um esquema, mas exibem informaes valiosas assim
que o reconhecimento de voz iniciado.
OBS.: Se o BitVoicer estiver recebendo fluxo de udio captado em um ambiente silencioso e, mesmo
assim, o nvel de udio atingir constantemente um valor superior a 4, isso quer dizer que o BitVoicer est
recebendo noise (erros no sinal de udio - http://en.wikipedia.org/wiki/Noise) em excesso. Isso pode
comprometer significativamente o desempenho do reconhecimento de voz (consulte o item 6 para maiores
informaes).
Estas so as informaes exibidas neste painel:
Audio Level (nvel de udio): a barra de nvel de udio e o campo logo a sua direita exibem o
nvel de udio captado pelo motor de reconhecimento de voz em tempo real. Esta informao
atualizada 10 vezes por segundo no BitVoicer.
Level Average (nvel mdio): esta mdia calculada tomando-se por base o perodo informado
na opo Audio level activated period das preferncias, ou seja, a mdia calculada para este
perodo e as leituras so feitas a cada 100 milisegundos.
Activity (atividade): este painel exibe informaes sobre erros, inicializao e finalizao do
motor de reconhecimento de voz, alm de informaes sobre o envio de comandos e resultados
30
BitSophia - www.bitsophia.com.br
no reconhecimento de voz. Estas so as mensagens que podem aparecer neste painel durante
a utilizao do BitVoicer:
o
Error: unable to open serial port (Erro: impossvel abrir porta serial): verifique se seu
micro-controlador est corretamente conectado e se a porta de comunicao serial
informada nas preferncias est correta e desbloqueada. Se voc no possui um microcontrolador, desabilite as comunicaes em File Preferences.
o
o
Error: unable to create command data (Erro: impossvel criar dados do comando): o
comando para o anagrama identificado est vazio.
Error: unable to write to serial port (Erro: impossvel enviar para a porta serial):
verifique se seu micro-controlador est corretamente conectado e se a porta de
comunicao serial informada nas preferncias est correta e desbloqueada.
Error: unable to send TCP/IP packet (Erro: impossvel enviar pacote TCP/IP):
verifique se o endereo IP de destino e a porta TCP esto disponveis e no esto
bloqueados por outro aplicativo. Verifique tambm as informaes sobre o IP de destino
em File Preferences.
31
BitSophia - www.bitsophia.com.br
- Audio Level Limit Not Reached (nvel de udio no atingido): consulte item
3.2.3
- Max Audio Level: XX (nvel de udio mximo: XX): nvel de udio mais alto
atingido durante o reconhecimento.
- Audio Level Average: XX (mdia do nvel de udio: XX): mdia do nvel de
udio no momento do reconhecimento.
- Confidence Level: XXX (nvel de confiana: XXX)
- Text: XXX (texto: XXX): texto rejeitado.
32
BitSophia - www.bitsophia.com.br
33
BitSophia - www.bitsophia.com.br
O boto Clear Monitor, localizado no rodap deste painel, limpa toda a informao enviada pelo microcontrolador.
OBS.: Se o BitVoicer estiver recebendo fluxo de udio enviado pelo micro-controlador, necessrio
sinalizar ao BitVoicer antes de enviar informaes a serem exibidas neste painel (consulte o item 6.1 para
maiores informaes sobre sinalizao).
8 Suporte e contato
34