Saltar para el contenido principal

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.transcriptpara la propriedade.detail.richTranscriptdel 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.transcriptpero 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 en e.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 propiedadrichTranscriptTemplatesdel 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.transcriptserá 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 eventdoonresult 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
}