Pular para o conteúdo principal

Eventos

Todos os eventos do SDK são disponibilizados em dois formatos: via método addEventListener() ou usando as propriedades on do objeto IaraSpeechRecognition. Em ambos os casos, a função receberá um evento como parâmetro cuja propriedade detail conterá dados relacionados à Iara Health.

IMPORTANTE: dados relacionados com a Iara Health estarão sempre na propriedade detail de qualquer evento, ex.: event.detail.

Por exemplo, dado o evento fictício result, ele pode ser acessado via addEventListener():

var recognition = new IaraSpeechRecognition();

recognition.addEventListener('result', function(event) {
// Dados relacionados com a Iara Health estarão disponíveis
// através da propriedade `detail` de qualquer evento.
console.log(event.detail);
});

Ou através da propriedade onresult:

recognition.onresult = function(event) {
// Dados relacionados com a Iara Health estarão disponíveis
// através da propriedade `detail` de qualquer evento.
console.log(event.detail);
}

Para facilitar a descoberta de eventos (e o auto-completar de código em IDEs), todos os eventos disparados pela classe IaraSpeechRecognition estão disponíveis como propriedades estáticas da classe IaraEvent.

Dica: a classe IaraEvent contém todos os eventos disponíveis para uso. Digite IaraEvent. na sua IDE para que ela liste as propriedades dessa classe (que são os eventos disponíveis).

As seções a seguir descrevem, por assunto, cada um dos eventos disponíveis e o conteúdo da sua propriedade detail. Todos os exemplos mostrados abaixo assumem que um reconhecedor chamado recognition foi instanciado:

var recognition = new IaraSpeechRecognition();

Lista de eventos disponíveis

A tabala abaixo mostra todos os eventos existentes, todos acessíveis através de IaraEvent.*.

EventoInformação
SPEECH_RECOGNITION_RESULT-
SPEECH_RECOGNITION_START-
SPEECH_RECOGNITION_STARTING-
SPEECH_RECOGNITION_STOP-
SPEECH_RECOGNITION_READY-
INIT_DONE-
INIT_FAIL-
INIT_VOICE_MODEL_DOWNLOAD_STARTED-
INIT_VOICE_MODEL_DOWNLOAD_COMPLETED-
INIT_VOICE_MODEL_DOWNLOAD_PROGRESS-
INIT_API_AUTH-
INIT_API_CONFIG-
INIT_ALS_CHECK-
INIT_INSTALL_ALS-
INIT_PROGRESS-
ALS_OFFLINE-
ALS_ONLINE-
AUDIO_LEVEL_UPDATE-
AUDIO_DEVICE_ADD-
AUDIO_DEVICE_REMOVE-
AUDIO_DEVICE_CHANGE-
SHORTCUT-
INTERNAL-
ERROR-
ERROR_NO_INPUT_DEVICE-
ERROR_UNSUPPORTED_SAMPLE_RATE-
ERROR_RECORD_INTERRUPTION-
NEWER_VOICE_MODEL_AVAILABLE-
NEWER_ALS_AVAILABLE-

As seções a seguir explicam e exemplificam em mais detalhes cada um dos eventos listados acima.

Reconhecimento de voz

Eventos relacionados com o reconhecimento de voz da Iara Health. Todos esses eventos são emitidos depois que uma inicialização bem-sucedida aconteceu.

Ready - IaraEvent.SPEECH_RECOGNITION_READY e onready

Emitido quando o reconhecedor está pronto para receber audios de entrada para fazer novas inferências.

recognition.addEventListener(IaraEvent.SPEECH_RECOGNITION_READY, function(event) {
console.log(event.detail);
});

recognition.onready = function(event) {
console.log(event.detail);
}

Result - IaraEvent.SPEECH_RECOGNITION_RESULT e onresult

Emitido quando o reconhecedor finalizou uma inferência.

recognition.addEventListener(IaraEvent.SPEECH_RECOGNITION_RESULT, function(event) {
console.log(event.detail);
});

recognition.onresult = function(event) {
console.log(event.detail);
}

Veja a seção Reconhecimento de voz para saber mais sobre o reconhecimento de voz, inclusive a obtenção de resultados intermediários.

Start - IaraEvent.SPEECH_RECOGNITION_START e onstart

Emitido quando o reconhecedor inicia o processo de reconhecimento, i.e. logo após start() ter sido invocado.

recognition.addEventListener(IaraEvent.SPEECH_RECOGNITION_START, function(event) {
console.log(event.detail);
});

