Saltar para el contenido principal

Eventos

Todos los eventos de SDK son disponibilizados en dos formas: por el modo addEventListener() o utilizando las propiedades on del objeto IaraSpeechRecognition. En ambos casos, la función recibirá como parámetro un evento cuya propiedad detail contendrá datos relacionados con Iara Health.

IMPORTANTE: los datos relacionados con Iara Health siempre estarán en la propiedad detail de cualquier evento, por ejemplo event.detail.

Por ejemplo, dado el evento ficticio result, se puede acceder a través de addEventListener():

var recognition = new IaraSpeechRecognition();

recognition.addEventListener('result', function(event) {
// Los datos relacionados con Iara Health estarán disponibles
// a través de la propiedad `detail` de cualquier evento.
console.log(event.detail);
});

O a través de la propiedad onresult:

recognition.onresult = function(event) {
// Los datos relacionados con Iara Health estarán disponibles
// a través de la propiedad `detail` de cualquier evento.
console.log(event.detail);
}

Para facilitar el descubrimiento de eventos (y la finalización del código en los IDE), todos los eventos activados por la clase IaraSpeechRecognition están disponibles como propiedades estáticas de la clase IaraEvent.

Consejo: El modoIaraEvent contiene todo los eventos disponibles para tu uso. Escribe IaraEvent. en su IDE para que enumere las propiedades de esa clase (que son los eventos disponibles).

Las siguientes secciones describen, por tema, cada uno de los eventos disponibles y el contenido de su propiedad detail. Todos los ejemplos que se muestran abajo asumen que un reconocedor llamado recognition fue instanciado:

var recognition = new IaraSpeechRecognition();

Lista de eventos disponibles

La siguiente tabla muestra todos los eventos existentes, todos accesibles a través de IaraEvent.*.

EventoInformación
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-

Las siguientes secciones explican y ejemplifican con más detalle cada uno de los eventos enumerados arriba.

Reconocimiento de voz

Eventos relacionados con el reconocimiento de voz de Iara Health. Todos estos eventos se emiten después de que haya tenido lugar un arranque exitoso.

Ready - IaraEvent.SPEECH_RECOGNITION_READY e onready

Se emite cuando el reconocedor está listo para recibir audios entrantes para hacer nuevas inferencias.

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 cuando el reconocedor ha terminado una inferencia.

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

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

Mira la seción Reconocimiento de voz para obtener más información sobre el reconocimiento de voz, incluyendo la obtención de resultados intermedios.

Start - IaraEvent.SPEECH_RECOGNITION_START e onstart

Emitido cuando el reconocedor inicia el proceso de reconocimiento, i.e. luego después de que se haya invocado start().

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

recognition.onstart = function(event) {
console.log(event.detail);
}
IMPORTANTE: puede haber una pausa de algunos milisegundos (o segundos, dependiendo de la computadora del usuario) desde el momento que start() es llamado y el momento en que comienza realmente el reconocimiento. Esto sucede porque el ALS está configurando los canales de audio del sistema. Los eventos IaraEvent.SPEECH_RECOGNITION_START y onstart indicam cuándo se inició correctamente el reconocimiento.

Stop - IaraEvent.SPEECH_RECOGNITION_STOP e onstop

Emitido cuando el reconocedor inicia el proceso de reconocimiento, i.e. luego después de que se haya invocado stop().

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 cuando la opción useVad é true en el iniciación y el VAD (voice activity detection) inicia la detección 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 cuando la opción useVAD es true en el iniciación y el VAD (voice activity detection) deja de detectar la emisión de voz.

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

Inicialización

Eventos emitidos durante el proceso de inicialización del reconocedor Iara.

Init done - IaraEvent.INIT_DONE y oninitdone

Se emite cuando el reconocedor ha terminado de inicializarse y está listo para comenzar a funcionar.

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

recognition.oninitdone = function(event) {
console.log(event.detail);
}
Consejo: a callback done() encadenada jutno al método init() del reconocedro es un acceso direto para IaraEvent.INIT_DONE y oninitdone.

Los eventos de IaraEvent.INIT_DONE y oninitdone también están disponibles a través de la callback done() encadenada con metodo init() del reconocedor:

var recognition = new IaraSpeechRecognition();

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

}).done(function(e) {
// Inicialización completada con éxito

});

Init fail - IaraEvent.INIT_FAIL y oninitfail

Emitido cuando el reconocedor no pudo realizar una inicialización exitosa. Si se emite este evento, el reconocedor no está listo para realizar ningún reconocimiento de voz.

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

