Læsning af tekst på kinesisk



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.





bg bs ca ceb co cs cy da de el en eo es et fa fi fr fy ga gd gl gu ha haw hi hmn hr ht hu id ig is it iw ja jw ka kk km kn ko ku ky la lb lo lt lv mg mi mk ml mn mr ms mt my ne nl no ny or pa pl ps pt ro ru rw sd si sk sl sm sn so sr st su sv sw ta te tg th tk tl tr tt ug uk ur uz vi xh yi yo zh zu
Text to speech
QR-Code generator
Parsedown cheatsheet. Markdown
Filter data by column with regular expressions
Engines for creating games on LUA ?
JavaScript: draw a point
JavaScript: Speaking text in Chinese