recognition.onstart = function(event) {
console.log(event.detail);
}
IMPORTANTE: pode haver uma pausa de alguns milisegundos (ou segundos, dependendo do computador do usuário) desde o momento que start() é chamado e o momento no qual o reconhecimento inicia, de fato. Isso acontece porque o ALS está configurando os canais de audio do sistema. Os eventos IaraEvent.SPEECH_RECOGNITION_START e onstart indicam quando o reconhecimento iniciou proprieamente.

Stop - IaraEvent.SPEECH_RECOGNITION_STOP e onstop

Emitido quando o reconhecedor foi instruído a parar o reconhecimento atual, i.e. logo após stop() ter sido invocado.

recognition.addEventListener(IaraEvent.SPEECH_RECOGNITION_STOP, function(event) {
console.log(event.detail);
});

recognition.onstop = function(event) {
console.log(event.detail);
}

VAD Voice Start - IaraEvent.SPEECH_RECOGNITION_VAD_VOICE_START

Emitido quando o a opção useVAD é true na inicialização e o VAD (voice activity detection) inicia a detecção de voz.

recognition.addEventListener(IaraEvent.SPEECH_RECOGNITION_VAD_VOICE_START, function(event) {
console.log(event.detail);
});

VAD Voice Stop - IaraEvent.SPEECH_RECOGNITION_VAD_VOICE_STOP

Emitido quando o a opção useVAD é true na inicialização e o VAD (voice activity detection) para de detectar emissão de voz.

recognition.addEventListener(IaraEvent.SPEECH_RECOGNITION_VAD_VOICE_STOP, function(event) {
console.log(event.detail);
});

Inicialização

Eventos emitidos durante o processo de inicialização do reconhecedor da Iara.

Init done - IaraEvent.INIT_DONE e oninitdone

Emitido quando o reconhecedor finalizou a sua inicialização e está pronto para iniciar os trabalhos.

recognition.addEventListener(IaraEvent.INIT_DONE, function(event) {
console.log(event.detail);
});

recognition.oninitdone = function(event) {
console.log(event.detail);
}
Dica: a callback done() encadeada junto ao método init() do reconhecedor é um atalho para IaraEvent.INIT_DONE e oninitdone.

Os eventos de IaraEvent.INIT_DONE e oninitdone também estão disponíveis através da callback done() encadeada com o método init() do reconhecedor:

var recognition = new IaraSpeechRecognition();

recognition.init({
userId: 'meu@email.com',
apiToken: '197765800edb8affcb44a7ae7b4ff0a3'

}).done(function(e) {
// Inicialização finalizada com sucesso

});

Init fail - IaraEvent.INIT_FAIL e oninitfail

Emitido quando o reconhecedor não conseguiu realizar uma inicialização bem-sucedida. Se esse evento for emitido, o reconhecedor não estará pronto para fazer qualquer reconhecimento de voz.

recognition.addEventListener(IaraEvent.INIT_FAIL, function(event) {
console.log(event.detail);
});

recognition.oninitfail = function(event) {
console.log(event.detail);
}
Dica: a callback fail() encadeada junto ao método init() do reconhecedor é um atalho para IaraEvent.INIT_FAIL e oninitfail.

Os eventos de IaraEvent.INIT_FAIL e oninitfail também estão disponíveis através da callback fail() encadeada com o método init() do reconhecedor:

var recognition = new IaraSpeechRecognition();

recognition.init({
userId: 'meu@email.com',
apiToken: '197765800edb8affcb44a7ae7b4ff0a3'

}).fail(function(e) {
// Inicialização falhou.
});

Init progress - IaraEvent.INIT_PROGRESSS e oninitprogress

Emitido quando o reconhecedor está inicializando. Durante o processo de inicialização, o reconhecedor realiza diversos passos, como autenticação com a API Iara, download de modelos de voz, etc.

Para cada um desses passos, os eventos IaraEvent.INIT_PROGRESSS e oninitprogress serão invocados:

recognition.addEventListener(IaraEvent.INIT_PROGRESSS, function(event) {
console.log(event.detail);
});

recognition.oninitprogress = function(event) {
console.log(event.detail);
}

Cada vez que IaraEvent.INIT_PROGRESSS e oninitprogress forem emitidos, pode-se saber o status/passo da inicialização através da propriedade type do objeto detail do evento passado como parâmetro, i.e. event.detail.type.

