Inicialización
La inicialización del SDK es compuesta por dos categorias principales: informaciones para autenticación (Obligatórias) y configuraciones del reconocimiento (opcional) que incluyé la decisión de la diapositiva de audio, por ejemplo.
Esta página describe la configuración e inicialización del reconocimiento, y menciona brevemente los detalles relacionados con la parte de autenticación.
Ver la página Autenticación (API Iara) para más informaciones relacionados con la autenticación.
Parámetros de inicialización
La inicialización del reconocedor de Iara es hecha después de su instaciación a través de su chamada al método init()
. Este método recibe un objeto como parámetro, cuyas propiedades (y sus valores) representan los parámetros de inicialización:
var recognition = new IaraSpeechRecognition();
// Inicializa o SDK
recognition.init({
userId: "meu@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
});
El reconocedor de voz puede configurarse para las necesidades específicas de su aplicación. Puede definir, por ejemplo, si se producen resultados de reconocimiento intermedios, o elegir el idioma en el que debe trabajar el reconocedor.
Las siguientes secciones explican cada uno de los parámetros de arranque disponibles.
userId
y apiToken
- autenticación
Las únicas propiedades obligatorias del objecto pasado al init()
son userId
y apiToken
, qué describe las informaciones del autenticación.
Precisa tener un
userId
yapiToken
da API para utilizar el SDK. Escribe para contato@iarahealth.com para obtener sus datos de inicio de sesión.
Si estas propiedades no existen en el objeto de inicialización (o si sus valores no son válidos), el SDK mostrará un error. Si todo es correcto, el SDK estará listo para reconocer los audios.
lang
- linguaje de reconocimiento (default "pt-BR"
)
El parámetro lang
permite establecer el idioma de los audios de entrada que el reconocedor intenta reconocer:
var recognition = new IaraSpeechRecognition();
recognition.init({
userId: "meu@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
lang: "pt-BR", // idioma de los audios de entrada
});
Si no ha introducido lang
, el reconocedor asume que los audios de entrada están en el idioma Portugués de Brasil (pt-BR
). A este respecto, los idiomas que admite Iara son los siguientes:
Idioma | Siglas | Disponibles | Observación |
---|---|---|---|
pt-BR | Sí | Idioma general utilizado si no se indica la lengua. | |
pt-PT | No | El equipo de desenvolvimento está estudiando la viabilidad. |
Importante: actualmente el reconocimiento de voz de Iara sólo funciona con portugués de Brasil (pt-BR
). El equipo de desenvolvimento trabaja constantemente para aumentar los idiomas a disposición de los usuarios. Siga en esta página nuestros progresos.
interimResults
- reconocimiento intermediario (default false
)
El parámetro interimResults
define si el SDK producirá resultados intermediarios de reconocimiento de voz o no:
var recognition = new IaraSpeechRecognition();
recognition.init({
userId: "mi@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
interimResults: false, // si los resultados intermediarios del reconocimiento
// de voz deben producirse o no.
});
Los resultados intermediarios se producen a intervalos no definidos que dependen del reconocimiento del audio de entrada por parte de Iara y de la capacidad de procesamiento del computador del usuario. A medida que se capturan y procesan los audios, si interimResults
es true
, el SDK mostrará el resultado obtenido en el reconocimiento.
Si interimResults
es false
(comportamiento estándar), los resultados intermediarios no se muestran, sólo el resultado final después de stop()
es llamado.
Ver la sección reconocimiento de voz y el ejemplo de código
interim-recognition
para saber más sobre el reconocimiento de voz con resultados intermediarios.
input
- dispositivo de entrada de audio (default "auto"
)
El SDK permite el uso de varios dispositivos de entrada de audio, incluyendo micrófonos USB externos como SpeechMike®. Usted puede configurar el dispositivo de entrada de audio a través del parámetro input
:
var recognition = new IaraSpeechRecognition();
// Inicializa el SDK
recognition.init({
userId: "mi@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
input: "auto", // Dispositivo de entrada de audio
});
Si el parámetro input
no se informado al iniciar, el SDK se iniciará por supuesto como input: 'auto'
. En este caso, el SDK buscará el mejor dispositivo de entrada para el entorno del usuario, con el menor número posible de pasos de configuración.
Consejo: input: 'auto'
es la forma más flexible de inicialización del audio. En este caso, se decide el dispositivo con mejor cualidad y menos pasos de cofiguración por parte del usuario. Consulte la página Dispositivos de audio para saber más.
useVAD
- reconocimiento con detección de voz (default false
)
El parámetro useVAD
define si el SDK deberá utilizar la Detección de Actividad de Voz (VAD). Después de que el usuario inicie la grabación, el SDK pausará y retomará el reconocimiento a medida que se detecte el voz:
var recognition = new IaraSpeechRecognition();
recognition.init({
userId: "mi@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
input: "browsermic",
useVAD: true, // si el reconocimiento deberá utilizar el VAD o no
});
IMPORTANTE: para el funcionamiento de VAD además de pasar el useVAD como parámetro es necesario pasar el parámetro input
inicializado como browsermic.
Para saber más sobre el reconocimiento de voz con detección de actividad vocal (VAD), consulte
Avançado
en la sección Detectar atividade de voz (VAD).
Forzando un determinado dispositivo de entrada de audio
Si su aplicación depende de un dispositivo de entrada específico, usted puede forzar su selección durante la iniciación. El ejemplo siguiente requiere un SpeechMike® como dispositivo de entrada, produciendo un error de inicio cuando no está disponible:
var recognition = new IaraSpeechRecognition();
// Inicializa el SDK
recognition
.init({
userId: "mi@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
input: "speechmike", // fuerza el uso de SpeechMike® como
// dispositivo de entrada de audio
})
.fail(function (e) {
console.error("Dispositivo de entrada SpeechMike® no disponible!");
});
Consejo: Consulte la pagina Dispositivos de audio para más informaciones a cerca de la utilización y configuración de los dispositivos de audio.
Monitorización de la iniciación
Usted puede seguir el proceso de inicialización del SDK en detalle, por ejemplo, si ha habido un error, en que parte de la inicialización se encuentra el SDK, etc. El proceso de control se realiza mediante los métodos done()
, fail()
y progress()
, llamados junto con el init()
:
var recognition = new IaraSpeechRecognition();
recognition
.init({
userId: "mi@email.com",
apiToken: "197765800edb8affcb44a7ae7b4ff0a3",
})
.done(function (e) {
// Inicialización completada con éxito
})
.fail(function (e) {
// Error en la inicialización.
})
.progress(function (e) {
// Inicialización está ocurriendo
});
En las secciones siguientes se explican detalladamente cada uno de los métodos de supervisión de la iniciación.
done()
- éxito en la inicialización
El método done()
es llamado cuando la inicialización ha finalizada, no ha habido errores y el SDK está disponible para hacer reconocimientos de voz.
El inicio del SDK depende de varios pasos, como la comprobación de ALS se está ejecutando, la descarga del modelo de voz del usuario informado a través del userId
. Tan pronto, su aplicación no podrá hacer el reconocimiento de voz hasta que done()
sea invocado.
IMPORTANTE: tu aplicación necesita esperar hasta que se llame a done()
antes de poder hacer cualquier reconocimiento de voz.
El método done()
toma como parámetro un evento cuya propiedad detail
del tipo IaraInitDetail
contiene información sobre Iara.
fail()
- fallas de arranque
Si se produce algún error durante la inicialización del SDK, por ejemplo, el ALS no se ha encontrado o, el SDK invocará el método fail()
. La llamada a este método indica que el SDK no puede realizar el reconocimiento de voz en el entorno proporcionado.
Vea la página
Eventos
para saber más sobre el parámetro que recibefail()
que contiene la información sobre el error.
El método fail()
recibe cómo parámetro un evento cuya su propiedad detail
del tipo IaralnitDetail
contiene informaciones a cerca del error que ocurrió durante la inicialización:
var recognition = new IaraSpeechRecognition();
recognition
.init({
// (...)
})
.done(function (e) {
// (...)
})
.fail(function (e) {
// Error de inicialización. La propiedade "detail" del evento "e" tiene las propiedades:
//
// type
// tipo de evento, lo cual es IaraInitEvent.FAIL en ese caso.
// developerMessage
// Mensaje de error orientado a los desenvolvedores, con sugerencias
// sobre cómo resolver el problema.
// userMessage
// Mensaje de error intuitivo, sin términos técnicos, que puede
// se mostrará al usuario de la aplicación.
// errorCode
// número entero que indica el código del error ocurrido.
// moreInfo
// enlaces para la documentación de Iara Speech SDK que pueden
// ayudar con el problema.
console.error(
"Error " +
e.detail.errorCode +
":" +
e.detail.developerMEssage +
". Mais info:" +
e.detail.moreInfo
);
alert(e.userMessage);
})
.progress(function (e) {
// (...)
});
El evento de error que se pasa a fail()
como parámetro contiene información útil para los desarrolladores y usuarios de su aplicación. La propiedade userMessage
del evento contiene un mensaje de error intuitivo, sin términos técnicos, que se puede mostrar al usuario de la aplicación.
CONSEJO: sefail(e)
se llama, utilizae.detail.developerMessage
ye.detail.moreInfo
para saber técnicamente qué ha pasado y cómo resolver el problema.
Del mismo modo, la propiedad developerMessage
contiene un mensaje de error dirigido a los desarrolladores, con sugerencias sobre cómo resolver el problema. En este sentido, la propiedad errorCode
contiene un entero que indica el código del error ocurrido, y moreInfo
contiene enlace(s) a la documentación del SDK de Iara Speech que puede ayudar con el problema.
progress()
- progreso de inicialización
El proceso de inicialización del SDK es compuesto de varios pasos, como comprobar si el ALS se está ejecutando, descargar el modelo de voz del usuario, etc.
Vea la página
Eventos
para saber más sobre el parámetro que recibeprogress()
y contiene la información de inicialización.
Puedes utilizar las llamadas al método progress()
para seguir estos pasos. El método progress()
se llamará varias veces durante el arranque, una para cada paso de proceso:
// (...)
var recognition = new IaraSpeechRecognition();
recognition
.init({
// (...)
})
.done(function (e) {
// (...)
})
.fail(function (e) {
// (...)
})
.progress(function (e) {
//El arranque esta ocurriendo. La propiedade "detail" del evento "e"
// tiene las propiedades:
//
// type
// tipo de evento, que puede ser cualquiera de los eventos
// denominado como IaraInitEvent.INIT_*.
// developerMessage
// mensaje orientado a los desarrolladores, que describe el paso
// de inicialización que se ejecuta.
/ userMessage
// mensaje intuitiva, sin términos técnicos, qué describe
// el paso de inicialización. Ejemplo: "Su modelo de voz
// se está descargando".
// moreInfo
// enlace(s) a la documentación del SDK de Iara Speech que explica (n)
// el paso de inicialización.
console.debug(
"[" + e.detail.type + "] iara inicializando: " + e.detail.developerMessage
);
console.log(e.detail.userMessage);
});
El método progress()
se llamará varias veces antes que done()
o fail()
sea finalmente llamado. Por ejemplo, progress()
se llamará cuando el SDK detecte que el ALS se está ejecutando en el ordenador del usuario, cuando se esté descargando la plantilla de voz de usuario especificada, cuando la plantilla de voz se haya descargado correctamente, etc.
Como buena práctica de usabilidad, se recomienda que el usuario de su aplicación sea informado visualmente de los pasos de inicio. Esto evita la frustración del usuario, que no se quedará mirando una aplicación que parece bloqueada.
En este sentido, la propiedad userMessage
de la propiedad detail
del evento que se pasa a progress()
contiene un mensaje intuitivo, sin términos técnicos, que describe el paso de inicialización. Un ejemplo de frase es "Su modelo de voz se está descargando"
.
Vea la página Ejemplos y el ejemplo
events-listeners
que ilustran sobre el uso deprogress()
según lo recomendado.
Del mismo modo, la propiedad developerMessage
contiene un mensaje dirigido a los desarrolladores, que describe el paso de inicialización que se está ejecutando. La propiedad moreInfo
contiene el enlace (s) para que la documentación de Iara Speech SDK explica (n) los pasos de inicialización.