Jag satte mig i uppgift att skriva textens röstspel på kinesiska.Detta är en ganska enkel sak om du redan har erfarenhet, men när du börjar göra det från grunden kommer du att samla på dig så många problem att lusten kan försvinna mycket tidigare.JavaScript är ett mycket funktionellt språk, det verkar ha allt ditt hjärta önskar.
Låt oss ta en titt på den slutliga versionen som du kan klistra in i DevTools och kolla in den.
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 - det är så det kinesiska språket betecknas i webbläsarens tarmar.I vårt program söker vi i webbläsaren efter rösten för det kinesiska språket och försöker återskapa vår fras.Det skiljer sig praktiskt taget inte från att uttrycka något annat språk.Men det finns ett par nyanser här.Genom att filtrera mängden tillgängliga språk stöter vi på 2 kinesiska zh-CN-röster.Noll kommer att vara en kvinnlig röst, och den första är en mansröst.
Kvinna
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Manlig
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Dessutom kommer röstspelet att skilja sig från webbläsare till webbläsare och från enhet till enhet.Chrome-webbläsaren har sina egna röster, Edge-webbläsaren har förresten helt andra, trevligare sådana, och Opera-webbläsaren har inga röster alls, så det blir ingen röstskådespeleri.
Den här koden kan hängas på knappen och rösta något 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);
}
och knappkod:
<button onclick="say(1)">👨🔉</button>
Det finns inga andra problem med röstskådespeleri.Åh ja, hur allt fungerar på smartphones.Ja, bra, särskilt i den mobila Edge-webbläsaren.Förresten, baserat på den här tekniken försöker jag göra en mikrotjänst för att lära mig kinesiska, här är den:
http://jkeks.ru/china .Allt är implementerat precis som jag beskrev här.