Os valores possíveis para event.detail.type são:

  • IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_STARTED: emitido quando o reconhecedor iniciou o download do modelo de voz do usuário identificado pela propriedade userId usada durante a chamada a init().

  • IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_PROGRESS: emitido várias vezes enquanto o reconhecedor realiza o download do modelo de voz do usuário identificado pela propriedade userId usada durante a chamada a init(). Pode-se saber o progresso do download através da propriedade data do objeto detail do evento passado como parâmetro, i.e. event.detail.data.

  • IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_COMPLETED: emitido quando reconhecedor finializou o download do modelo de voz do usuário identificado pela propriedade userId usada durante a chamada a init().

Dica: a callback progress() encadeada junto ao método init() do reconhecedor é um atalho para IaraEvent.INIT_PROGRESSS e oninitprogress.

Todos os eventos de progresso de inicialização, ex.: IaraEvent.INIT_*, estão disponíveis através da callback progress() encadeada com o método init() do reconhecedor:

var recognition = new IaraSpeechRecognition();

recognition.init({
userId: 'meu@email.com',
apiToken: '197765800edb8affcb44a7ae7b4ff0a3'

}).progress(function(e) {
// A inicialização está acontecendo.
console.log(e.detail.type, e.detail.data);
});

Audio

Eventos relacionados ao controle de dispositivos de entrada e saída de audio. Veja a seção Dispositivos de audio para saber mais sobre como configurar e escolher entrada e saída de audio.

Audio level update - IaraEvent.AUDIO_LEVEL_UPDATE e onaudiolevelupdate

Emitido pelo reconhecedor quando audio é detectado no dispositivo de entrada, após start() ter sido invocado.

recognition.addEventListener(IaraEvent.AUDIO_LEVEL_UPDATE, function(event) {
console.log(event.detail);
});

recognition.onaudiolevelupdate = function(event) {
console.log(event.detail);
}
Dica: utilize os eventos `IaraEvent.AUDIO_LEVEL_UPDATE` e `onaudiolevelupdate` para melhorar a UX de sua aplicação. Por exemplo, depois que `start()` for invocado, mostre pequenas barras verticais (de som) se movendo para indicar que audio está sendo capturado pelo microfone.

Erros

Visando facilitar o tratamento de erros, o SDK aciona eventos relacionados ao erro em questão. As informações relevantes podem ser acessadas em event.detail. Cada erro possui:

  • Um errorCode único, representado abaixo pela coluna 'Código';
  • Uma developerMessage, que visa explicar a causa do erro para o desenvolvedor;
  • Uma userMessage, que representa uma sugestão de mensagem a ser mostrada para o usuário.

Lista de erros

A tabela abaixo mostra todos os erros existentes e suas descrições.

