Seadsin endale ülesandeks kirjutada teksti häälnäitlemine hiina keeles.See on üsna lihtne asi, kui sul on juba kogemusi, kuid kui hakkad seda nullist tegema, kogub probleeme nii palju, et soov võib kaduda palju varem.JavaScript on väga funktsionaalne keel, tundub, et selles on kõik, mida süda ihkab.
Vaatame lõplikku versiooni, mille saate DevToolsi kleepida, ja kontrollime seda.
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 - nii tähistatakse brauseri sisikonnas hiina keelt.Meie programmis otsime brauserist hiina keele häält ja proovime oma fraasi reprodutseerida.See ei erine praktiliselt ühegi teise keele hääldamisest.Kuid siin on paar nüanssi.Saadaolevate keelte massiivi filtreerides näeme 2 hiina zh-CN häält.Zero on naishääl ja esimene on meeshääl.
Naine
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Mees
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Lisaks on häälkäsitlus brauseriti ja seadmeti erinev.Chrome'i brauseril on oma hääled, Edge'i brauseril on muide hoopis teistsugused, meeldivamad ja Opera brauseril pole üldse hääli, seega häälnäitlemist ei toimu.
Selle koodi saab riputada nupule ja hääldada midagi oma.
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);
}
ja nupu kood:
<button onclick="say(1)">👨🔉</button>
Häälnäitlemisega muid probleeme pole.Oh jah, kuidas see kõik nutitelefonides töötab.Jah, suurepärane, eriti mobiilses Edge'i brauseris.Muide, selle tehnoloogia põhjal proovin teha hiina keele õppimiseks mikroteenust, siin see on:
http://jkeks.ru/china .Kõik on rakendatud täpselt nii, nagu ma siin kirjeldasin.