Je me suis donné pour tâche d'écrire le doublage du texte en chinois.C'est une question assez simple si vous avez déjà de l'expérience, mais lorsque vous commencez à le faire à partir de zéro, vous collecterez tellement de problèmes que le désir peut disparaître beaucoup plus tôt.JavaScript est un langage très fonctionnel, il semble avoir tout ce que votre cœur désire.
Jetons un coup d'œil à la version finale que vous pouvez coller dans les DevTools et vérifiez-la.
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 - c'est ainsi que la langue chinoise est désignée dans les entrailles du navigateur.Dans notre programme, nous recherchons dans le navigateur la voix de la langue chinoise et essayons de reproduire notre phrase.Ce n'est pratiquement pas différent d'exprimer n'importe quelle autre langue.Mais il y a quelques nuances ici.En filtrant le tableau des langues disponibles, nous rencontrons 2 voix chinoises zh-CN.Zero sera une voix féminine, et la première sera une voix masculine.
Femme
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
Homme
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
De plus, le doublage sera différent d'un navigateur à l'autre et d'un appareil à l'autre.Le navigateur Chrome a ses propres voix, le navigateur Edge en a des complètement différentes, plus agréables, d'ailleurs, et le navigateur Opera n'a pas de voix du tout, donc il n'y aura pas de doublage.
Ce code peut être accroché au bouton et exprimer quelque chose de votre choix.
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);
}
et le code du bouton:
<button onclick="say(1)">👨🔉</button>
Il n'y a pas d'autres problèmes avec le doublage.Oh oui, comment tout cela fonctionne sur les smartphones.Oui, super, surtout dans le navigateur mobile Edge.Au fait, sur la base de cette technologie, j'essaie de créer un microservice pour apprendre le chinois, le voici:
http://jkeks.ru/china .Tout est implémenté exactement comme je l'ai décrit ici.