Dal som si za úlohu napísať hlasový prejav textu v čínštine.Toto je pomerne jednoduchá záležitosť, ak už máte skúsenosti, ale keď to začnete robiť od nuly, nazbierate toľko problémov, že túžba môže zmiznúť oveľa skôr.JavaScript je veľmi funkčný jazyk, zdá sa, že má všetko, po čom vaše srdce túži.
Poďme sa pozrieť na konečnú verziu, ktorú môžete vložiť do DevTools, a pozrieť sa na ňu.
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 - takto je označený čínsky jazyk v útrobách prehliadača.V našom programe hľadáme v prehliadači hlas čínskeho jazyka a snažíme sa reprodukovať našu frázu.Prakticky sa nelíši od vyjadrovania akéhokoľvek iného jazyka.Ale je tu pár nuancií.Filtrovaním poľa dostupných jazykov narazíme na 2 čínske hlasy zh-CN.Nula bude ženský hlas a prvý bude mužský.
Žena
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Muž
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
Okrem toho sa hlasové ovládanie bude líšiť od prehliadača k prehliadaču a od zariadenia k zariadeniu.Prehliadač Chrome má svoje hlasy, prehliadač Edge má mimochodom úplne iné, príjemnejšie a prehliadač Opera nemá žiadne hlasy, takže hlasové ovládanie nebude.
Tento kód možno zavesiť na tlačidlo a vysloviť niečo vlastné.
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);
}
a kód tlačidla:
<button onclick="say(1)">👨🔉</button>
S hlasovým prejavom nie sú žiadne iné problémy.Ach áno, ako to všetko funguje na smartfónoch.Áno, skvelé, najmä v mobilnom prehliadači Edge.Mimochodom, na základe tejto technológie sa snažím vytvoriť mikroslužbu na učenie sa čínštiny, tu je:
http://jkeks.ru/china .Všetko je implementované presne tak, ako som tu popísal.