2

テキスト読み上げに Web Speech API を使用しており、デフォルトの音声を判別できるようにする必要があります。これを行うには、ボイスを呼び出しspeechSynthesis.getVoices()て列挙し、デフォルトが true のボイスを見つけます。

私は米国にいて、すべてのデバイスで米国英語ロケールを使用しています。Windows および Mac 上の Chrome では、返されるデフォルトの音声は Google US English です。ただし、Chromebook では返されるデフォルトの音声は Chrome OS のドイツ語です。それは本当に正しいデフォルトですか?

Chromebook に不足している他のロケール設定はありますか? ChromeVox のデフォルトの音声を変更しようとしましたが (変更前は Chrome OS のドイツ語でした)、うまくいきませんでした。

または、言語を に渡す方法はありgetVoices()ますか?

HTML

私のページの HTML 言語は米国英語に設定されています。

<!DOCTYPE html>
<html lang="en-US">

lang="en"、DOCTYPE宣言の削除などを試しましたが、変更はありません。

Javascript

    var _voices = [];

    speechSynthesis.onvoiceschanged = listVoices;

    function listVoices() {
        _voices = speechSynthesis.getVoices();
    }

    function getDefaultVoice() {
        var voice = '';
        _voices.some(function(v) {
            if (v.default) {
                voice = v.name;
                return true;
            }
        });
        return voice;
    }
4

1 に答える 1

0

私はこれを理解しました。私のデフォルトはドイツ語に設定されていました。Treehouse のこのガイドでは、プロセスについて説明しています。

http://blog.teamtreehouse.com/getting-started-speech-synthesis-api

明示的に次のようにします。

var utterance = new SpeechSynthesisUtterance('Hello Treehouse');
var voices = window.speechSynthesis.getVoices();

utterance.voice = voices.filter(function(voice) { return voice.lang == 'en-GB'; })[0];

window.speechSynthesis(utterance);

次に、言語を必要な言語に変更します(つまり、アメリカ英語など)。上記の voices 変数からリストを取得し、開発者ツールで調べることができます。

于 2015-11-27T14:35:15.370 に答える