recognition.oninitfail = function(event) {
console.log(event.detail);
}
Consejo: a callback fail() encadenada junto al método init() del reconocedor es un acceso para IaraEvent.INIT_FAIL y oninitfail.

Los eventos de IaraEvent.INIT_FAIL y oninitfail también están disponibles a través del callback fail() encadenada con metodo init() del reconocedor:

var recognition = new IaraSpeechRecognition();

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

}).fail(function(e) {
//Inicialización falló.
});

Init progress - IaraEvent.INIT_PROGRESSS y oninitprogress

Se emite cuando el reconocedor se está inicializando. Durante el proceso de inicialización, el reconocedor realiza varios pasos, como la autenticación con la API Iara, descargar plantillas de voz, etc.

Para cada uno de estos pasos, los eventos IaraEvent.INIT_PROGRESSS y oninitprogress serán 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 y oninitprogress se emiten, puede conocer el status/paso de la inicialización a través de la propiedad type del objeto detail del evento pasado como parámetro, i.e. event.detail.type.

Los posibles valores de event.detail.type son:

  • IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_STARTED: emitido cuando el reconocedor comenzó a descargar el modelo de voz del usuario identificado por la propiedad userId utilizado durante la llamada a init().

  • IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_PROGRESS: emitido varias veces mientras el reconocedor descarga el modelo de voz del usuario identificado por la propiedad userId utilizado durante la llamada a init(). Puede conocer el progreso de la descarga a través de la propiedad data del objeto detail del evento pasado como parámetro, i.e. event.detail.data.

  • IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_COMPLETED: se emite cuando el reconocedor ha terminado de descargar el modelo de voz del usuario identificado por la propiedad userId utilizado durante la llamada a init().

Consejo: a callback progress() encadenada junto al método init() del reconocedor es un acceso direto para IaraEvent.INIT_PROGRESS y oninitprogress.

Todos los eventos de progreso de arranque, por ejemplo: IaraEvent.INIT_*, están disponibles a través de la callback progress()encadenada con metodo init() del reconocedor:

var recognition = new IaraSpeechRecognition();

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

}).progress(function(e) {
// La inicialización está teniendo lugar.
console.log(e.detail.type, e.detail.data);
});

Audio

Eventos relacionados con el control de dispositivos de entrada y salida de audio. Ver la sección Dispositivos de audio para obtener más información sobre cómo configurar y elegir la entrada y salida de audio.

Audio level update - IaraEvent.AUDIO_LEVEL_UPDATE y onaudiolevelupdate

Emitido por el reconocedor cuando se detecta audio en el dispositivo de entrada, después start() han sido invocados.

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

recognition.onaudiolevelupdate = function(event) {
console.log(event.detail);
}
consejos: usar los eventos `IaraEvent.AUDIO_LEVEL_UPDATE` y `onaudiolevelupdate` para mejorar la UX de tu aplicación. Por ejemplo, después que `start()` se invoca, muestra pequeñas barras verticales (de sonido) que se mueven para indicar que el micrófono está capturando el audio.

Errores

Para facilitar el manejo de errores, el SDK desencadena eventos relacionados con el error en cuestión. Se puede acceder a la información relevante en event.detail. Cada error tiene:

  • Un errorCode único, representado a continuación por la columna 'Código';
  • Una developerMessage, que tiene como objetivo explicar la causa del error al desarrollador;
  • Una userMessage, que representa un mensaje sugerido para ser mostrado al usuario.

Lista de errores

La siguiente tabla muestra todos los errores existentes y sus descripciones.

