bitvoicer 1.2

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. 1 BitVoicer 1.2 Manual do Usuário Português

Upload: phamkhue

Post on 09-Jan-2017

222 views

Category:

Documents


0 download

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]