Plantillas (transcripción rica)
La funcionalidad de la plantilla permite que el contenido de cualquier transcripción de audio se enriquezca con contenido adicional y puesto a disposición a través de la propiedad richTranscript
. Las plantillas son similares a los comandos Iara pero el foco está en substituir (o enriquecimento) del contenido.
Funcionamiento básico
En términos generales, una plantilla no es más que un filtro que transforma el contenido de la propiedade.detail.transcript
para la propriedade.detail.richTranscript
del objeto del resultado del reconocimiento.
Este proceso de transformación de contenido consiste básicamente en obtener una cadena y reemplazarla por otra. La búsqueda se realiza ene.detail.transcript
pero lo resultado de la sustitución se pone ene.detail.richTranscript
.
De esta forma, la plantilla se compone de dos partes principales:
- Texto/comando de activación (string a buscar)
- Contenido (string que reemplazará el texto/comando de activación)
De forma predeterminada, cualquier texto/comando de activación tendrá el prefijo interno de la string "iara texto "
. Por lo tanto, la plantilla cuyo texto/comando de activación es"teste"
tomará medidas si el usuario hablaiara texto teste
.
consejo: las plantillas son, esencialmente, funciones de búsqueda y reemplazo de strings, donde la búsqueda se realiza ene.detail.transcript
y el resultado de la sustitución se pone ene.detail.richTranscript
.
Las plantillas se pueden personalizar en gran medida, desde el prefijo del comando hasta cómo cambiará el contenido. Las siguientes secciones demuestran cada una de estas funciones.
Utilización básica
Las plantillas se agregan a través de la propiedadrichTranscriptTemplates
del reconocedor:
var recognition = new IaraSpeechRecognition();
var cmd = 'prueba';
var content = 'contenido';
// Adiciona templates
recognition.richTranscriptTemplates.add(cmd, content);
recognition.init({
// ...
}).done(function(e) {
// Suponiendo que el usuario dijo "iara texto prueba hígado",
// se producirá lo siguiente.
recognition.onresult = function(event) {
console.log(e.detail.transcript); // "iara texto prueba hígado"
console.log(e.detail.richTranscript); // "contenido hígado"
}
});
En el ejemplo anterior, cuando el usuario hablaiara texto teste
, esta misma cadena que existe en la propiedade.detail.transcript
será sustituida por"conteúdo"
en la propiedade.detail.richTranscript
.
El contenido de una plantilla no se limpiará ni cambiará antes de su uso, por lo que incluso puede contener etiquetas HTML:
var recognition = new IaraSpeechRecognition();
// Adiciona plantillas
recognition.richTranscriptTemplates.add(
'conductos biliares',
'<em>conductos biliares</em> fue
<strong>enriquecido</strong>'
);
recognition.init({
// ...
}).done(function(e) {
// Suponiendo que el usuario dijo "iara texto conductos biliares",
// se producirá lo siguiente.
recognition.onresult = function(event) {
console.log(e.detail.transcript); // "iara texto conductos biliares"
console.log(e.detail.richTranscript); // "<em>conductos biliares</em> foi <strong>enriquecido</strong>"
}
});
Callback de la activación
Puede detectar si una plantilla ha sido activada o no a través de una callback pasado como un parámetro de método add()
:
function myCallback(resultEvent, context) {
console.log('Plantilla "dilatación" invocado.');
console.log(Resultado de la plantilla de "dilatación": ', resultEvent)
console.log('Contexto de la plantilla de "dilatación": ', context);
}
var recognition = new IaraSpeechRecognition();
// Añadir plantilla con callback
recognition.richTranscriptTemplates.add('dilatación', 'no hay dilatacion', myCallback);
recognition.init({
// ...
}).done(function(e) {
// Suponiendo que el usuario dijo "iara texto dilatación",
// se producirá lo siguiente.
recognition.onresult = function(event) {
console.log(e.detail.transcript); // "iara texto dilatación"
console.log(e.detail.richTranscript); // "No hay dilatacion"
}
});
En el ejemplo anterior, el comando "iara texto dilatação"
active la plantilla que reemplazará a esta string por "Não há dilatação"
. Además, cuando la plantilla está activada, la callback pasada como el tercer parámetro será invocada.
La callback recibirá como parámetros el objeto resultante de la transcripción actual (objeto event
doonresult
en el ejemplo anterior), y un parámetro que contiene información sobre el contexto de la plantilla que se está ejecutando.
El parámetro context
recibido por la callback contiene mucha información sobre la plantilla y la transcripción. En el caso del ejemplo anterior, estas serían sus propiedades y valores:
// console.log(context)
{
// Texto a buscar `transcript`
findText: 'iara texto dilatación´,
//Texto que reemplazará `findText` si se encuentra.
replaceText: 'No hay dilatación',
// Contenido de la propiedad `richTranscript` sin
// se ha aplicado cualquier plantilla.
originalRichTranscript: 'iara texto dilatación',
// Objeto de configuración adicional de la plantilla.
config: {},
// referencia a la función de callback
callback: Function
}