私は自分自身に中国語でテキストのボイスアクティングを書く仕事を設定しました。これは、すでに経験がある場合はかなり単純な問題ですが、最初からやり始めると、非常に多くの問題が収集されるため、欲求がはるかに早く消える可能性があります。JavaScriptは非常に関数型の言語であり、あなたの心が望むすべてのものを持っているようです。
DevToolsに貼り付けて確認できる最終バージョンを見てみましょう。
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-これは、ブラウザの腸で中国語が指定される方法です。私たちのプログラムでは、ブラウザで中国語の音声を検索し、フレーズを再現しようとします。それは他の言語を声に出すことと実質的に違いはありません。しかし、ここにはいくつかのニュアンスがあります。利用可能な言語の配列をフィルタリングすると、2つの中国語のzh-CN音声に遭遇します。ゼロは女性の声になり、最初は男性の声になります。
女性
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[0];
男
utterance.voice = voices.filter(function(voice) { return voice.lang == 'zh-CN'; })[1];
さらに、ボイスアクティングはブラウザごとに、またデバイスごとに異なります。ちなみに、Chromeブラウザーには独自の音声があり、Edgeブラウザーにはまったく異なる、より快適な音声があり、Operaブラウザーには音声がまったくないため、ボイスアクティングはありません。
このコードはボタンに掛けて、あなた自身の何かを声に出すことができます。
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);
}
およびボタンコード:
<button onclick="say(1)">👨🔉</button>
ボイスアクティングには他に問題はありません。そうそう、それがすべてスマートフォンでどのように機能するか。はい、特にモバイルEdgeブラウザーでは素晴らしいです。ちなみに、この技術に基づいて、中国語を学ぶためのマイクロサービスを作ろうとしています。
http://jkeks.ru/china 。ここで説明したとおりにすべてが実装されます。