3

要するに、音声合成の音量、レート、およびピッチが機能しません。この問題を抱えていて、それを解決する方法を知っている人は他にいますか、それとも私だけですか?

長い話:

私にとっては、音声合成の音量、速度、およびピッチが機能しません。ここに私の音声機能があります:

function speak(message, voice, callback, volume, rate, pitch, start, lang) {
    if (speech) {
        window.speechSynthesis.onvoiceschanged = function() {
            voices = window.speechSynthesis.getVoices();
            var msg = new SpeechSynthesisUtterance();
            msg.voice = (typeof voice != "undefined" && voice != 0) ? voices[voice] : voices[0]; // Note: some voices don't support altering params
            msg.volume = (typeof volume != "undefined" && volume != 0) ? volume : 1; // 0 to 1
            msg.rate = (typeof rate != "undefined" && rate != 0) ? rate : 1; // 0.1 to 10
            msg.pitch = (typeof pitch != "undefined" && pitch != 0) ? pitch : 2; //0 to 2
            msg.text = message;
            msg.lang = (typeof lang != "undefined" && lang != 0) ? lang : "en-US";

            msg.onstart = function(event) {
                if (typeof start != "undefined" && start != 0) {
                    start(event);
                }
            }

            msg.onend = function(event) {
                console.log(event.elapsedTime);
                if (typeof callback != "undefined" && callback != 0) {
                    callback(event);
                }
            };

            speechSynthesis.speak(msg);
        };
    }
}

ただし、呼び出すspeak("Hello", 0, 0, 0.1)と、とまったく同じものが出力されspeak("Hello")ます。同じものを出力したいのですが、もっと柔らかくしたいです。

現在、http://updates.html5rocks.com/2014/01/Web-apps-that-talk---Introduction-to-the-Speech-Synthesis-APIをフォローしています。

4

4 に答える 4

1

何らかの理由で、言語を en-EN に変更すると、パラメーターが機能します。

于 2014-12-27T20:14:43.933 に答える
0

私が見たところ、これらのパラメーターの設定は、音声がローカル サービスからのものである場合にのみ効果があります。

お気づきのように、これはおそらくすべてのボイスがパラメーターを設定する機能をサポートしているわけではありません。

于 2015-01-29T18:37:44.487 に答える