CódigoEvento AcionadoMensagem para o DesenvolvedorDescrição
1ERROR_RECORD_INTERRUPTIONAdding or removing audio devices when recording is not allowed.Problema com a gravação: um microfone foi adicionado ou removido enquanto o reconhecimento estava ativo. (Cód #1)
2ERRORUnknown error, please contact our team.Erro desconhecido: por favor, entre em contato com o nosso suporte. (Cód #2)
3ERRORUnknown error, please contact our team.Erro de áudio desconhecido: por favor, entre em contato com o nosso suporte. (Cód #3)
4ERROR_RECORD_INTERRUPTIONSomething affected the recording: + reason.Problema com a gravação: um erro desconhecido interrompeu a gravação. Por favor, entre em contato com o nosso suporte. (Cód #4)
5ERROR_NO_INPUT_DEVICENo input device is available.Microfone indisponível: por favor, verifique se possui um microfone conectado. (Cód #5)
6ERRORALS seems to be permanently offline.Problema com o serviço local da Iara: por favor, tente reiniciar o "ALS". Caso o problema persista, entre em contato com o nosso suporte. (Cód #6)
7ERRORmediaDevices not supported by browser or insecure access (HTTP instead of HTTPS).Microfone indisponível: o navegador não possui acesso seguro ao microfone ou ele não é suportado. Por favor, entre em contato com o nosso suporte. (Cód #7)
8ERRORUnable to create browser stream.Erro de áudio: por favor, entre em contato com o nosso suporte. (Cód #8)
9ERRORUnable to enumerate input devices.Microfone indisponível: não foi possível verificar se há um microfone conectado. Por favor, tente reiniciar o "ALS". Caso o problema persista, entre em contato com o nosso suporte. (Cód #9)
10UNSUPPORTED_SAMPLE_RATEBrowser mic has an unsupported sample rate for recording.Microfone indisponível: não foi possível inicializar o microfone. Por favor, entre em contato com o nosso suporte. (Cód #10)
11ERRORUnable to record.Problema com a gravação: não foi possível iniciar a gravação. Por favor, entre em contato com o nosso suporte. (Cód #11)
12ERRORRecording is disabled: + reason.Problema com a gravação: uma gravação anterior ainda está sendo processada. Por favor, aguarde alguns instantes e tente novamente. Caso o problema persista, entre em contato com o nosso suporte. (Cód #12)
13INIT_FAILUnauthorized access to Iara API.Falha na inicialização: usuário ou senha inválidos. Por favor, verifique as suas credenciais de acesso. (Cód #13)
14INIT_FAILIncompatible OS or browser version.Falha na inicialização: este navegador ou sistema operacional é incompatível com a Iara. (Cód #14)
15INIT_FAILProblem reading Iara API SDK version info.Falha na inicialização: não foi possível verificar a versão do nosso "Javascript SDK". Por favor, entre em contato com o nosso suporte. (Cód #15)
18INIT_FAILNo suitable input method is available. Check your audio input devices.Falha na inicialização: não foi possível detectar um microfone compatível com a Iara. (Cód #18)
19INIT_FAILNo audio input device is available. Check if you have a valid mic or SpeechMike.Falha na inicialização: não foi possível detectar um microfone. (Cód #19)
20INIT_FAILRequested input is invalid. Valid inputs are "auto" or "speechmike", for instance.Falha na inicialização: um microfone incompatível foi selecionado. (Cód #20)
21INIT_FAILALS not installed.Falha na inicialização: o serviço local da Iara "ALS" parece não estar instalado. (Cód #21)
22ERRORThe Iara speech recognition engine is busy. Please try again in a moment.O motor do reconhecimento de voz da Iara está ocupado no momento. Por favor, tente novamente dentro de alguns instantes. (Cód #22)
23ERRORError dealing with the Iara API.Falha de comunicação com a API da Iara. Por favor, tente novamente dentro de alguns instantes. Caso o problema persista, entre em contato com o nosso suporte. (Cód #23)
24ERRORUnable to initialize.Falha na inicialização: não conseguimos inicializar o motor do reconhecimento de voz. Por favor, entre em contato com o nosso suporte. (Cód #24)
25ERRORRecorder already in use.A Iara está inicializada em mais um lugar. No momento, não é possível utilizar simultaneamente o reconhecimento de voz em múltiplas abas do navegador. (Cód #25)
26ERRORRecorder being forcefully disconnected.A Iara está inicializada em mais um lugar. No momento, não é possível utilizar simultaneamente o reconhecimento de voz em múltiplas abas do navegador. (Cód #26)
27ERRORUnable to generate audio log.Ocorreu um problema com o arquivo de áudio para fins de registro. Você pode continuar usando a Iara normalmente. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #27)
28ERRORUnable to open audio line.Erro de áudio: um erro desconhecido impediu o início da gravação. Por favor, entre em contato com o nosso suporte. (Cód #28)
29ERRORUnable to open and/or start playback line.Erro de áudio: um erro desconhecido impediu a reprodução de um áudio. Por favor, entre em contato com o nosso suporte. (Cód #29)
30ERRORUnable to open and/or start capture line.Problema com a gravação: não foi possível iniciar a gravação. Verifique se o microfone continua conectado. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #30)
31ERRORRecorder is busy.Problema com a gravação: o gravador do serviço local "ALS" está ocupado. Por favor, tente novamente dentro de instantes. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #31)
32ERRORUnable to generate .ogg file.Ocorreu um problema com o arquivo de áudio para fins de registro. Você pode continuar usando a Iara normalmente. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #32)
33ERRORInvalid command.Problema de comunicação com o meu serviço local "ALS": mensagem inválida. (Cód #33)
34ERRORError selecting audio line.Microfone indisponível: por favor, verifique se o microfone selecionado ainda está conectado. (Cód #34)
35INIT_FAILThe Iara speech recognition engine is busy. Please try again in a moment.O motor do reconhecimento de voz da Iara está ocupado no momento. Por favor, tente novamente dentro de alguns instantes. (Cód #35)
36INIT_FAILError dealing with the Iara API.Falha na inicialização: Falha de comunicação com a API da Iara. Por favor, tente novamente dentro de alguns instantes. Caso o problema persista, entre em contato com o nosso suporte. (Cód #36)
37INIT_FAILUnable to initialize.Falha na inicialização: não conseguimos inicializar o motor do reconhecimento de voz. Por favor, entre em contato com o nosso suporte. (Cód #37)
38INIT_FAILRecorder already in use.Falha na inicialização: A Iara está inicializada em mais um lugar. No momento, não é possível utilizar simultaneamente o reconhecimento de voz em múltiplas abas do navegador. (Cód #38)
39INIT_FAILRecorder being forcefully disconnected.Falha na inicialização: A Iara está inicializada em mais um lugar. No momento, não é possível utilizar simultaneamente o reconhecimento de voz em múltiplas abas do navegador. (Cód #39)
40INIT_FAILUnable to generate audio log.Falha na inicialização: Ocorreu um problema com o arquivo de áudio para fins de registro. Você pode continuar usando a Iara normalmente. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #40)
41INIT_FAILUnable to open audio line.Falha na inicialização: Erro de áudio: um erro desconhecido impediu o início da gravação. Por favor, entre em contato com o nosso suporte. (Cód #41)
42INIT_FAILUnable to open and/or start playback line.Falha na inicialização: Erro de áudio: um erro desconhecido impediu a reprodução de um áudio. Por favor, entre em contato com o nosso suporte. (Cód #42)
43INIT_FAILUnable to open and/or start capture line.Falha na inicialização: Problema com a gravação: não foi possível iniciar a gravação. Verifique se o microfone continua conectado. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #43)
44INIT_FAILRecorder is busy.Falha na inicialização: Problema com a gravação: o gravador do serviço local "ALS" está ocupado. Por favor, tente novamente dentro de instantes. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #44)
45INIT_FAILUnable to generate .ogg file.Falha na inicialização: Ocorreu um problema com o arquivo de áudio para fins de registro. Você pode continuar usando a Iara normalmente. Caso o problema persistir, por favor, entre em contato com o nosso suporte. (Cód #45)
46INIT_FAILInvalid command.Falha na inicialização: Problema de comunicação com o meu serviço local "ALS": mensagem inválida. (Cód #46)
47INIT_FAILError selecting audio line.Falha na inicialização: Microfone indisponível: por favor, verifique se o microfone selecionado ainda está conectado. (Cód #47)
48INIT_FAILThe installed ALS version is outdated and incompatible with this SDK version.Falha na inicialização: A versão instalada do serviço local da Iara "ALS" é incompatível ou está desatualizada. (Cód #48)
49INIT_FAILALS closed all currently active connections due to forceConnect (probably multiple tabs are open).Falha na inicialização: o serviço local da Iara "ALS" parece ter encerrado todas as conexões. Pode ser que a Iara esteja inicializada em mais de uma aba do seu navegador. (Cód #49)
50INIT_FAILInvalid response from Iara API.Falha na inicialização: Falha de comunicação com a API da Iara. Por favor, tente novamente dentro de alguns instantes. Caso o problema persista, entre em contato com o nosso suporte. (Cód #50)
51ERRORFailed to submit the feedback to the Iara API. Reason: + reason.Erro: falha ao tentar submeter um feedback. (Cód #51)
53ERRORUnable to properly initialize ALS protocols that use the UserAgent. You can try to restart the ALS and refresh the page to fix the problem and, if that doesn't work, try reinstalling the ALS.Problema com o serviço local da Iara: não foi possível inicializar os protocolos do ALS corretamente desabilitando as funcionalidades de atalhos para gravação, copiar laudo e o editor externo. Por favor, tente reiniciar o "ALS" e atualizar a página, caso o problema persista será necessário reinstalar o ALS. (Cód #53)
54ERRORUnable to run the recognition engine for the given audio file. Please, check that the file is in proper wav 44100Hz format.Problema ao executar o motor do reconhecimento de voz com o arquivo de áudio dado. Verifique se o formato do arquivo é wav 44100Hz. (Cód #54)
55ERRORFailed to update or create a report.Falha no envio ou atualização de um laudo. (Cód #55)
56INIT_FAILUser license has expired.Licença do usuário expirada. Favor verificar que não há pagamentos pendentes. (Cód #56)
57ERRORFailed to fetch user parser rules.Falha ao recuperar regras de parser do usuário. (Cód #57)
58INIT_FAILUser denied mic usage permission.Falha na inicialização: o reconhecimento precisa de permissão para acesso ao microfone do browser. (Cód #58)
59INIT_FAILFailed to update the user parser rules in the speech engine.Falha ao recuperar regras de parser do usuário. (Cód #59)