Artyom.js — это полезная библиотека, которая позволяет вам реализовать своего рода небольшую помощницу, которая основана на распознавании речи и синтезе речи в Google Chrome. Вы можете добавлять голосовые команды JavaScript либо в виде простого текста, либо с помощью регулярных выражений. Команда запускается, когда произнесенный пользователем текст совпадает с любым из предоставленных параметров внутри команды, вызывая, наконец, функцию, которая определяет, что команды делают.
Первоначально и до даты, Артём.js поддерживает 13 языков. «Поддержка» этой библиотеки для этих языков основана на доступности API распознавания речи Google для голоса (как нативного, так и от Google) для языка в браузере. Единственная проблема заключается в том, что само распознавание речи Webkit в настоящее время поддерживает более 40 языков в Chrome. Некоторые языки имеют специальные коды в зависимости от региона (идентификаторы следуют формат BCP-47).
Требования
Вам нужно 2 вещи, чтобы расширить Артём:
Голос установлен для вашего языка
Во-первых, в вашем браузере действительно есть голос для вашего языка, например, если ваш язык турецкий, в вашем браузере должен быть установлен хотя бы собственный голос (вашей операционной системы), а код языка должен соответствовать указанному в списке. на поддерживаемых языках распознавания речи Webkit.
Вы можете использовать следующий фрагмент кода с Артемом, чтобы перечислить все голоса в консоли в виде строки:
let voiceResults = [];
let artyom = new Artyom();
// or if you don't want to use 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)
);
// Outputs something like
//[
// {
// "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...
Во многих ОС вы можете установить дополнительные голоса, так что не забудьте посмотреть в Google об этом.
Поддержка распознавания речи API для вашего языка
Второй — API распознавания речи Google поддерживает ваш язык, поэтому вы можете проверить его, проверив список поддерживаемых языков API здесь.
Если один из перечисленных элементов в голосах имеет языковой код вашего языка (язык, который не поддерживает Artyom), и распознавание речи в Google поддерживает ваш язык, то вы можете продолжить расширять Artyom своим языком!
Расширяя Артём новым языком
Чтобы добавить новый язык в Artyom, вам нужно знать только код языка, который вы хотите использовать. Например, если мы хотим добавить турецкий язык, наш код будет TR-TR. Этот язык должен быть установлен как ключ в объекте ArtyomVoicesIdentifier вашего экземпляра Artyom, который в качестве значения получает массив с кодом языка (или кодами) голоса, установленного на вашем компьютере:
const myAssistant = new Artyom();
// The code language that will be used to initialize artyom
// with Speech Recognition
let newLanguageIdentifier = "tr-TR";
// An array with the possible code languages of the installed voice
// on your device (or voiceURI or name)
let possibleVoiceLangIdentifiers = ["tr-TR", "tr_TR"];
// This will add support to Turkish for Voice Commands
// and (only if a voice available for turkish in the browser) for speech synthesis
myAssistant.ArtyomVoicesIdentifiers[newLanguageIdentifier] = possibleVoiceLangIdentifiers;
// Add a command in Turkish
myAssistant.addCommands({
indexes: ["günaydın"],
action: () => {
myAssistant.say("Günaydın, bugün nasılsın?");
}
})
// Start Artyom in Turkish
myAssistant.initialize({
lang: newLanguageIdentifier,
// rest of your initialization code !
});
С помощью предыдущего фрагмента, установленного голоса в вашей операционной системе и поддержки вашего языка в API распознавания речи Google вы можете легко добавить новый язык в artyom!