CódigoEvento DesencadenadoMensaje al DesarrolladorDescripción
1ERROR_RECORD_INTERRUPTIONAdding or removing audio devices when recording is not allowed.Problema de grabación: se agregó o eliminó un micrófono mientras el reconocimiento estaba activo. (Cód #1)
2ERRORUnknown error, please contact our team.Error desconocido: póngase en contacto con nuestro soporte. (Cód #2)
3ERRORUnknown error, please contact our team.Error de audio desconocido: póngase en contacto con nuestro soporte. (Cód #3)
4ERROR_RECORD_INTERRUPTIONSomething affected the recording: + reason.Problema con la grabación: un error desconocido detuvo la grabación. Póngase en contacto con nuestro soporte. (Cód #4)
5ERROR_NO_INPUT_DEVICENo input device is available.Micrófono no disponible: asegúrese de tener un micrófono conectado. (Cód #5)
6ERRORALS seems to be permanently offline.Problema con el servicio local de Iara: intente reiniciar lo "ALS". Si el problema persiste, póngase en contacto con nuestro soporte. (Cód #6)
7ERRORmediaDevices not supported by browser or insecure access (HTTP instead of HTTPS).Micrófono no disponible: el navegador no tiene acceso seguro al micrófono o no es compatible. Póngase en contacto con nuestro soporte. (Cód #7)
8ERRORUnable to create browser stream.Error de audio: póngase en contacto con nuestro soporte. (Cód #8)
9ERRORUnable to enumerate input devices.Micrófono no disponible: no se pudo verificar que haya un micrófono conectado. Por favor, intente reiniciar lo "ALS". Si el problema persiste, póngase en contacto con nuestro soporte. (Cód #9)
10UNSUPPORTED_SAMPLE_RATEBrowser mic has an unsupported sample rate for recording.Micrófono no disponible: no se pudo inicializar el micrófono. Por favor, póngase en contacto con nuestro soporte. (Cód #10)
11ERRORUnable to record.Problema con la grabación: no se pudo iniciar la grabación. Por favor, póngase en contacto con nuestro soporte. (Cód #11)
12ERRORRecording is disabled: + reason.Problema con la grabación: Aún se está procesando una grabación anterior. Espere unos momentos y vuelva a intentarlo. Si el problema persiste, póngase en contacto con nuestro soporte. (Cód #12)
13INIT_FAILUnauthorized access to Iara API.Inicialización fallida: nombre de usuario o contraseña no válidos. Por favir, verifique sus credenciales de inicio de sesión. (Cód #13)
14INIT_FAILIncompatible OS or browser version.Lanzamiento fallido: Este navegador o sistema operativo es incompatible con Iara. (Cód #14)
15INIT_FAILProblem reading Iara API SDK version info.La inicialización falló: no pudimos verificar la versión de nuestro "Javascript SDK". Por favor, póngase en contacto con nuestro soporte. (Cód #15)
18INIT_FAILNo suitable input method is available. Check your audio input devices.Error de inicialización: no se pudo detectar un micrófono compatible con Iara. (Cód #18)
19INIT_FAILNo audio input device is available. Check if you have a valid mic or SpeechMike.Inicialización fallida: no se pudo detectar un micrófono. (Cód #19)
20INIT_FAILRequested input is invalid. Valid inputs are "auto" or "speechmike", for instance.Error de inicialización: se seleccionó un micrófono incompatible. (Cód #20)
21INIT_FAILALS not installed.La inicialización falló: el servicio local "ALS" de Iara no parece estar instalado. (Cód #21)
22ERRORThe Iara speech recognition engine is busy. Please try again in a moment.El motor de reconocimiento de voz de Iara está ocupado actualmente. Por favor, prueba otra vez en unos instantes. (Cód #22)
23ERRORError dealing with the Iara API.Fallo de comunicación con la API de Iara. Por favor, vuelva a intentarlo en unos momentos. Si el problema persiste, póngase en contacto con nuestro soporte. (Cód #23)
24ERRORUnable to initialize.La inicialización falló: no pudimos inicializar el motor de reconocimiento de voz. Por favor, póngase en contacto con nuestro soporte. (Cód #24)
25ERRORRecorder already in use.La Iara se inicializa en un lugar más. Actualmente, no es posible utilizar simultáneamente el reconocimiento de voz en varias pestañas del navegador. (Cód #25)
26ERRORRecorder being forcefully disconnected.La Iara se inicializa en un lugar más. Actualmente, no es posible utilizar simultáneamente el reconocimiento de voz en varias pestañas del navegador. (Cód #26)
27ERRORUnable to generate audio log.Había un problema con el archivo de audio para fines de registro. Tú puedes continuar usando Iara normalmente. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #27)
28ERRORUnable to open audio line.Error de audio: un error desconocido impidió que se iniciara la grabación. Por favor, póngase en contacto con nuestro soporte. (Cód #28)
29ERRORUnable to open and/or start playback line.Error de audio: un error desconocido impidió que se reprodujera un audio. Por favor, póngase en contacto con nuestro soporte. (Cód #29)
30ERRORUnable to open and/or start capture line.Problema con la grabación: no se pudo iniciar la grabación. Asegúrese de que el micrófono aún esté conectado. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #30)
31ERRORRecorder is busy.Problema con la grabación: la grabadora del servicio local "ALS" está ocupada. Por favor, vuelva a intentarlo en un momento. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #31)
32ERRORUnable to generate .ogg file.Había un problema con el archivo de audio para fines de registro. Tu puedes continuar usando Iara normalmente. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #32)
33ERRORInvalid command.Problema de comunicación con mi servicio local "ALS": Mensaje na válida. (Cód #33)
34ERRORError selecting audio line.Micrófono no disponible: por favor, asegúrese de que el micrófono seleccionado aún esté conectado. (Cód #34)
35INIT_FAILThe Iara speech recognition engine is busy. Please try again in a moment.El motor de reconocimiento de voz de Iara está ocupado actualmente. Por favor, vuelva a intentarlo en unos momentos. (Cód #35)
36INIT_FAILError dealing with the Iara API.Fallo de inicialización: Fallo de comunicación con la API de Iara. Por favor, prueba otra vez en unos instantes. Si el problema persiste, póngase en contacto con nuestro soporte. (Cód #36)
37INIT_FAILUnable to initialize.La inicialización falló: no pudimos inicializar el motor de reconocimiento de voz. Por favor, póngase en contacto con nuestro soporte. (Cód #37)
38INIT_FAILRecorder already in use.Inicialización fallida: Iara se inicializa en un lugar más. Actualmente, no es posible utilizar simultáneamente el reconocimiento de voz en varias pestañas del navegador. (Cód #38)
39INIT_FAILRecorder being forcefully disconnected.Inicialización fallida: Iara se inicializa en un lugar más. Actualmente, no es posible utilizar simultáneamente el reconocimiento de voz en varias pestañas del navegador. (Cód #39)
40INIT_FAILUnable to generate audio log.La inicialización falló: hubo un problema con el archivo de audio para fines de registro. Tu puedes continuar usando Iara normalmente. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #40)
41INIT_FAILUnable to open audio line.Inicialización fallida: error de audio: un error desconocido impidió que se iniciara la grabación. Por favor, póngase en contacto con nuestro soporte. (Cód #41)
42INIT_FAILUnable to open and/or start playback line.Inicialización fallida: error de audio: un error desconocido impidió que se reprodujera un audio. Por favor, póngase en contacto con nuestro soporte. (Cód #42)
43INIT_FAILUnable to open and/or start capture line.Inicialización fallida: problema con la grabación: no se puede iniciar la grabación. Asegúrese de que el micrófono aún esté conectado. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #43)
44INIT_FAILRecorder is busy.La inicialización falló: problema con la escritura: el escritor para el servicio local "ALS" está ocupado. Por favor, vuelva a intentarlo en un momento. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #44)
45INIT_FAILUnable to generate .ogg file.La inicialización falló: hubo un problema con el archivo de audio para fines de registro. Puede continuar usando Iara normalmente. Si el problema persiste, por favor, póngase en contacto con nuestro soporte. (Cód #45)
46INIT_FAILInvalid command.Inicialización fallida: problema de comunicación con mi servicio local "ALS": mensaje no válido. (Cód #46)
47INIT_FAILError selecting audio line.Inicialización fallida: micrófono no disponible: por favor, asegúrese de que el micrófono seleccionado aún esté conectado. (Cód #47)
48INIT_FAILThe installed ALS version is outdated and incompatible with this SDK version.La inicialización falló: la versión instalada del servicio local "ALS" de Iara es incompatible o está desactualizada. (Cód #48)
49INIT_FAILALS closed all currently active connections due to forceConnect (probably multiple tabs are open).La inicialización falló: el servicio local "ALS" de Iara parece haber terminado todas las conexiones. Puede ser que Iara se inicie en más de una pestaña de tu navegador. (Cód #49)
50INIT_FAILInvalid response from Iara API.Fallo de inicialización: Fallo de comunicación con la API de Iara. Por favor, vuelva a intentarlo en unos momentos. Si el problema persiste, póngase en contacto con nuestro soporte. (Cód #50)
51ERRORFailed to submit the feedback to the Iara API. Reason: + reason.Error: no se pudo enviar lo 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 con el servicio local de Iara: no era posible inicializar correctamente los protocolos ALS deshabilitando los accesos directos para grabar, copiar el informe y el editor externo. Por favor, intente reiniciar "ALS" y actualizar la página, si el problema persiste, deberá reinstalar 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 al ejecutar el motor de reconocimiento de voz con un archivo de audio determinado. Asegúrese de que el formato de archivo sea wav 44100Hz. (Cód #54)
55ERRORFailed to update or create a report.Error al enviar o actualizar un informe. (Cód #55)
56INIT_FAILUser license has expired.Licencia de usuario caducada. Por favor verifique que no haya pagos pendientes. (Cód #56)
57ERRORFailed to fetch user parser rules.No se pudieron recuperar las reglas del analizador de usuario. (Cód #57)
58INIT_FAILUser denied mic usage permission.Inicialización fallida: el reconocimiento necesita permiso para acceder al micrófono del navegador. (Cód #58)
59INIT_FAILFailed to update the user parser rules in the speech engine.No se pudieron recuperar las reglas del analizador de usuario. (Cód #59)