Postavio sam si zadatak da napišem glasovnu glumu teksta na kineskom.Ovo je prilično jednostavna stvar ako već imate iskustva, ali kada to počnete raditi ispočetka, skupit ćete toliko problema da želja može nestati mnogo ranije.JavaScript je vrlo funkcionalan jezik, čini se da ima sve što vam srce poželi.
Pogledajmo konačnu verziju koju možete zalijepiti u DevTools i provjeriti je.
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 - tako se kineski jezik označava u utrobi preglednika.U našem programu tražimo u pregledniku glas kineskog jezika i pokušavamo reproducirati našu frazu.To se praktički ne razlikuje od izgovaranja bilo kojeg drugog jezika.Ali ovdje postoji nekoliko nijansi.Filtrirajući niz dostupnih jezika nailazimo na 2 kineska zh-CN glasa.Nula će biti ženski glas, a prvi je muški glas.
Žena
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Muški
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Osim toga, glasovna gluma će se razlikovati od preglednika do preglednika i od uređaja do uređaja.Chrome preglednik ima svoje glasove, Edge preglednik ima sasvim drugačije, ugodnije, inače, a preglednik Opera uopće nema glasove, tako da glasovne glume neće biti.
Ovaj kod se može objesiti na gumb i izgovoriti nešto svoje.
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);
}
i kod gumba:
<button onclick="say(1)">👨🔉</button>
Drugih problema s glasovnom glumom nema.O da, kako sve to funkcionira na pametnim telefonima.Da, sjajno, posebno u mobilnom pregledniku Edge.Inače, na temelju ove tehnologije pokušavam napraviti mikroservis za učenje kineskog, evo ga:
http://jkeks.ru/china .Sve je implementirano točno kako sam ovdje opisao.