SpeechSynthesisErrorEvent: error プロパティ

errorSpeechSynthesisErrorEvent インターフェイスのプロパティで、音声合成の失敗を示すエラーコードを返します。

エラーの理由を持つ文字列。使用可能な値は以下のとおりです。

canceled

SpeechSynthesis.cancel (en-US) メソッドが、 SpeechSynthesisUtterance が発話開始前にキューから除去されたために呼び出されました。

interrupted

SpeechSynthesis.cancel (en-US) メソッドが、 SpeechSynthesisUtterance が発話開始後に中断されたために呼び出されました。

audio-busy

ユーザーエージェントがオーディオ出力機器にアクセスできなかったため、この時刻に処理を完全に完了できませんでした(例えば、ユーザーは別のアプリケーションを閉じてこの問題を解決する必要ががある場合など)。

audio-hardware

ユーザーエージェントがオーディオ出力機器を特定できなかったため、操作を完了できませんでした(例えば、ユーザーはスピーカーを接続したり、システム設定を行ったりする必要があります)。

network

必要なネットワーク通信に失敗したため、今回の処理を完全に実行できませんでした。

synthesis-unavailable

この例では、利用できる合成エンジンがないため、処理を完了できませんでした(例えば、ユーザーは合成エンジンをインストールまたは設定する必要があります)。

synthesis-failed

合成エンジンがエラーを発生したため、処理が実行できませんでした。

language-unavailable

SpeechSynthesisUtterance.lang で設定するには、適切な音声が利用できませんでした。 window.speechSynthesis.getVoices() (en-US) メソッドを使用して、ユーザーのブラウザーで対応している音声と言語を判別することができます。

voice-unavailable

SpeechSynthesisUtterance.voice に設定した音声は利用できませんでした。

text-too-long

SpeechSynthesisUtterance.text 属性のコンテンツが長すぎて合成できませんでした。

invalid-argument

SpeechSynthesisUtterance.rateSpeechSynthesisUtterance.pitchSpeechSynthesisUtterance.volume のいずれかのプロパティの内容が無効でした。

not-allowed

処理を開始することが許可されませんでした。

js
const synth = window.speechSynthesis;

const inputForm = document.querySelector("form");
const inputTxt = document.querySelector("input");
const voiceSelect = document.querySelector("select");

const voices = synth.getVoices();

// ...

inputForm.onsubmit = (event) => {
  event.preventDefault();

  const utterThis = new SpeechSynthesisUtterance(inputTxt.value);
  const selectedOption =
    voiceSelect.selectedOptions[0].getAttribute("data-name");
  for (let i = 0; i < voices.length; i++) {
    if (voices[i].name === selectedOption) {
      utterThis.voice = voices[i];
    }
  }

  synth.speak(utterThis);

  utterThis.onerror = (event) => {
    console.error(
      `An error has occurred with the speech synthesis: ${event.error}`,
    );
  };

  inputTxt.blur();
};

仕様書

Specification
Web Speech API
# dom-speechsynthesiserrorevent-error

ブラウザーの互換性

BCD tables only load in the browser

関連情報