Mi-am propus sarcina de a scrie actoria vocală a textului în chineză.Aceasta este o chestiune destul de simplă dacă ai deja experiență, dar când vei începe să o faci de la zero, vei aduna atât de multe probleme încât dorința poate dispărea mult mai devreme.JavaScript este un limbaj foarte funcțional, pare să aibă tot ce-ți dorește inima.
Să aruncăm o privire la versiunea finală pe care o puteți lipi în DevTools și o puteți verifica.
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 - așa este desemnată limba chineză în măruntaiele browserului.În programul nostru, căutăm în browser vocea limbii chineze și încercăm să reproducem fraza noastră.Practic, nu este diferit de exprimarea oricărei alte limbi.Dar există câteva nuanțe aici.Filtrând gama de limbi disponibile, întâlnim 2 voci chinezești zh-CN.Zero va fi o voce feminină, iar prima este o voce masculină.
Femeie
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Masculin
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
În plus, vocea va diferi de la browser la browser și de la dispozitiv la dispozitiv.Browserul Chrome are propriile voci, browserul Edge are altele complet diferite, mai plăcute, apropo, iar browserul Opera nu are deloc voci, așa că nu va exista voce.
Acest cod poate fi agățat pe buton și poate exprima ceva propriu.
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 codul butonului:
<button onclick="say(1)">👨🔉</button>
Nu există alte probleme cu actoria vocală.Da, cum funcționează totul pe smartphone-uri.Da, grozav, mai ales în browserul Edge mobil.Apropo, pe baza acestei tehnologii, încerc să fac un microserviciu pentru învățarea chinezei, iată-l:
http://jkeks.ru/china .Totul este implementat exact așa cum am descris aici.