Aprende a agregar compatibilidad con un idioma que no figura en los idiomas oficiales de artyom.

Cómo agregar un idioma que no es totalmente compatible con Artyom.js

Artyom.js es una biblioteca útil que le permite implementar algún tipo de pequeño asistente que funciona con el reconocimiento de voz y la síntesis de voz de Google Chrome. Puede agregar con comandos de voz de JavaScript, ya sea con texto sin formato o con la ayuda de Expresiones regulares. Un comando se activa cuando el texto hablado por el usuario coincide con cualquiera de las opciones proporcionadas dentro de un comando, activando finalmente una función que determina lo que hacen los comandos.

Originalmente y hasta la fecha, Artyom.js admite 13 idiomas . El "soporte" de esta biblioteca para estos idiomas se basa en la disponibilidad de la API de reconocimiento de voz de Google para una voz (ya sea nativa o de Google) para el idioma en el navegador. El único problema es que el reconocimiento de voz de Webkit actualmente admite más de 40 idiomas en Chrome. Algunos idiomas tienen códigos específicos según la región (los identificadores siguen  el formato BCP-47  ). Para obtener más información sobre las regiones y los códigos de idioma disponibles, lea este artículo .

En este artículo, aprenderá cómo ampliar el soporte de Artyom para otros idiomas.

Requisitos

Necesita 2 cosas para ampliar Artyom:

Una voz instalada para tu idioma

La primera es que su navegador tiene una voz para su idioma, por ejemplo, si su idioma es turco, su navegador debe tener al menos una voz nativa instalada (de su sistema operativo) y el código de idioma debe coincidir con el que aparece en la lista. en los idiomas admitidos por Webkit Speech Recognition. 

Puede usar el siguiente fragmento con Artyom para enumerar todas las voces en la consola como una cadena:

let voiceResults = [];

let artyom = new Artyom();

// o si no quieres usar artyom
//let voices = speechSynthesis.getVoices();
let voices = artyom.getVoices();

voices.forEach((voice) => {
    voiceResults.push({
        voiceURI: voice.voiceURI,
        name: voice.name,
        lang: voice.lang
    });
});

console.log(
    JSON.stringify(voiceResults, null , 5)
);

// Produce algo como
//[
//     {
//          "voiceURI": "Microsoft Zira Desktop - English (United States)",
//          "name": "Microsoft Zira Desktop - English (United States)",
//          "lang": "en-US"
//     },
//    {
//          "voiceURI": "Google Deutsch",
//          "name": "Google Deutsch",
//          "lang": "de-DE"
//     },
//     {
//          "voiceURI": "Google US English",
//          "name": "Google US English",
//          "lang": "en-US"
//     },
//     etc...

En muchos sistemas operativos puedes instalar voces adicionales, así que no olvides echarle un vistazo en Google.

Compatibilidad con la API de reconocimiento de voz para su idioma

El segundo, es que la API de reconocimiento de voz de Google es compatible con su idioma, por lo que es posible que desee verificarlo consultando la lista de idiomas admitidos por la API aquí .

Si uno de los elementos enumerados en las voces tiene el código de idioma de su idioma (el idioma que Artyom no admite) y el Reconocimiento de voz de Google admite su idioma, entonces puede proceder a extender Artyom con su idioma.

Ampliando Artyom con un nuevo lenguaje

Para agregar un nuevo idioma a Artyom, solo necesita conocer el código del idioma que desea utilizar. Por ejemplo, si queremos agregar el idioma turco, nuestro código sería tr-TR. Este idioma debe configurarse como clave en el objeto ArtyomVoicesIdentifier de su instancia de Artyom, que como valor recibe una matriz con el código de idioma (o códigos) de la voz instalada en su computadora:

const myAssistant = new Artyom();

// El lenguaje de código que se utilizará para inicializar artyom
// con reconocimiento de voz
let newLanguageIdentifier = "tr-TR";

// Una matriz con los posibles lenguajes de código de la voz instalada
// en su dispositivo (o voiceURI o nombre)
let possibleVoiceLangIdentifiers = ["tr-TR", "tr_TR"];

// Esto agregará soporte al turco para comandos de voz
// y (solo si hay una voz disponible para turco en el navegador) para síntesis de voz
myAssistant.ArtyomVoicesIdentifiers[newLanguageIdentifier] = possibleVoiceLangIdentifiers;

// Agregar un comando en turco
myAssistant.addCommands({
    indexes: ["günaydın"],
    action: () => {
        myAssistant.say("Günaydın, bugün nasılsın?");
    }
})

// Iniciar Artyom en turco
myAssistant.initialize({
    lang: newLanguageIdentifier,
    // rest of your initialization code !
});

Con el fragmento anterior, una voz instalada en su sistema operativo y soporte para su idioma en la API de reconocimiento de voz de Google, ¡ahora puede agregar un nuevo idioma a artyom fácilmente!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores