SpeechSynthesisErrorEvent: error プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2018.

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

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

canceled

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

interrupted

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

audio-busy

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

audio-hardware

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

network

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

synthesis-unavailable

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

synthesis-failed

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

language-unavailable

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

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

関連情報