bitvoicer 1.2
TRANSCRIPT
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 1
BitVoicer 1.2
Manual do Usuário
Português
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 2
Sumário
1 APRESENTAÇÃO _____________________________________________________________________ 3
1.1 REQUISITOS MÍNIMOS _________________________________________________________________ 3
1.2 COMPATIBILIDADE ____________________________________________________________________ 3
1.3 AVISO DE SEGURANÇA _________________________________________________________________ 3
2 PRIMEIROS PASSOS __________________________________________________________________ 3
2.1 INSTALAÇÃO ________________________________________________________________________ 3
2.2 INTERFACE GRÁFICA ___________________________________________________________________ 4
2.3 ATIVAÇÃO _________________________________________________________________________ 4
3 CONFIGURAÇÕES ____________________________________________________________________ 5
3.1 INICIALIZAÇÃO_______________________________________________________________________ 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 (NÍVEL DE CONFIANÇA ACEITÁVEL) _________________________________ 8
3.2.3 MINIMUM AUDIO LEVEL (NÍVEL MÍNIMO DE ÁUDIO)____________________________________________ 8
3.2.4 AUDIO LEVEL ACTIVATED PERIOD (PERÍODO ATIVADO POR NÍVEL DE ÁUDIO) ____________________________ 9
3.2.5 LATENCY PERIOD (PERÍODO DE LATÊNCIA) __________________________________________________ 10
3.2.6 DESEMPENHO DO RECONHECIMENTO DE VOZ _______________________________________________ 10
3.3 COMUNICAÇÃO _____________________________________________________________________ 11
3.4 AUDIO INPUT (ENTRADA DE ÁUDIO) _______________________________________________________ 11
3.4.1 AUDIO STREAMING CALIBRATION (CALIBRAÇÃO DE ÁUDIO STREAMING) _____________________________ 11
4 CRIANDO, EDITANDO E USANDO ESQUEMAS DE VOZ ______________________________________ 12
4.1 O ESQUEMA DE VOZ _________________________________________________________________ 12
4.2 ADICIONANDO SENTENÇAS _____________________________________________________________ 14
4.3 ITENS DE SENTENÇA __________________________________________________________________ 15
4.4 PALAVRA DE ATIVAÇÃO _______________________________________________________________ 16
4.5 INICIANDO E PARANDO O RECONHECIMENTO DE VOZ ___________________________________________ 17
4.6 TIPO DE DADO PADRÃO PARA COMANDOS __________________________________________________ 18
4.7 EXEMPLO PRÁTICO ___________________________________________________________________ 18
5 COMUNICAÇÃO ____________________________________________________________________ 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 REFERÊNCIA DA BIBLIOTECA BITVOICER PARA ARDUINO _________________________________________ 21
5.5 EXEMPLOS DE UTILIZAÇÃO 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 SINALIZANDO PARA O BITVOICER _________________________________________________________ 29
7 PAINÉIS DE INFORMAÇÃO ____________________________________________________________ 30
7.1 NÍVEL DE ÁUDIO, ATIVIDADE, STATUS E ERROS ________________________________________________ 30
7.2 MONITOR DE COMUNICAÇÃO ___________________________________________________________ 34
8 SUPORTE E CONTATO _______________________________________________________________ 34
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 3
1 Apresentação
BitVoicer é o software de reconhecimento de voz que traz para o universo dos micro-controladores todo
o poder de processamento e análise de voz dos PCs. Sua tecnologia de reconhecimento de voz e o uso de
padrões de comunicação comuns na indústria (TCP/IP e Serial/UART) tornam extremamente fácil e rápida a
criação de funcionalidades complexas de reconhecimento de voz para praticamente qualquer micro-
controlador programável disponível no mercado.
Este manual irá guia-lo pelo processo de instalação e configuração do BitVoicer, demonstrar a incrível
flexibilidade dos Esquemas de Voz da BitSophia e apresentar todas as ferramentas disponíveis no
aplicativo.
1.1 Requisitos mínimos
Sistema operacional Windows Vista, 7, 8 ou 10 (exceto Windows 10 IoT Core e Windows 10
Mobile)
Microsoft .NET Framework 4.0 ou posterior
Uma das interfaces de comunicação a seguir:
o Porta Serial
o USB (usada como porta COM virtual)
o Adaptador Ethernet
o Adaptador Wireless
Conexão com a internet (para ativação ou instalação de idiomas adicionais)
1.2 Compatibilidade
A principio, o BitVoicer é compatível com qualquer micro-controlador programável e/ou shield que utilize
comunicação TCP/IP baseada em sockets ou comunicação serial (interface UART). No entanto, você deve
consultar atentamente a documentação do fabricante do seu dispositivo e certificar-se que ele é compatível
com estes padrões de comunicação.
Durante o desenvolvimento do BitVoicer alguns produtos dos fabricantes abaixo foram utilizados e estão
mais propensos a serem compatíveis:
Arduino
Roving Networks
Digi International
Atmel Corporation
Sparkfun Electronics
1.3 Aviso de segurança
O BitVoicer não deve ser utilizado em qualquer aplicação de missão crítica, suporte a vida, condução e
operação de maquinário ou veículos automotores, ou ainda, qualquer aplicação cujo mau funcionamento
possa causar dano à propriedade e ao meio-ambiente ou atentar contra a saúde de pessoas ou animais. A
BitSophia não autoriza o uso de seu software em qualquer uma destas aplicações, assumindo, o usuário,
quaisquer responsabilidades pela violação desta proibição.
2 Primeiros passos
2.1 Instalação
Para realizar os procedimentos de instalação a seguir, será necessário ter iniciado o Windows em uma
conta com permissões administrativas:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 4
1º) Baixe o arquivo de instalação BitVoicerSetup_v12_xXX.exe do site da BitSophia
(www.bitsophia.com).
2º) Execute o arquivo de instalação e siga os passos do assistente de instalação. Será necessário
concordar com os termos do contrato de licença do BitVoicer e escolher a pasta para instalação do
aplicativo.
3º) Execute o aplicativo através do link criado em sua área de trabalho ou através do link em Iniciar
Todos os Programas BitSohia BitVoicer. A ativação do BitVoicer não será solicitada até que se
pressione o botão para iniciar o motor de reconhecimento de voz.
2.2 Interface gráfica
A interface gráfica do BitVoicer é composta basicamente por 2 áreas: menus e área de trabalho. Os
menus, descritos abaixo e encontrados no topo da tela, acessam funcionalidades exibidas sempre na área
de trabalho:
File New: inicia a criação 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 padrão, 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 usuário se deseja salvar o
Esquema de Voz atual.
OBS: a utilização de qualquer uma das opções acima interrompe o reconhecimento de voz caso
ele esteja sendo executado.
File Save: grava o Esquema de Voz atual. Caso este esquema ainda não tenha sido gravado
anteriormente, uma caixa de dialogo solicitará ao usuário que informe o nome e a localização do
arquivo a ser gravado.
File Save as: grava o Esquema de Voz atual em arquivo e local a ser especificado pelo
usuário.
File Preferences: abre o formulário onde devem ser informadas todas as configurações
padrões 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 não for salvo, o BitVoicer irá
perguntar ao usuário se este deseja gravar o Esquema de Voz antes de encerrar o aplicativo.
Help BitVoicer manual: abre o manual de referência do BitVoicer.
Help Activation: abre o formulário que iniciará o processo de ativação da sua cópia do
BitVoicer. Caso a ativação já tenha sido feita, este formulário ficará inacessível ao usuário.
Help About BitVoicer: exibe todas as informações sobre sua cópia do BitVoicer além de
dados para contato.
2.3 Ativação
Para poder utilizar as interfaces de comunicação do BitVoicer, é necessário realizar a ativação de sua
cópia com uma chave de produto válida. Caso você ainda não possua esta chave, adquira a sua em
www.bitsophia.com.
Com a chave de produto em mãos, abra o BitVoicer como administrador (clique no atalho do BitVoicer
com o botão direito do mouse e selecione “Executar como administrador”) e acesse a opção Activation no
menu Help do BitVoicer. Você deverá ver o formulário a seguir:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 5
Após informar uma chave de produto válida, clique em Activate. Neste ponto, seu computador deverá
estar conectado à internet para que o serviço de ativação da BitSophia possa confirmar a chave de produto
informada.
Na caixa de texto abaixo do botão Activate, é possível acompanhar o processo de ativação e visualizar
qualquer erro que ocorra durante este processo. Caso a ativação seja bem sucedida, uma caixa de
mensagem irá avisar que sua cópia do BitVoicer está ativada e o motor de reconhecimento de voz já pode
ser iniciado.
Durante o processo de ativação, o BitVoicer gera um código exclusivo para o seu computador. Este
código será criptografado e armazenado nos servidores da BitSophia, porém não será utilizado para
contata-lo no futuro e não será compartilhado com terceiros.
Uma vez ativada, a chave de produto não poderá ser utilizada para ativação de qualquer versão do
BitVoicer em outro computador. Sendo assim, ative sua cópia do BitVoicer apenas na máquina que deseja
utilizar o software.
3 Configurações
Para acessar o formulário de configuração do BitVoicer clique em Preferences no menu File. Você
deverá visualizar o formulário a seguir:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 6
O BitVoicer já vem configurado com um conjunto de preferências padrão e o motor de reconhecimento
de voz pode ser iniciado sem qualquer configuração inicial.
3.1 Inicialização
As seguintes opções de inicialização podem ser alteradas nas configurações de inicialização do
BitVoicer:
Open BitVoicer when you log on to the computer (Abra o BitVoicer quando você logar no
computador): quando esta opção 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 opção estiver marcada, o BitVoicer irá iniciar o motor
de reconhecimento de voz logo após ser aberto. Caso esta opção seja marcada, será
necessário informar também um Esquema de Voz padrão (Default Voice Schema) que será
carregado logo após a abertura do BitVoicer. Você pode utilizar a ferramenta de busca de
arquivos (botão Search), localizada à direita da caixa de texto Default Voice Schema, para
selecionar o arquivo padrão.
Default output folder (Pasta de saída padrão): esta é a pasta padrão utilizada para gravar os
esquemas de voz criados no BitVoicer. Você pode utilizar a ferramenta de busca de pastas
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 7
(botão Search), localizada à direita da caixa de texto Default output folder, para selecionar a
pasta padrão.
3.2 Reconhecimento de voz
Esta seção das preferências é responsável pelo adequado funcionamento do motor de reconhecimento
de voz. Embora o BitVoicer já venha configurado com um conjunto de preferências padrão, é necessário ler
atentamente os itens 3.2.1 a 3.2.6 caso deseje aprimorar seu funcionamento.
3.2.1 Speech Recognition Language (Idioma do reconhecimento de voz)
A caixa de seleção Speech recognition language exibe os idiomas de reconhecimento de voz instalados
em seu computador. Até o momento, os seguintes idiomas estão disponíveis:
Alemão (Alemanha)
Catalão
Chinês (China, Honk Kong e Taiwan)
Coreano (Coréia)
Dinamarquês (Dinamarca)
Espanhol (México e Espanha)
Finlandês (Finlândia)
Francês (Canada e França)
Holandês (Holanda)
Inglês (Austrália, Canada, Índia, Reino Unido e Estados Unidos)
Italiano (Itália)
Japonês (Japão)
Norueguês (Noruega)
Polonês (Polônia)
Português (Brasil e Portugal)
Russo (Rússia)
Sueco (Suécia)
Por padrão, o BitVoicer é instalado com inglês (US) apenas. Se você precisar instalar qualquer idioma
adicional, consulte a seção “Idiomas Adicionais” (item 3.2.1.1).
3.2.1.1 Idiomas Adicionais
Para poder instalar idiomas adicionais, é necessário iniciar o BitVoicer com privilégios administrativos
(“Executar como Administrador”) e estar conectado a Internet.
Primeiro, clique em Additional Languages (idiomas adicionais) no menu File (arquivo). Você deverá ver
o formulário abaixo:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 8
A caixa de listagem com os idiomas exibe apenas os idiomas que não estão instalados em seu
computador. Selecione um dos idiomas da lista e clique no botão Install (instalar). Depois do download e
instalação do pacote de idioma, será possível selecionar o idioma recentemente instalado no formulário de
preferências (consulte a seção 3).
3.2.2 Acceptable Confidence Level (Nível de confiança aceitável)
O nível de confiança aceitável representa a probabilidade relativa mínima que é necessária para que o
motor de reconhecimento de voz do BitVoicer aceite determinada fala. O nível de confiança não indica a
probabilidade absoluta da alternativa reconhecida corresponder a uma determinada fala, mas sim a
probabilidade de ela estar correta dentre as múltiplas alternativas disponíveis no Esquema de Voz. Suponha
um Esquema de Voz com dez alternativas de reconhecimento: durante o processo de reconhecimento, será
dada a cada uma dessas alternativas uma “nota” (1 a 100%) que representa a probabilidade desta
alternativa, dentre todas as alternativas disponíveis, corresponder à fala detectada. A alternativa que
receber a maior “nota” será aquela aceita pelo motor de reconhecimento de voz. Ao informar um nível de
confiança aceitável, você estabelece um limite mínimo para esta “nota” e todos os reconhecimentos que
tenham nível de confiança inferior a este limite, serão rejeitados, ou seja, não será enviado qualquer
comando ao micro-controlador.
O nível de confiança aceitável é um valor percentual entre 1 e 100 e o uso de casas decimais é
significativo para determinar se uma fala será aceita ou rejeitada.
Ao configurar o nível de confiança, deve-se considerar que diferentes interlocutores obterão diferentes
níveis de confiança para a mesma fala. Dessa forma, é preciso configurar o nível de confiança aceitável de
modo a satisfazer as “notas” obtidas pelos diversos interlocutores usuários do aplicativo. No entanto, baixar
demasiadamente o nível de confiança aceitável pode levar o BitVoicer a aceitar reconhecimentos que, na
verdade, deveriam ser rejeitados.
A melhor forma de obter uma base para o nível de confiança aceitável é realizando testes de
reconhecimento de voz. Para isso, desabilite a comunicação do BitVoicer (consulte o item 3.3 deste
manual), carregue um Esquema de Voz e inicie o motor de reconhecimento (item 4.5). Observe os níveis de
confiança obtidos no painel de atividade (item 7.1). Neste painel é possível ver a “nota” atribuída a cada
reconhecimento e obter uma base para o nível de confiança aceitável.
É importante ressaltar que mudanças no ambiente também afetam significativamente os níveis de
confiança obtidos. Por esta razão, quando houver mudança significativa no ambiente (aumento de ruídos de
fundo ou mudança no nível de áudio médio), poderá ser necessário rever a configuração de nível de
confiança aceitável.
Para mais informações sobre nível de confiança aceitável, consulte a seção “Desempenho do
reconhecimento de voz” (item 3.2.6).
3.2.3 Minimum Audio Level (Nível mínimo de áudio)
O nível mínimo de áudio funciona de forma semelhante ao nível de confiança aceitável, ou seja, é um
limite mínimo que deve ser superado para que determinada fala seja aceita pelo BitVoicer.
Assim que o motor de reconhecimento de voz é iniciado, ele passa a armazenar o nível de áudio
captado do ambiente. Com base na configuração do item a seguir (Audio level activate period) é feita uma
média do nível de áudio no período. Caso o nível de áudio, durante o reconhecimento, não atinja esta média
acrescida do nível mínimo de áudio, a fala será rejeitada. Em outras palavras, para que uma fala seja
reconhecida e aceita, em algum momento do processo de reconhecimento, o nível de áudio deve atingir ou
ultrapassar o valor representado pela média do nível de áudio acrescido do nível de áudio mínimo.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 9
A figura a seguir ilustra o conceito por traz dessa configuração:
3.2.4 Audio Level Activated Period (Período ativado por nível de áudio)
O período ativado por nível de áudio se inicia quando o nível mínimo de áudio é atingido. Este período
se renova sempre que o nível mínimo de áudio é atingido e toda fala reconhecida neste período será aceita
pelo BitVoicer, independentemente do nível de áudio no momento do reconhecimento, a não ser que:
O nível de confiança seja inferior ao nível de confiança aceitável;
O momento do reconhecimento esteja dentro do período de latência (item 3.2.5);
A palavra de ativação (item 4.4) não tenha sido identificada, caso esta opção tenha sido
selecionada;
O momento do reconhecimento não esteja dentro do período de ativação por palavra de
ativação, caso esta opção tenha sido selecionada.
Para entender melhor a função desta configuração, é preciso entender em que ordem os filtros do
BitVoicer atuam e seus graus de prioridade:
De acordo com a tabela acima, os níveis 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 período ativado por nível de áudio deve ser informado em milissegundos (1000 milisegundos = 1
segundo) e deve ser levada em consideração a quantidade de palavras e o tempo necessário para concluir
a pronúncia das sentenças presentes no Esquema de Voz.
Filtro Atuação Prioridade
Nível de confiança 1º a atuar 5º
Nível de áudio 2º a atuar 4º
Período de ativação por nível de áudio 3º a atuar 3º
Período de latência 4º a atuar 2º
Período de ativação por palavra de ativação 5º a atuar 1º
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 10
Para mais informações sobre período ativado por nível de áudio, consulte a seção “Desempenho do
reconhecimento de voz” (item 3.2.6).
3.2.5 Latency Period (Período de latência)
O período de latência se inicia logo após um reconhecimento de voz ter sido aceito pelo BitVoicer (o
reconhecimento tem que ter passado por todos os filtros). Neste período, qualquer reconhecimento será
rejeitado mesmo que passe pelos filtros anteriores. O período de latência impede que novos
reconhecimentos sejam aceitos logo após um reconhecimento válido, prevenindo o envio de comandos em
sequência, o que poderia interferir na execução de um comando previamente enviado ao micro-controlador.
3.2.6 Desempenho do reconhecimento de voz
Esta seção fornece algumas dicas para melhorar o desempenho do motor de reconhecimento de voz do
BitVoicer em diversas situações. Talvez seja necessário executar mais de uma dessas dicas para atingir o
desempenho desejado:
Fale de maneira clara e firme. Quanto mais tempo o motor de reconhecimento de voz
permanecer em execução, maior será a precisão no estabelecimento de níveis de confiança
adequados;
Pronunciar as palavras com sotaque adequado é fundamental para aumentar o nível de
confiança das sentenças reconhecidas. Se o idioma utilizado não for seu idioma nativo, será
necessário dar maior atenção à pronúncia correta das palavras.
Mantenha o microfone a, no mínimo, um metro de outras fontes de som como alto-falantes e
televisores. Se a interferência de outras fontes de áudio persistir, considere a adoção de um
microfone direcional neste caso;
Evite criar sentenças muito curtas que contenham apenas palavras com uma ou duas sílabas. 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 ativação (item 4.4), recomendamos o uso de
palavras com 3 ou mais sílabas e cuja ocorrência na linguagem cotidiana seja pequena;
Para evitar “falsos positivos” (reconhecimento aceito que deveria ter sido rejeitado), aumente
gradativamente o nível de confiança aceitável (precisão decimal) nas configurações do
BitVoicer;
Em ambientes abertos, com grande quantidade de ruído e/ou outras pessoas falando, considere
a adoção de um headset (há opções sem fio no mercado) e aumente o nível mínimo de áudio
nas configurações do BitVoicer. Ao utilizar um headset, a boca fica mais próxima do microfone e
a qualidade e o nível de áudio aumentam. Aumentando também o nível mínimo 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 nível mínimo de áudio caso estejam ocorrendo “falsos
positivos” provenientes de outras fontes de áudio cujo volume é baixo;
Considere aumentar o período de latência para evitar “falsos positivos”. Dessa forma, o
BitVoicer irá ignorar reconhecimentos imediatamente posteriores a um reconhecimento válido.
Caso você também esteja utilizando uma palavra de ativação, o período de latência deve ser
menor, já que, na maioria dos casos, uma fala deve sim ser reconhecida logo após a palavra de
ativação;
Estabelecer um período de ativação por nível de áudio correto também pode evitar “falsos
positivos”. Se este período de ativação for muito maior que o tempo necessário para se
pronunciar as sentenças do Esquema de Voz, aumentará a probabilidade de um
reconhecimento com baixo nível de áudio ser aceito. Isso ocorre porque o BitVoicer não irá
rejeitar por baixo nível de áudio reconhecimentos ocorridos dentro deste período.
Caso a captação de áudio esteja sendo realizada através de um microfone conectado ao micro-
controlador, certifique-se que a frequência de amostragem não seja menor que 8000 ou maior
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 11
que 8200 captações por segundo. O desempenho do reconhecimento de voz pode ser alterado
de forma imprevisível caso a amostragem esteja fora desta faixa. Certifique-se também que o
áudio enviado ao BitVoicer está livre de interferências ou ruídos causados pela CPU do micro-
controlador, por erros de comunicação, por variações de voltagem ou por flutuações de
medição.
3.3 Comunicação
Nesta seção das preferências, você configura o meio utilizado pelo BitVoicer para se comunicar com
seu micro-controlador:
Use USB/Serial Communication (Use comunicação USB/Serial): ao selecionar esta opção, é
necessário informar a qual porta serial seu micro-controlador está conectado (ex. COM4,
COM8, etc) e os outros parâmetros de comunicação serial. É possível que velocidades de
comunicação (Bits per Second) elevadas provoquem erros de comunicação em determinados
computadores ou micro-controladores. Se você acreditar que está recebendo informações
incorretas em seu micro-controlador, tente reduzir a velocidade de comunicação.
Use TCP/IP Communication (Use comunicação TCP/IP): ao selecionar esta opção, é
necessário informar o endereço IP de destino dos comandos e a porta de comunicação no
endereço de destino. O micro-controlador de destino deve suportar comunicação baseada em
soquetes (Berkeley sockets).
Em ambas as interfaces de comunicação, o BitVoicer irá bloquear as portas em uso assim que o motor
de reconhecimento de voz for iniciado. Nenhuma outra aplicação no computador terá acesso a estas portas.
No entanto, é possível enviar dados de seu micro-controlador de volta para o PC e visualizar os dados
enviados no painel monitor de comunicação (item 7.2).
Você também pode desabilitar o envio de informações ao micro-controlador selecionando Disable
communications. Mesmo com esta opção selecionada, é possível iniciar o motor de reconhecimento de voz
e monitorar a atividade do BitVoicer no painel de atividade (item 7.1).
3.4 Audio Input (Entrada de áudio)
O BitVoicer pode processar áudio captado através do microfone instalado no computador ou através de
um microfone conectado ao micro-controlador. A opção “Audio Input” permite que seja selecionada a fonte
de áudio desejada. Para maiores informações a respeito da captação de áudio através de micro-
controladores, consulte a seção “Audio Streaming” (item 6).
3.4.1 Audio Streaming Calibration (Calibração de Áudio Streaming)
Se a captação de áudio for feita pelo micro-controlador e enviada ao BitVoicer na forma de fluxo de
áudio, será necessário executar esta ferramenta para que o BitVoicer possa estabelecer corretamente o
nível do áudio recebido. O painel de informações sobre os níveis de áudio (item 7.1) e o filtro de nível de
áudio (item 3.2.3) dependem diretamente dos valores obtidos nesta ferramenta.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 12
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 referência para que seja ajustada a
quantidade de captações de áudio feitas pelo micro-controlador.
O campo “Reference Audio Level” (nível de áudio de referência) exibe o valor médio 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 são 128 ou 129. Mais informações sobre áudio streaming na seção 6 deste manual.
Ao clicar no botão “Start” (Iniciar), o BitVoicer envia o comando “Start Sampling” (Iniciar amostragem)
para o micro-controlador. O botão “Stop”, por sua vez, envia o comando “Stop Sampling” (Parar
amostragem) quando pressionado. Mais informações sobre comandos do BitVoicer na seção Comunicação
(item 5) deste manual.
4 Criando, editando e usando Esquemas de Voz
4.1 O Esquema de Voz
O esquema de voz é a estrutura sobre a qual o BitVoicer trabalha para associar um comando específico
a uma sentença reconhecida pelo motor de reconhecimento de voz. Para atingir esse objetivo, o BitVoicer
se utiliza de duas funções principais do Esquema de Voz: criar todas as permutações (chamados de
anagramas) possíveis para uma sentença e mapear cada um desses anagramas para o comando
correspondente.
Os anagramas são criados calculando-se todas as permutações possíveis a partir dos itens de sentença
(item 4.3). Considere o modelo de sentença abaixo:
Item Simgle Item Option Item Single Item Option
turn on the lights
off tube
oven
shower
O BitVoicer criaria os seguintes anagramas no Esquema de Voz:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 13
Anagrams
turn on the lights
turn on the tube
turn on the oven
turn on the shower
turn off the lights
turn off the tube
turn off the oven
turn off the shower
Para melhor compreensão, esta seria a árvore de possibilidades encontrada no Esquema de Voz:
No Editor de Esquemas de Voz do BitVoicer, esta seria a apresentação do Esquema de Voz acima:
turn
on
off
the
lights
tube
oven
shower
the
lights
tube
oven
shower
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 14
Após criar todos os anagramas possíveis, o BitVoicer permite o mapeamento de um comando
específico para cada anagrama, como pode ser visto na parte inferior da tela.
Outra característica importante nos Esquemas de Voz da BitSophia é a flexibilidade. A qualquer
momento é possível inserir, alterar ou excluir itens de sentença ou sentenças inteiras. O BitVoicer
imediatamente recalcula toda a árvore de possibilidades e cria os anagramas correspondentes no Esquema
de Voz. A capacidade de incluir sentenças ou itens de sentença não foi limitada no aplicativo e o tamanho
de um Esquema de Voz virtualmente não tem limites. Os únicos fatores limitadores de um Esquema de Voz
são a capacidade de processamento de sua máquina e a memória disponível.
Uma última consideração importante sobre os Esquemas de Voz: ao iniciar o reconhecimento de voz, o
BitVoicer carrega todas as sentenças e analisa as entradas de áudio para procurar a melhor
correspondência (anagrama) dentre todas as sentenças disponíveis. Por esta razão, pode-se dizer que as
sentenças constituem o “vocabulário” do motor de reconhecimento de voz. Caso o usuário pronuncie uma
palavra fora deste “vocabulário”, em qualquer posição da sentença, o motor de reconhecimento de voz fará
uma aproximação com as palavras disponíveis nesta posição a fim de encontrar uma correspondência no
Esquema de Voz. No entanto, essa aproximação, na maioria das vezes, levará a uma rejeição no
reconhecimento de voz.
4.2 Adicionando sentenças
O primeiro passo para iniciar a construção de um Esquema de Voz é adicionar uma sentença. Para
isso, você deve utilizar o botão Add New Sentence (identificado pela seta vermelha na figura abaixo)
localizado no canto superior esquerdo do Editor de Esquemas de Voz.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 15
Ao clicar neste botão, uma nova sentença é adicionada ao Esquema de Voz. Por padrão, esta sentença
já é criada com um item Single (simples) em branco. À direita do item de sentença, também aparecem dois
botões para adição e exclusão de itens (mais detalhes no item 4.3).
O botão Delete Selected Sentences, localizado à direita do botão Add New Sentences, remove as
sentenças marcadas na caixa de seleção localizada no início de cada sentença (identificado pela seta
laranja). Remover qualquer sentença do Esquema de Voz também remove todos os comandos associados
a esta sentença. Caso seus comandos possuam dados que você não quer perder, lembre-se de copiar os
dados dos comandos antes de remover uma sentença.
Note que, ao inserir uma sentença, um anagrama é criado na área Sentence Anagrams do quadro de
comandos. Este anagrama aparece com a descrição {EMPTY}, por que não há qualquer dado nesta
posição da sentença que permita a criação de um anagrama completo. Diferente de um item Single, um
item de sentença do tipo Option (consulte o item 4.3 logo a seguir) aparecerá com a descrição [{EMPTY}]
quando este estiver vazio.
Um Esquema de Voz pode conter inúmeras sentenças e os anagramas criados com base em cada uma
dessas sentenças serão colocados em ordem no painel de comandos. Tome como exemplo um Esquema
de Voz com duas sentenças, sendo que cada sentença possui quatro anagramas possíveis. O painel de
comandos exibirá primeiro os quatro anagramas da primeira sentença e, em seguida, os quatro anagramas
da segunda sentença, ou seja, os anagramas não se misturam. O último anagrama de uma sentença
sempre define o início dos anagramas da sentença seguinte.
Um aspecto muito importante sobre o motor de reconhecimento de voz do BitVoicer é que ele sempre
identifica uma sentença por inteiro e não apenas parte dela. Suponha que você possua a seguinte sentença
em seu esquema de voz: “vá para frente dez centímetros”. O motor de reconhecimento de voz espera ouvir
a frase completa e não apenas parte dela como, por exemplo, “vá para frente”. Nesta situação, o motor de
reconhecimento de voz deve rejeitar o reconhecimento. Se você desejar que o BitVoicer identifique ambas
as sentenças (“vá para frente” e “vá para frente dez centímetros”), será necessário criar duas sentenças.
Uma para cada frase.
4.3 Itens de sentença
Cada sentença em um Esquema de Voz é composta por uma sequência de itens de sentença. Estes
itens de sentença podem ser de dois tipos:
Single (Simples): os itens Single representam uma posição na sentença cujo conteúdo é
comum a todas as permutações possíveis. Um item Single pode conter uma palavra ou um
conjunto de palavras consideradas como uma unidade.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 16
Option (Opção): os itens Option são compostos por um conjunto de opções que podem variar
dentro daquela posição na sentença. Se um item Option contiver apenas uma opção, ele
apresentará o mesmo comportamento de um item Single dentro do Esquema de Voz. Da
mesma forma que um item Single, cada opção dentro de um item Option pode ser composta por
apenas uma palavra ou um conjunto de palavras consideradas como uma unidade.
A sentença abaixo utiliza alguns itens Single e Option em sua construção:
E este é o conjunto de anagramas criados com base na sentença acima:
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, não há criação de permutações para cada uma das palavras contidas
neste item.
O 2º e o 3º item são itens do tipo Option e, neste caso, os anagramas sofrem permutações exatamente
na posição a que cada um deles pertence. Nestes itens do tipo Option, é possível notar que números não
devem ser utilizados em um Esquema de Voz em sua forma numeral (1,2,3 ...), mas, sim, em sua forma
literal (um, dois, três ...).
Para diferenciar entre um item de sentença do tipo Single ou Option, basta selecionar a opção
correspondente em cada item. Nos itens do tipo Single, os botões de + (adição) e – (remoção) e a caixa de
listagem de opções ficam desabilitadas. Ao alterar um item de sentença para o tipo Option, estas opções do
item tornam-se ativas.
Para adicionar uma opção em um item Option, você deve digitar o texto da opção na caixa de texto do
item e clicar no botão + (adição) ou, ainda, simplesmente digitar o texto e pressionar ENTER. O BitVoicer
automaticamente adicionará a opção à lista de opções.
Para remover uma opção em um item Option, selecione a opção na caixa de listagem de opções e
clique no botão – (remoção). Remover qualquer opção de um item Option também remove todos os
comandos associados a esta opção. Caso seus comandos possuam dados que você não quer perder,
lembre-se de copiar os dados dos comandos antes de remover uma opção.
4.4 Palavra de ativação
A palavra de ativação é uma palavra, ou um conjunto de palavras, que deve ser pronunciada antes da
sentença propriamente dita. Você pode pronunciar a palavra de ativação e a sentença de forma contínua ou
apenas a palavra de ativação e, dentro do período de ativação, a sentença propriamente dita. Ao selecionar
Use Activation Word(s) (Use palavra(s) de ativação) no esquema de voz (figura abaixo), o BitVoicer só irá
aceitar um reconhecimento se a palavra de ativação for pronunciada antes da sentença.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 17
O período de ativação por palavra de ativação representa o período durante o qual não é necessário
repetir esta palavra para que o BitVoicer considere um reconhecimento como válido. Este período deve ser
informado em segundos.
A palavra de ativação pode ser usada para imprimir pessoalidade ao Esquema de Voz ou como forma
de evitar “falsos positivos”. Neste último caso, deve-se considerar a utilização de palavras de ativação cuja
ocorrência seja pequena na linguagem cotidiana e recomenda-se o uso de palavras com 3 ou mais sílabas.
Vale lembrar que a palavra de ativação é um dos filtros utilizados pelo BitVoicer para aceitar ou rejeitar
um reconhecimento (consulte o item 3.2.4).
4.5 Iniciando e parando o reconhecimento de voz
Para iniciar o reconhecimento de voz, basta clicar no botão Start localizado no centro da parte superior
do Editor de Esquemas de Voz.
É necessário estar com um Esquema de Voz aberto para poder iniciar o reconhecimento de voz e este
esquema não pode conter qualquer anagrama com a descrição {EMPTY} ou [{EMPTY}], ou seja, não pode
haver qualquer item de sentença vazio no Esquema de Voz. Não é necessário 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á possível utilizar as interfaces de comunicação se você possuir uma cópia ativada do BitVoicer.
Para ativar sua cópia consulte o item 2.3 deste manual.
Vale lembrar que o BitVoicer irá bloquear a porta de comunicação especificada nas preferências e esta
porta permanecerá bloqueada até que o motor de reconhecimento de voz seja parado. Ao iniciar o
reconhecimento, também não será possível realizar qualquer edição no Esquema de Voz e os painéis de
informação (consulte item 7) passarão a exibir diversas informações sobre o estado do aplicativo e da
comunicação. Para ganhar acesso novamente ao Esquema de Voz, é necessário parar o motor de
reconhecimento.
Ao clicar no botão Start ou Stop, o BitVoicer envia uma atualização de status para o micro-controlador.
Este status pode ser “Engine Runnning” (motor funcionando) ou “Engine Stopped” (motor parado). Para
maiores informações sobre a troca de dados entre micro-controladores e o BitVoicer, consulte a seção
Comunicação (item 5).
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 18
4.6 Tipo de dado padrão para comandos
Sempre que um novo anagrama é criado no Esquema de Voz, ele é adicionado ao painel de comandos.
O tipo de dado padrão deste comando é definido de acordo com o valor da caixa de listagem Default
Command Data Type (tipo de dado padrão dos comandos) localizada logo abaixo do botão Add New
Sentence do Editor de Esquemas de Voz.
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.
4.7 Exemplo prático
No pacote de instalação do BitVoicer há um exemplo de Esquema de Voz completo (Sample.vsc). Este
esquema pode ser encontrado na pasta VoiceSchemas da pasta de instalação do BitVoicer. Trata-se de um
Esquema de Voz para controle de uma cama hospitalar automatizada. Esse esquema seria útil em um
centro médico onde os pacientes se encontram em estado de mobilidade reduzida.
5 Comunicação
O BitVoicer pode se comunicar com o micro-controlador através de portas seriais ou portas TCP/IP
(consulte o item 3.3). Qualquer que seja o meio de comunicação utilizado, a maioria dos dados trocados
entre o BitVoicer e o micro-controlador são formatados em um protocolo próprio descrito no item 5.1. Este
protocolo só não é utilizado quando o BitVoicer está recebendo fluxo de áudio enviado pelo micro-
controlador (item 6).
A comunicação entre o BitVoicer e o micro-controlador se dá em 5 situações:
Ao utilizar a ferramenta de Calibração de Áudio Streaming (item 3.4.2), quando se clica no
botão Start ou Stop;
Ao iniciar ou parar o motor de reconhecimento de voz;
Quando um reconhecimento de voz é aceito;
Quando se envia alguma informação do micro-controlador para ser exibida no painel Monitor de
Comunicação;
Durante todo o período que o BitVoicer estiver recebendo fluxo de áudio enviado pelo micro-
controlador.
5.1 Protocolo BitVoicer
O Protocolo BitVoicer consiste em uma série de parâmetros de formatação que devem ser seguidos
para trocar informações entre o BitVoicer e os micro-controladores. Este protocolo deve ser utilizado em
ambos os sentidos de comunicação: BitVoicer micro-controlador e micro-controlador BitVoicer.
A tabela abaixo descreve a formatação dos datagramas enviados e recebidos pelo BitVoicer:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 19
Nome Posição do
Byte Valor Descrição
Inicio de transmissão 1 1 Marcador de inicio de transmissão
Tipo de dado 2
1 = Char 2 = Int
3 = Byte 4 = String
254 = Comando 255 = Status
Indica o tipo de dado carregado pelo datagrama
Comprimento dos Dados 3 X Comprimento, em bytes, do campo dados
Dados 4 a n X Contém os dados propriamente ditos n = 3 + Comprimento dos dados
Fim de transmição n + 1 4 Marcador de fim de transmissão
Embora os comandos sejam formatados segundo estes parâmetros, em essência, todos os dados
enviados são uma sequência de bytes cujo comprimento irá variar em função do tipo de dado e da
quantidade de informação a ser enviada.
O primeiro byte de um datagrama sempre deve conter o valor 1 (0x01). Este byte sinaliza o começo 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 possível para o
campo Dados é 255 (maior valor possível em apenas um byte). O quarto campo contém 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 informações contidas no campo Dados do datagrama são formatadas conforme a descrição a seguir:
Dados Char: corresponde a apenas um caractere imprimível da tabela ASCII
(http://en.wikipedia.org/wiki/ASCII). O comprimento deste tipo de dado será sempre 1 byte e seu
valor será o valor decimal correspondente ao caractere na tabela ASCII;
Dados Int: contém um valor inteiro de 16 bits entre -32768 e 32767. O comprimento deste tipo
de dados será sempre 2 bytes (little-endian: http://en.wikipedia.org/wiki/Endianness) que,
quando combinados, constituem o valor inteiro enviado;
Dados Byte: corresponde a um inteiro sem sinal de 8 bits entre 0 e 255. Ao inserir um valor do
tipo byte no painel de comandos do BitVoicer (localizado logo abaixo do construtor de
sentenças), deve-se seguir o seguinte formato: b00000000, onde 0 pode ser 0 ou 1 (exemplos
de comandos do BitVoicer no item 5.3);
Dados String: corresponde a uma sequência de caracteres cujo comprimento máximo varia em
função da direção da comunicação. Por causa da limitação de tamanho do buffer de entrada de
alguns micro-controladores, a maior sequência de caracteres que pode ser enviada para o
micro-controlador é igual a 59 caracteres. No sentido contrário, quando uma string é enviada ao
BitVoicer, o maior comprimento da sequência de caracteres está limitado ao tamanho máximo
do campo Dados do protocolo BitVoicer (255 caracteres). O valor de cada caractere será o valor
decimal correspondente ao caractere na tabela ASCII (http://en.wikipedia.org/wiki/ASCII);
Dados Comando: este tipo de dado não deve ser confundido com os comandos enviados ao
micro-controlador em resposta a um reconhecimento válido e cujo conteúdo é definido pelo
usuário (item 5.3). Atualmente, o BitVoicer envia apenas dois valores do tipo comando ao micro-
controlador: Start Sampling (Iniciar amostragem) e Stop Sampling (Parar amostragem). Este
comando é enviado apenas pela ferramenta Calibração de Áudio Streaming (item 3.4.2) e
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 20
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 através do
botão 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 botão Stop, o valor
0 (0x00 – Engine Stopped) é enviado da mesma forma.
5.2 Enviando dados ao BitVoicer
O BitVoicer monitora constantemente os dados recebidos na porta utilizada para se comunicar com o
micro-controlador. Os dados recebidos nesta porta também devem ser formatados de acordo com os
parâmetros do Protocolo BitVoicer e seu conteúdo é exibido no painel Monitor de Comunicação (item 7.2).
Somente é possível enviar ao BitVoicer dados do tipo Char (1 caractere), Int (16 bits), Byte (inteiro sem sinal
de 8 bits) ou String (sequência de caracteres).
Caso a captação de áudio esteja sendo feita através de um microfone conectado ao micro-controlador,
todo dado enviado ao BitVoicer enquanto ele está processando fluxo de áudio, é considerado parte do
áudio. Por esta razão, caso seja necessário enviar dados para exibição no Monitor de Comunicação, é
necessário sinalizar ao BitVoicer para que ele pare de processar o fluxo de áudio e passe a manipular os
dados recebidos como datagramas. Mais detalhes sobre sinalização no fluxo de áudio no item 6 deste
manual.
5.3 Comandos
Os comandos são dados que o BitVoicer envia ao micro-controlador em resposta a um reconhecimento
de voz. Estes dados são formatados em um protocolo próprio (consulte o item 5.1) e podem ser dos
seguintes tipos:
Byte (byte): um byte escrito no formato b00000000, onde 0 pode ser 0 ou 1.
Char (caractere): apenas 1 caractere alfa-numérico.
Int (inteiro): número inteiro de 16 bits entre -32768 e 32767.
String (trecho de texto): uma sequência de caracteres de no máximo 59 caracteres.
O painel de comandos (localizado logo abaixo do construtor de sentenças) é 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:
5.4 Biblioteca BitVoicer para Arduino
O pacote de instalação do BitVoicer contém uma biblioteca open souce que pode ser utilizada como
referência para desenvolvimento de seus sketchs. Você também pode usar esta biblioteca diretamente em
seu código para recuperar os dados enviados pelo BitVoicer e para realizar captação de áudio. Esta
biblioteca encontra-se disponível dentro da pasta Library da pasta de instalação do BitVoicer.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 21
Para utilizar a biblioteca BitVoicer em seu sketch, é necessário copiar toda a pasta BitVoicer11 para a
sub-pasta libraries localizada dentro da pasta de instalação da IDE Arduino. Em seguida, adicione a
referência para a biblioteca BitVoicer no início do código como exibido abaixo:
#include <BitVoicer11.h>
Para obter maiores informações sobre como utilizar uma biblioteca em seus sketches, consulte o tutorial
sobre bibliotecas disponível 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 padrão, a biblioteca BitVoicer utiliza a classe Serial da plataforma Arduino para
implementar comunicação serial. Se for necessário utilizar qualquer outra interface serial (Serial1,
Serial2 ou Serial3), será necessário substituir todas as ocorrências da classe Serial na biblioteca
BitVoicer pela interface serial desejada.
O ponto central da biblioteca BitVoicer para Arduino é a classe BitVoicerSerial. Esta classe contém uma
série de variáveis e funções utilizadas para se comunicar com o BitVoicer e recuperar dados enviados pelo
programa. Para ter acesso as funções desta classe, crie uma instância global da classe BitVoicerSerial
adicionando o trecho de código abaixo antes das funções setup() e loop() no seu sketch:
BitVoicerSerial bvSerial = BitVoicerSerial();
Antes de utilizar a instância da classe BitVoicerSerial criada acima, será necessário iniciar a
comunicação serial de sua board Arduino. Para isso, insira o trecho de código abaixo dentro da função
setup() de seu sketch:
Serial.begin(115200);
Lembre-se que a velocidade de comunicação acima deve ser a mesma informada nas preferências do
BitVoicer (item 3.3) caso a comunicação se dê através de porta serial.
Neste ponto, todas as configurações necessárias para começar a interagir com o BitVoicer foram
concluídas. Consulte o tópico a seguir para obter informações sobre todas as variáveis e funções
disponíveis na classe BitVoicerSerial. O item 5.5 deste manual contém também dois exemplos práticos de
como ligar ou desligar um LED conectado a sua board. O primeiro exemplo utiliza captação de áudio pelo
microfone do computador e o segundo utiliza um microfone conectado ao micro-controlador.
5.4.1 Referência da biblioteca BitVoicer para Arduino
Construtor:
o BitVoicerSerial(): retorna uma instância da classe BitVoicerSerial com todas as
variáveis públicas configuradas com seus valores padrão.
Constantes:
o BUFFER_SIZE: contém o valor padrão do buffer interno da classe BitVoicerSerial. Valor
= 64;
o BV_DEFAULT: utilizada para configurar a voltagem de referência nos pinos de entrada
analógica. Valor = 3;
o BV_EXTERNAL: utilizada para configurar a voltagem de referência nos pinos de
entrada analógica. Valor = 1;
o BV_UNDEFINED: pode ser usada para testar o tipo de dado retornado pela função
getData(). Valor = 0;
o BV_CHAR: pode ser usada para checar o tipo de dado retornado pela função getData().
Valor = 1;
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 22
o BV_INT: pode ser usada para checar o tipo de dado retornado pela função getData().
Valor = 2;
o BV_BYTE: pode ser usada para checar o tipo de dado retornado pela função getData().
Valor = 3;
o BV_STR: pode ser usada para checar o tipo de dado retornado pela função getData().
Valor = 4;
o BV_COMMAND: pode ser usada para checar o tipo de dado retornado pela função
getData(). Valor = 254;
o BV_STATUS: pode ser usada para checar o tipo de dado retornado pela função
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 variável pública engineRunning da classe BitVoicerSerial.
Valor = 1;
o BV_ENGINESTOPPED: pode ser usada para checar o status do motor de
reconhecimento de voz na variável pública engineRunning da classe BitVoicerSerial.
Valor = 0;
Variáveis Públicas:
o byte byteData: armazena o valor da última leitura feita pela função getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo byte. Essa variável
pode ser acessada e alterada a qualquer momento pelo código do usuário. Default = 0;
o char charData: armazena o valor da última leitura feita pela função getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo char. Essa variável
pode ser acessada e alterada a qualquer momento pelo código do usuário. Default = 0;
o int intData: armazena o valor da última leitura feita pela função getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo int. Essa variável
pode ser acessada e alterada a qualquer momento pelo código do usuário. Default = 0;
o String strData: armazena o valor da última leitura feita pela função getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo String. Essa variável
pode ser acessada e alterada a qualquer momento pelo código do usuário. Default = 0;
o byte cmdData: armazena o valor da última leitura feita pela função getData() caso haja
algum dado no buffer serial de entrada e caso o dado seja do tipo comando. Essa
variável pode ser acessada e alterada a qualquer momento pelo código do usuário.
Esta variável só será alterada pela classe BitVoicerSerial durante a execução da
ferramenta de Calibração de Áudio Streaming (item 3.4.2). Default = 0;
o boolean engineRunning: armazena o valor da última leitura feita pela função getData()
caso haja algum dado no buffer serial de entrada e caso o dado seja do tipo status.
Essa variável pode ser acessada e alterada a qualquer momento pelo código do
usuário. O valor desta variável será alterado ao iniciar ou parar o motor de
reconhecimento de voz (item 4.5). Default = false;
Funções:
o getData(): realiza uma leitura do buffer de entrada do Arduino, armazena o dado
existente no datagrama na variável pública correspondente e retorna o tipo de dado
contido no datagrama. Se o datagrama estiver corrompido ou não corresponder ao
formato do protocolo BitVoicer, os dados do buffer são descartados até o inicio do
próximo datagrama e a função retorna 0 (BV_UNDEFINED).
o setAudioInput(byte pin): configura o Arduino para fazer leituras analógicas rápidas no
pino de entrada analógico passado à função. Sem a utilização desta função, o
conversor analógico-digital (ADC) do micro-controlador ATMEL trabalha com um clock
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 23
muito baixo. Uma vez que uma precisão de apenas 8 bits é necessária para que o
BitVoicer possa analisar o fluxo de áudio recebido, aumentar o clock do conversor ADC
não causa prejuízo à precisão do conversor e torna possível a obtenção de pelo menos
8000 amostras por segundo.
o undoAudioInput(): retorna as configurações do conversor ADC para os padrões
originais de fábrica.
o setAnalogReference(byte mode): altera a voltagem de referência a ser utilizada pelo
conversor analógico-digital. Por padrão, as boards Arduino utilizam 3.3 ou 5 volts como
voltagem de referência nas medições feitas pelo ADC. Se for utilizada qualquer
voltagem de referência conectada ao pino AREF, obrigatoriamente, deve-se chamar
esta função passando a constante BV_EXTERNAL como parâmetro antes de chamar a
função setAudioInput() ou processAudio(). Se isso não for feito, a voltagem de
referência interna do Arduino e a voltagem recebida em AREF causarão um curto-
circuito que pode danificar sua board.
o startStopListening(): sinaliza ao BitVoicer para iniciar ou parar de considerar os dados
recebidos do micro-controlador como fluxo de áudio. Antes de iniciar a transmissão de
fluxo de áudio, é necessário chamar esta função para que o BitVoicer passe a
direcionar o áudio recebido para o motor de reconhecimento de voz e não para o painel
Monitor de Comunicação. Uma vez iniciada a transmissão de áudio, para enviar
qualquer dado a ser exibido no Monitor de Comunicação, é necessário chamar esta
função para que o BitVoicer deixe de considerar os dados recebidos como fluxo de
áudio e direcione os dados para o Monitor de Comunicação. Se isto não for feito,
qualquer informação 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}.
o processAudio(unsigned int wait): realiza uma leitura rápida no pino analógico
passado à função setAudioInput(). O valor passado a esta função é o tempo que a
função 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 medição de modo que se atinja o valor mais próximo
possível de 8000 leituras por segundo. Assim que a medição estiver completa, esta
função envia ao BitVoicer o valor da medição (1 byte – valor 0 a 255). Por esta razão,
esta função deve ser chamada em intervalos regulares de tempo a fim de evitar
distorções no áudio digitalizado.
o sendToBV(var data): empacota o dado passado a ela em um datagrama do BitVoicer e
envia esta informação ao BitVoicer a fim de exibi-la no Monitor de Comunicação. Os
dados aceitos são do tipo char, byte, int ou String. Caso esteja sendo processado fluxo
de áudio, é necessário chamar a função startStopListening() antes e depois desta
função.
5.5 Exemplos de utilização da biblioteca BitVoicer
5.5.1 Áudio captado pelo microfone do computador
No exemplo abaixo, um LED conectado ao pino digital 4 do Arduino irá acender ou apagar em resposta
a um comando captado pelo microfone do computador.
Primeiro, conecte seu Arduino conforme indicado na figura abaixo:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 24
Em seguida, copie e cole o sketch abaixo na IDE Arduino e envie o código 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).
//Imports the BitVoicer library to the sketch
#include <BitVoicer11.h>
//Instantiates the BitVoicerSerial class
BitVoicerSerial bvSerial = BitVoicerSerial();
//Stores the data type retrieved by getData()
byte dataType = 0;
//Stores the state of pin 4
byte pinVal = 0;
void setup()
{
//Starts serial communication at 9600 bps
Serial.begin(9600);
//Sets digital pin 4 as OUTPUT
pinMode(4, OUTPUT);
//Turns off pin 4
digitalWrite(4, pinVal);
}
void loop()
{
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 25
//Updates the state of pin 4 on every loop
digitalWrite(4, pinVal);
}
//This function runs every time serial data is available
//in the serial buffer after a loop
void serialEvent()
{
//Reads the serial buffer and stores the received data type
dataType = bvSerial.getData();
//Checks if the data type is the same as the one in the
//Voice Schema
if (dataType == BV_BYTE)
{
//Checks the stored value in byteData by getData() and
//changes the value of the pin
if (bvSerial.byteData == 0)
pinVal = LOW;
else
pinVal = HIGH;
}
}
Por fim, abra o esquema de voz Sample2.vsc, localizado na sub-pasta VoiceSchemas da pasta de
instalação do BitVoicer, e clique em Start para iniciar o reconhecimento de voz. O LED conectado à board
Arduino deverá se acender ao pronunciar “turn led on" e se apagar ao pronunciar “turn led off”.
Caso não haja mudança no estado do LED ao pronunciar os comandos acima, certifique-se que:
Você selecionou Inglês como idioma de reconhecimento no formulário de preferências. Se o
idioma Inglês não está disponível em seu computador, selecione o idioma de sua preferência e
traduza a frase no Esquema de Voz para o idioma selecionado;
As configurações de comunicação estão corretas no formulário de preferências (item 3.3);
A velocidade de comunicação (baud rate) é a mesma no sketch Arduino e no formulário de
preferências;
O áudio captado pelo microfone do computador está em um nível adequado para
reconhecimento (itens 3.2.3 e 7.1).
5.5.2 Áudio captado por um microfone conectado ao micro-controlador
No exemplo abaixo, um LED conectado ao pino digital 4 do Arduino irá acender ou apagar em resposta
a um comando captado por um microfone ligado à board Arduino. O microfone utilizado é o microfone
electrec da Sparkfun (BOB-09964 - https://www.sparkfun.com/products/9964).
Primeiro, conecte seu Arduino conforme indicado na figura abaixo:
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 26
Observação importante: note na ligação acima que o pino de 3.3 volts do Arduino está sendo utilizado
como voltagem de referência (AREF) para o conversor analógico-digital (ADC). Esta configuração se fez
necessária, pois, embora o microfone electrec da Sparkfun funcione em voltagens de 2.7V a 5.5V, não foi
possível obter leituras satisfatórias com este microfone conectado diretamente à fonte de 5 volts do Arduino.
Foi necessário conectar o microfone à fonte de 3.3 volts da board e conectar AREF (referência analógica) à
mesma fonte de 3.3 volts. Dessa forma, foi possível obter leituras em todo o espectro de valores de 8 bits (0
a 255) com leituras em ambiente silencioso oscilando entre 128 e 129. Atencão: não utilize a função
analogRead() do Arduino com qualquer voltagem de referência conectada à AREF. Isso pode danificar
sua board se a função analogReference() não for chamada anteriormente. No código abaixo, a função
setAnalogReference() da biblioteca BitVoicer é chamada para configurar adequadamente a voltagem de
referência para o conversor ADC do Arduino. Essa função DEVE ser chamada antes de qualquer outra
função da classe BitVoicerSerial caso esteja sendo aplicada qualquer voltagem à AREF.
Em seguida, copie e cole o sketch abaixo na IDE Arduino e envie o código 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).
//Imports the BitVoicer library to the sketch
#include <BitVoicer11.h>
//Instantiates the BitVoicerSerial class
BitVoicerSerial bvSerial = BitVoicerSerial();
//Stores the data type retrieved by getData()
byte dataType = 0;
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 27
//Stores the state of pin 4
byte pinVal = 0;
//Stores true if the Audio Streaming Calibration tool
//is running
boolean sampleTest = false;
void setup()
{
//Sets the analog reference to external (AREF pin)
//WARNING!!! If anything is conected to the AREF pin,
//this function MUST be called first. Otherwise, it will
//damage the board.
bvSerial.setAnalogReference(BV_EXTERNAL);
//Sets up the microcontroller to perform faster analog reads
//on the specified pin
bvSerial.setAudioInput(0);
//Starts serial communication at 115200 bps
Serial.begin(115200);
//Sets digital pin 4 as OUTPUT
pinMode(4, OUTPUT);
//Turns off pin 4
digitalWrite(4, pinVal);
}
void loop()
{
//Captures audio and sends it to BitVoicer if the Audio
//Streaming Calibration Tool is running
if (sampleTest == true)
{
//The value passed to the function is the time
//(in microseconds) that the function has to wait before
//performing the reading. It is used to achieve about
//8000 readings per second.
bvSerial.processAudio(46);
}
//Captures audio and sends it to BitVoicer if the Speech
//Recognition Engine is running
if (bvSerial.engineRunning)
{
//The value passed to the function is the time
//(in microseconds) that the function has to wait before
//performing the reading. It is used to achieve about
//8000 readings per second.
bvSerial.processAudio(46);
}
//Updates the pin 4 state on every loop
digitalWrite(4, pinVal);
}
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 28
//This function runs every time serial data is available
//in the serial buffer after a loop
void serialEvent()
{
//Reads the serial buffer and stores the received data type
dataType = bvSerial.getData();
//Changes the value of sampleTest if the received data was
//the start/stop sampling command
if (dataType == BV_COMMAND)
sampleTest = bvSerial.cmdData;
//Signals BitVoicer's Speech Recognition Engine to start
//listening to audio streams after the engineRunning status
//was received
if (dataType == BV_STATUS && bvSerial.engineRunning == true)
bvSerial.startStopListening();
//Checks if the data type is the same as the one in the
//Voice Schema
if (dataType == BV_BYTE)
{
//Checks the value stored in byteData by getData() and
//changes the pin value
if (bvSerial.byteData == 0)
pinVal = LOW;
else
pinVal = HIGH;
}
}
Por fim, abra o esquema de voz Sample2.vsc localizado na sub-pasta VoiceSchemas da pasta de
instalação do BitVoicer e clique em Start para iniciar o reconhecimento de voz. O LED conectado à board
Arduino deverá se acender ao pronunciar “Turn led on" e se apagar ao pronunciar “Turn led off”.
Caso não haja mudança no estado do LED ao pronunciar os comandos acima, certifique-se que:
Você selecionou Inglês como idioma de reconhecimento no formulário de preferências. Se o
idioma Inglês não está disponível em seu computador, selecione o idioma de sua preferência e
traduza a frase no Esquema de Voz para o idioma selecionado;
As configurações de comunicação estão corretas no formulário de preferências (item 3.3);
A velocidade de comunicação (baud rate) é a mesma no sketch Arduino e no formulário de
preferências;
O áudio captado pelo microfone está em um nível adequado para reconhecimento (itens 3.2.3,
3.4.1 e 7.1);
O BitVoicer está recebendo entre 8000 e 8200 amostras de áudio por segundo (itens 3.4.2 e 6).
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 também uma interface de comunicação wireless, é possível dar
capacidades de reconhecimento de voz avançadas a qualquer micro-controlador, mantendo o micro-
controlador fisicamente separado do computador.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 29
O fluxo de áudio enviado ao BitVoicer deve ser digitalizado utilizando-se PCM
(http://en.wikipedia.org/wiki/Pulse-code_modulation) de 8 bits a 8000 amostras por segundo. Em termos
simples, é necessário realizar 8000 medições por segundo da voltagem no microfone, converter esta
medição (ADC – analog-to-digital converter) em um valor de 8 bits (entre 0 e 255) e enviar este resultado ao
BitVoicer em intervalos de tempo regulares. Sendo assim, em essência, o áudio streaming é uma sequência
de bytes, enviados um a um, em intervalos de tempos regulares, que descrevem a intensidade de uma onda
sonora ao longo do tempo.
Para que a qualidade do reconhecimento de voz seja satisfatória, a fase
(http://en.wikipedia.org/wiki/Sine_wave), ou seja, o valor digitalizado captado pelo microfone em um
ambiente silencioso deve ser igual a 128 ou 129. A quantidade de amostras por segundo, por sua vez, não
deve ser inferior a 8000 ou superior a 8200.
Outros fatores podem afetar significativamente o desempenho do reconhecimento de voz do BitVoicer:
As medições devem ocorrer em intervalos de tempo regulares. Para obter 8000 amostras por
segundo, é necessário realizar uma medição a cada 125 microsegundos. Neste intervalo devem
ser considerados:
o O tempo necessário para realizar a medição;
o O tempo necessário para o conversor ADC realizar a conversão;
o O tempo gasto em outras atividades executadas pelo micro-controlador entre as
medições.
Oscilações na tensão fornecida ao microfone;
Flutuações de voltagem na porta de medição;
Aterramento inadequado;
Interferência de outros circuitos;
Erros de comunicação.
6.1 Sinalizando para o BitVoicer
Por padrão, o BitVoicer espera receber datagramas do micro-controlador. Datagramas estes que devem
ser formatados de acordo com os parâmetros do Protocolo BitVoicer (item 5.1). Para que o BitVoicer pare
de processar estes dados como datagramas e passe a processá-los como dados de áudio (áudio
streaming), é necessário enviar um sinal ao motor de reconhecimento de voz. Este sinal é composto de uma
sequencia de 8 bytes com os seguintes valores: { 255, 255, 255, 255, 0, 0, 0, 0 }.
Para que o BitVoicer retorne ao seu estado inicial, quando os dados recebidos são considerados
datagramas e seu conteúdo é exibido no painel Monitor de Comunicação, basta enviar novamente o mesmo
sinal ao BitVoicer ({ 255, 255, 255, 255, 0, 0, 0, 0 }). Dessa forma, caso o BitVoicer esteja processando fluxo
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 30
de áudio e seja necessário enviar dados ao painel Monitor de Comunicação, 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 Painéis de informação
Os painéis de informação estão localizados na parte direita do Editor de Esquemas de Voz. Estes
painéis permanecem inativos durante a edição de um esquema, mas exibem informações valiosas assim
que o reconhecimento de voz é iniciado.
7.1 Nível de áudio, atividade, status e erros
Exibe informações geradas pelo motor de reconhecimento de voz.
OBS.: Se o BitVoicer estiver recebendo fluxo de áudio captado em um ambiente silencioso e, mesmo
assim, o nível 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
informações).
Estas são as informações exibidas neste painel:
Audio Level (nível de áudio): a barra de nível de áudio e o campo logo a sua direita exibem o
nível de áudio captado pelo motor de reconhecimento de voz em tempo real. Esta informação é
atualizada 10 vezes por segundo no BitVoicer.
Level Average (nível médio): esta média é calculada tomando-se por base o período informado
na opção Audio level activated period das preferências, ou seja, a média é calculada para este
período e as leituras são feitas a cada 100 milisegundos.
Activity (atividade): este painel exibe informações sobre erros, inicialização e finalização do
motor de reconhecimento de voz, além de informações sobre o envio de comandos e resultados
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 31
no reconhecimento de voz. Estas são as mensagens que podem aparecer neste painel durante
a utilização do BitVoicer:
o Loading recognition engine... (carregando motor de reconhecimento de voz).
o Error: unable to load recognition engine (Erro: impossível carregar motor de
reconhecimento de voz): verifique as configurações nas preferências, salve-as
novamente e tente reiniciar o reconhecimento de voz. Se isto não funcionar, entre em
contato com o suporte da BitSophia (informações de contato no item 6 deste manual).
o Loading sentences... (carregando sentenças).
o Error: unable to load sentences (Erro: impossível carregar sentenças): verifique se
seu esquema de voz não possui itens de sentença vazios e se você utilizou apenas
caracteres válidos para o idioma informado nas preferências. Se isto não funcionar,
entre em contato com o suporte da BitSophia (informações de contato no item 6 deste
manual).
o Sentences loaded (sentenças carregadas).
o Error: unable to open serial port (Erro: impossível abrir porta serial): verifique se seu
micro-controlador está corretamente conectado e se a porta de comunicação serial
informada nas preferências está correta e desbloqueada. Se você não possui um micro-
controlador, desabilite as comunicações em File Preferences.
o Error: unable to establish IP connection (Erro: impossível estabelecer conexão IP):
verifique se o endereço IP de destino e a porta TCP estão disponíveis e não estão
bloqueados por outro aplicativo. Verifique também as informações sobre o IP de destino
em File Preferences. Se você não possui um micro-controlador, desabilite as
comunicações em File Preferences.
o Disposing recognition engine... (descartando motor de reconhecimento de voz).
o Engine disposed (stopped) (motor descartado - parado).
o Error: unable to create command data (Erro: impossível criar dados do comando): o
comando para o anagrama identificado está vazio.
o Error: unable to write to serial port (Erro: impossível enviar para a porta serial):
verifique se seu micro-controlador está corretamente conectado e se a porta de
comunicação serial informada nas preferências está correta e desbloqueada.
o Command sent to serial port (comando enviado para a porta serial).
o Error: unable to send TCP/IP packet (Erro: impossível enviar pacote TCP/IP):
verifique se o endereço IP de destino e a porta TCP estão disponíveis e não estão
bloqueados por outro aplicativo. Verifique também as informações sobre o IP de destino
em File Preferences.
o Command sent to destination IP (comando enviado para o IP de destino)
o Speech Rejected (fala rejeitada)
- Confidence: XXX % (confiança: XXX %)
- Text: XXX (texto XXX)
o Speech Rejected (fala rejeitada)
- Low Confidence Level (baixo nível de confiança): nível de confiança não
atingido
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto considerado com baixo nível de confiança.
o Speech Rejected (fala rejeitada)
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 32
- Audio Level Limit Not Reached (nível de áudio não atingido): consulte item
3.2.3
- Max Audio Level: XX (nível de áudio máximo: XX): nível de áudio mais alto
atingido durante o reconhecimento.
- Audio Level Average: XX (média do nível de áudio: XX): média do nível de
áudio no momento do reconhecimento.
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto rejeitado.
o Speech Rejected (fala rejeitada)
- In Latency Period (dentro do período de latência): consulte item 3.2.5.
- Latency Start Time: [HH:MM:SS:MMM] início do período de latência em hora,
minuto, segundo e milésimo.
- Recognition Time: [HH:MM:SS:MMM] momento do reconhecimento em hora,
minuto, segundo e milésimo.
- Audio Level Trigger: XX (gatilho do nível de áudio: XX): nível de áudio que
iniciou o período de ativação por nível de áudio (consulte item 3.2.3).
- Audio Level Average: XX (média do nível de áudio: XX): média do nível de
áudio no momento do reconhecimento.
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto rejeitado.
o Speech Rejected (fala rejeitada)
- Act Word Not Recognized (palavra de ativação não reconhecida): o Esquema
de Voz requer a identificação de uma palavra de ativação (item 4.4) e está
palavra não foi identificada.
- Latency Start Time: [HH:MM:SS:MMM]:início do período de latência em hora,
minuto, segundo e milésimo.
- Recognition Time: [HH:MM:SS:MMM]: momento do reconhecimento em hora,
minuto, segundo e milésimo.
- Audio Level Trigger: XX (gatilho do nível de áudio: XX): nível de áudio que
iniciou o período de ativação por nível de áudio (consulte item 3.2.3).
- Audio Level Average: XX (média do nível de áudio: XX): média do nível de
áudio no momento do reconhecimento.
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto rejeitado.
o Speech Recognized (fala reconhecida)
- Latency Start Time: [HH:MM:SS:MMM]: início do período de latência em hora,
minuto, segundo e milésimo.
- Recognition Time: [HH:MM:SS:MMM]: momento do reconhecimento em hora,
minuto, segundo e milésimo.
- Audio Level Trigger: XX (gatilho do nível de áudio: XX): nível de áudio que
iniciou o período de ativação por nível de áudio (consulte item 3.2.3). Será
sempre o valor que deu início ao período e não o valor do reconhecimento
atual.
- Audio Level Average: XX (média do nível de áudio: XX): média do nível de
áudio no momento do reconhecimento. Será sempre o valor do início do
período e não o valor do reconhecimento atual.
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto aceito.
o Speech Recognized (fara reconhecida)
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 33
- Under Act Word Period (dentro do período de palavra de ativação): a palavra
de ativação foi reconhecia anteriormente e o reconhecimento atual foi feito
dentro do período de ativação por palavra de ativação (item 4.4).
- Act Word Start Time: [HH:MM:SS:MMM]: início do período de ativação por
palavra de ativação em hora, minuto, segundo e milésimo.
- Latency Start Time: [HH:MM:SS:MMM]: início do período de latência em hora,
minuto, segundo e milésimo.
- Recognition Time: [HH:MM:SS:MMM]: momento do reconhecimento em hora,
minuto, segundo e milésimo.
- Audio Level Trigger: XX (gatilho do nível de áudio: XX): nível de áudio que
iniciou o período de ativação por nível de áudio (consulte item 3.2.3). Será
sempre o valor que deu início ao período e não o valor do reconhecimento
atual.
- Audio Level Average: XX (média do nível de áudio: XX): média do nível de
áudio no momento do reconhecimento. Será sempre o valor do início do
período e não o valor do reconhecimento atual.
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto aceito.
o Speech Recognized (fara reconhecida)
- Act Word Recognized (palavra de ativação reconhecida): a palavra de
ativação foi identificada no reconhecimento atual. O período de ativação por
palavra de ativação foi iniciado (item 4.4).
- Latency Start Time: [HH:MM:SS:MMM] (início do período de latência em hora,
minuto, segundo e milésimo).
- Recognition Time: [HH:MM:SS:MMM] (momento do reconhecimento em hora,
minuto, segundo e milésimo).
- Audio Level Trigger: XX (gatilho do nível de áudio: XX): nível de áudio que
iniciou o período de ativação por nível de áudio (consulte item 3.2.3). Será
sempre o valor que deu início ao período e não o valor do reconhecimento
atual.
- Audio Level Average: XX (média do nível de áudio: XX): média do nível de
áudio no momento do reconhecimento. Será sempre o valor do início do
período e não o valor do reconhecimento atual.
- Confidence Level: XXX (nível de confiança: XXX)
- Text: XXX (texto: XXX): texto aceito.
Status: exibe o status atual do motor de reconhecimento de voz. Pode exibir as seguintes
informações:
o Stopped (parado): motor de reconhecimento parado.
o Starting... (iniciando...): motor de reconhecimento em fase de inicialização.
o Connecting... (conectando...): estabelecendo conexão com o micro-controlador.
o Running... (rodando...): motor de reconhecimento de voz em execução.
o Running (in activation word period)... (rodando - dentro do período de palavra de
ativação - ...): consulte o item 4.4.
o Running (audio level limit reached)... (rodando - limite do nível de áudio atingido - …):
consulte o item 3.2.3.
o Running (fully qualified)... (rodando - totalmente qualificado - ...): o nível mínimo de
áudio foi atingido e a palavra de ativação foi identificada.
BitSophia - www.bitsophia.com.br BitVoicer 1.2 – Manual do Usuário – Português
Copyright © 2013 BitSophia Tecnologia Ltda - ME. Todos os direitos reservados. 34
7.2 Monitor de comunicação
Através do monitor de comunicação é possível visualizar informações de texto enviadas pelo micro-
controlador. Este painel pode ser utilizado para o recebimento de informações de status, leitura de sensores
ou depuração de código no micro-controlador.
O botão Clear Monitor, localizado no rodapé deste painel, limpa toda a informação enviada pelo micro-
controlador.
OBS.: Se o BitVoicer estiver recebendo fluxo de áudio enviado pelo micro-controlador, é necessário
sinalizar ao BitVoicer antes de enviar informações a serem exibidas neste painel (consulte o item 6.1 para
maiores informações sobre sinalização).
8 Suporte e contato
Ajuda e suporte: [email protected]
Comercial e vendas: [email protected]
Sugestões e reclamações: [email protected]