Postavio sam sebi zadatak da napišem glasovnu glumu teksta na kineskom.Ovo je prilično jednostavna stvar ako već imate iskustva, ali kada počnete to raditi od nule, skupit ćete toliko problema da želja može nestati mnogo ranije.JavaScript je veoma funkcionalan jezik, čini se da ima sve što vam srce poželi.
Hajde da pogledamo 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 pretraživača.U našem programu tražimo u pretraživaču glas kineskog jezika i pokušavamo da reproduciramo našu frazu.To se praktično ne razlikuje od izgovaranja na bilo kojem drugom jeziku.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.
Žensko
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Muško
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Osim toga, glasovna gluma će se razlikovati od pretraživača do pretraživača i od uređaja do uređaja.Chrome pretraživač ima svoje glasove, Edge pretraživač ima potpuno drugačije, prijatnije, inače, a pretraživač Opera uopšte nema glasove, tako da neće biti glasovne glume.
Ovaj kod se može okačiti na dugme 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 dugmeta:
<button onclick="say(1)">👨🔉</button>
Nema drugih problema sa glasovnom glumom.O da, kako sve to funkcionira na pametnim telefonima.Da, odlično, posebno u mobilnom Edge pretraživaču.Inače, na osnovu ove tehnologije pokušavam da napravim mikroservis za učenje kineskog, evo ga:
http://jkeks.ru/china .Sve je implementirano tačno onako kako sam ovdje opisao.