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 propiedaddetail
de cualquier evento, por ejemploevent.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. EscribeIaraEvent.
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.*
.
Evento | Informació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 questart()
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 eventosIaraEvent.SPEECH_RECOGNITION_START
yonstart
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 callbackdone()
encadenada jutno al métodoinit()
del reconocedro es un acceso direto paraIaraEvent.INIT_DONE
yoninitdone
.
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 callbackfail()
encadenada junto al métodoinit()
del reconocedor es un acceso paraIaraEvent.INIT_FAIL
yoninitfail
.
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 propiedaduserId
utilizado durante la llamada ainit()
.IaraEvent.INIT_VOICE_MODEL_DOWNLOAD_PROGRESS
: emitido varias veces mientras el reconocedor descarga el modelo de voz del usuario identificado por la propiedaduserId
utilizado durante la llamada ainit()
. Puede conocer el progreso de la descarga a través de la propiedaddata
del objetodetail
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 propiedaduserId
utilizado durante la llamada ainit()
.
Consejo: a callbackprogress()
encadenada junto al métodoinit()
del reconocedor es un acceso direto paraIaraEvent.INIT_PROGRESS
yoninitprogress
.
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ódigo | Evento Desencadenado | Mensaje al Desarrollador | Descripción |
---|---|---|---|
ERROR_RECORD_INTERRUPTION | Adding 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) | |
ERROR | Unknown error, please contact our team. | Error desconocido: póngase en contacto con nuestro soporte. (Cód #2) | |
ERROR | Unknown error, please contact our team. | Error de audio desconocido: póngase en contacto con nuestro soporte. (Cód #3) | |
ERROR_RECORD_INTERRUPTION | Something 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) | |
ERROR_NO_INPUT_DEVICE | No input device is available. | Micrófono no disponible: asegúrese de tener un micrófono conectado. (Cód #5) | |
ERROR | ALS 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) | |
ERROR | mediaDevices 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) | |
ERROR | Unable to create browser stream. | Error de audio: póngase en contacto con nuestro soporte. (Cód #8) | |
ERROR | Unable 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) | |
UNSUPPORTED_SAMPLE_RATE | Browser 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) | |
ERROR | Unable 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) | |
ERROR | Recording 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) | |
INIT_FAIL | Unauthorized 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) | |
INIT_FAIL | Incompatible OS or browser version. | Lanzamiento fallido: Este navegador o sistema operativo es incompatible con Iara. (Cód #14) | |
INIT_FAIL | Problem 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) | |
INIT_FAIL | No 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) | |
INIT_FAIL | No 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) | |
INIT_FAIL | Requested input is invalid. Valid inputs are "auto" or "speechmike", for instance. | Error de inicialización: se seleccionó un micrófono incompatible. (Cód #20) | |
INIT_FAIL | ALS not installed. | La inicialización falló: el servicio local "ALS" de Iara no parece estar instalado. (Cód #21) | |
ERROR | The 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) | |
ERROR | Error 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) | |
ERROR | Unable 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) | |
ERROR | Recorder 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) | |
ERROR | Recorder 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) | |
ERROR | Unable 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) | |
ERROR | Unable 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) | |
ERROR | Unable 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) | |
ERROR | Unable 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) | |
ERROR | Recorder 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) | |
ERROR | Unable 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) | |
ERROR | Invalid command. | Problema de comunicación con mi servicio local "ALS": Mensaje na válida. (Cód #33) | |
ERROR | Error selecting audio line. | Micrófono no disponible: por favor, asegúrese de que el micrófono seleccionado aún esté conectado. (Cód #34) | |
INIT_FAIL | The 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) | |
INIT_FAIL | Error 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) | |
INIT_FAIL | Unable 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) | |
INIT_FAIL | Recorder 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) | |
INIT_FAIL | Recorder 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) | |
INIT_FAIL | Unable 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) | |
INIT_FAIL | Unable 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) | |
INIT_FAIL | Unable 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) | |
INIT_FAIL | Unable 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) | |
INIT_FAIL | Recorder 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) | |
INIT_FAIL | Unable 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) | |
INIT_FAIL | Invalid command. | Inicialización fallida: problema de comunicación con mi servicio local "ALS": mensaje no válido. (Cód #46) | |
INIT_FAIL | Error 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) | |
INIT_FAIL | The 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) | |
INIT_FAIL | ALS 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) | |
INIT_FAIL | Invalid 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) | |
ERROR | Failed to submit the feedback to the Iara API. Reason: + reason. | Error: no se pudo enviar lo feedback. (Cód #51) | |
ERROR | Unable 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) | |
ERROR | Unable 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) | |
ERROR | Failed to update or create a report. | Error al enviar o actualizar un informe. (Cód #55) | |
INIT_FAIL | User license has expired. | Licencia de usuario caducada. Por favor verifique que no haya pagos pendientes. (Cód #56) | |
ERROR | Failed to fetch user parser rules. | No se pudieron recuperar las reglas del analizador de usuario. (Cód #57) | |
INIT_FAIL | User denied mic usage permission. | Inicialización fallida: el reconocimiento necesita permiso para acceder al micrófono del navegador. (Cód #58) | |
INIT_FAIL | Failed to update the user parser rules in the speech engine. | No se pudieron recuperar las reglas del analizador de usuario. (Cód #59) |