Iškėliau sau užduotį parašyti teksto įgarsinimą kinų kalba.Tai gana paprastas reikalas, jei jau turi patirties, bet pradėjus tai daryti nuo nulio, susirinksi tiek problemų, kad noras gali išnykti daug anksčiau.JavaScript yra labai funkcionali kalba, atrodo, kad joje yra viskas, ko širdis geidžia.
Pažvelkime į galutinę versiją, kurią galite įklijuoti į DevTools, ir patikrinkite ją.
var utterance = new SpeechSynthesisUtterance('菜');
var voices = window.speechSynthesis.getVoices();
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
window.speechSynthesis.speak(utterance);
zh-CN - taip kinų kalba žymima naršyklės žarnyne.Savo programoje naršyklėje ieškome kinų kalbos balso ir bandome atkurti savo frazę.Tai praktiškai nesiskiria nuo kalbėjimo bet kuria kita kalba.Tačiau čia yra keletas niuansų.Filtruodami galimų kalbų masyvą, susiduriame su 2 kinų zh-CN balsais.Nulis bus moteriškas balsas, o pirmasis – vyriškas.
Moteris
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Patinas
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Be to, balsas įvairiose naršyklėse ir įrenginiuose skirsis.„Chrome“ naršyklė turi savo balsus, „Edge“ naršyklė, beje, turi visiškai kitokius, malonesnius, o „Opera“ naršyklė visiškai neturi balsų, todėl balso vaidybos nebus.
Šį kodą galima pakabinti ant mygtuko ir įgarsinti ką nors savo.
function say(voiceId){
let text = document.getElementById("pole").innerHTML
console.log (text)
var utterance = new SpeechSynthesisUtterance(text);
var voices = window.speechSynthesis.getVoices();
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[voiceId];
window.speechSynthesis.speak(utterance);
}
ir mygtuko kodas:
<button onclick="say(1)">👨🔉</button>
Kitų problemų su balso vaidyba nėra.O taip, kaip visa tai veikia išmaniuosiuose telefonuose.Taip, puiku, ypač mobiliojoje Edge naršyklėje.Beje, remdamasis šia technologija, bandau sukurti kinų kalbos mokymosi mikro paslaugą, štai ji:
http://jkeks.ru/china .Viskas įgyvendinama tiksliai taip, kaip čia aprašiau.