Jeg satte mig selv til opgave at skrive stemmeføringen af teksten på kinesisk.Dette er en ret simpel sag, hvis du allerede har erfaring, men når du begynder at gøre det fra bunden, vil du samle så mange problemer, at lysten kan forsvinde meget tidligere.JavaScript er et meget funktionelt sprog, det ser ud til at have alt hvad hjertet begærer.
Lad os tage et kig på den endelige version, som du kan indsætte i DevTools og tjekke den ud.
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 - sådan betegnes det kinesiske sprog i browserens tarme.I vores program søger vi i browseren efter stemmen til det kinesiske sprog og prøver at gengive vores sætning.Det er praktisk talt ikke anderledes end at give udtryk for et hvilket som helst andet sprog.Men der er et par nuancer her.Ved at filtrere rækken af tilgængelige sprog støder vi på 2 kinesiske zh-CN-stemmer.Nul vil være en kvindestemme, og den første er en mandsstemme.
Kvinde
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Han
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Derudover vil stemmehandlingen være forskellig fra browser til browser og fra enhed til enhed.Chrome-browseren har sine egne stemmer, Edge-browseren har i øvrigt helt andre, mere behagelige, og Opera-browseren har slet ingen stemmer, så der bliver ingen stemmeskuespil.
Denne kode kan hænges på knappen og stemme noget af dit eget.
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);
}
og knapkode:
<button onclick="say(1)">👨🔉</button>
Der er ingen andre problemer med stemmeskuespil.Åh ja, hvor virker det hele på smartphones.Ja, fantastisk, især i den mobile Edge-browser.Forresten, baseret på denne teknologi, forsøger jeg at lave en mikrotjeneste til at lære kinesisk, her er den:
http://jkeks.ru/china .Alt er implementeret præcis som jeg har beskrevet her.