Azt a feladatot tűztem ki magam elé, hogy kínaiul írjam meg a szöveg hangjátékát.Ez meglehetősen egyszerű dolog, ha már van tapasztalata, de ha a nulláról kezdi, akkor annyi probléma gyűlik össze, hogy a vágy sokkal korábban eltűnhet.A JavaScript egy nagyon funkcionális nyelv, úgy tűnik, minden benne van, amire a szíved vágyik.
Vessen egy pillantást a végleges verzióra, amelyet beilleszthet a DevToolsba, és nézze meg.
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 - így jelölik a kínai nyelvet a böngésző belsejében.Programunkban megkeressük a böngészőben a kínai nyelv hangját, és megpróbáljuk reprodukálni a kifejezésünket.Gyakorlatilag semmiben sem különbözik bármely más nyelv hangoztatásától.De van itt néhány árnyalat.Az elérhető nyelvek tömbjét szűrve 2 kínai zh-CN hanggal találkozunk.Zero női hang lesz, az első pedig férfi hang.
Női
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Férfi
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Ezenkívül a hangvezérlés böngészőnként és készülékenként eltérő lehet.A Chrome böngészőnek saját hangja van, az Edge böngészőnek egyébként teljesen más, kellemesebb, az Opera böngészőnek pedig egyáltalán nincs hangja, szóval nem lesz hangjáték.
Ezt a kódot felakaszthatja a gombra, és megszólaltathatja a sajátját.
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);
}
és a gomb kódja:
<button onclick="say(1)">👨🔉</button>
Nincs más probléma a hangjátékkal.Ó, igen, hogyan működik mindez az okostelefonokon.Igen, nagyszerű, különösen a mobil Edge böngészőben.Egyébként erre a technológiára alapozva próbálok egy mikroszolgáltatást készíteni kínai nyelvtanuláshoz, itt van:
http://jkeks.ru/china .Minden pontosan úgy van végrehajtva, ahogy itt leírtam.