このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

SpeechRecognition

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more browser support for this feature? Tell us why.

SpeechRecognitionウェブ音声 API のインターフェイスで、 認識サービスの制御インターフェイスです。これは、認識サービスから送信された SpeechRecognitionEvent も処理します。

メモ: Chrome など一部のブラウザーでは、ウェブページ上で音声認識を使用するとサーバーベースの認識エンジンが使用されます。音声を認識処理するためにウェブサービスへ送信するため、オフラインでは動作しません。

EventTarget SpeechRecognition

コンストラクター

SpeechRecognition.SpeechRecognition()

新しい SpeechRecognition オブジェクトを作成します。

インスタンスプロパティ

SpeechRecognition は、親インターフェイスである EventTarget からのプロパティも継承しています。

SpeechRecognition.lang

現在の SpeechRecognition の言語を返して設定します。指定されない場合、これは既定で HTML の lang 属性の値になります。どちらも設定されていない場合、ユーザーエージェントの言語設定が使用されます。

SpeechRecognition.continuous

各認識の継続的な結果を返すか、単一の認識結果だけを返すかを制御します。既定値は単一 (false) です。

SpeechRecognition.interimResults

暫定的な結果を返すか (true)、そうでないか (false) を制御します。暫定的な結果は、最終的な結果ではありません(つまり、SpeechRecognitionResult.isFinal プロパティの値は false です)。

SpeechRecognition.maxAlternatives

結果ごとに提供される SpeechRecognitionAlternative の最大数を設定します。既定値は 1 です。

SpeechRecognition.phrases

文脈バイアスに使用する SpeechRecognitionPhrase オブジェクトの配列を設定します。

SpeechRecognition.processLocally

音声認識をユーザーの端末でローカルに実行する必要があるかどうかを指定します。

非推奨のプロパティ

ウェブ音声 API から文法の概念が削除されました。関連機能は仕様に残っており、下位互換性のため対応ブラウザーでは認識されますが、音声認識サービスには影響しません。

SpeechRecognition.grammars

SpeechGrammar オブジェクトのコレクションを返却および設定します。これは、現在の SpeechRecognition により理解される文法を表します。

静的メソッド

SpeechRecognition.available()

指定された言語が音声認識で使用可能かどうかを確認します。

SpeechRecognition.install()

指定された言語で、端末上の音声認識に必要な言語パックをインストールします。

インスタンスメソッド

SpeechRecognition は、その親インターフェイスである EventTarget からのメソッドも継承しています。

SpeechRecognition.abort()

音声認識サービスによる入力音声のリスニングを停止し、SpeechRecognitionResult を返そうとしないようにします。

SpeechRecognition.start()

音声認識サービスを開始し、(マイクまたはオーディオトラックから)入力される音声を待機し、その認識結果を返します。

SpeechRecognition.stop()

音声認識サービスによる入力音声のリスニングを停止し、その時点までに取得した結果を使用して SpeechRecognitionResult を返そうとします。

イベント

これらのイベントを addEventListener() を使用して待ち受けするか、イベントリスナーをこのインターフェイスの onイベント名 プロパティに代入するかしてください。

audiostart

ユーザーエージェントが音声のキャプチャを開始したときに発行されます。

audioend

ユーザーエージェントが音声のキャプチャを完了したときに発行されます。

end

音声認識サービスが切断されたときに発行される。

error

音声認識エラーが発生したときに発行さ れます。

nomatch

音声認識サービスが、有意な認識がない最終結果を返したときに発行されます。これは、 confidence の閾値を満たさない、または超えない、ある程度の認識を含む場合があります。

result

音声認識サービスが結果を返したとき、つまり単語やフレーズが正の値で認識され、これがアプリに伝達されたときに発行されます。

soundstart

(認識可能な音声であるかどうかに関わらず)何らかの音が検出されたときに発行されます。

soundend

認識可能な音声であろうとなかろうと、何らかの音が検出されなくなったときに発行されます。

speechstart

音声認識サービスによって音声として認識される音が検出されたときに発行されます。

speechend

音声認識サービスによって認識された音声が検出されなくなったときに発行されます。

start

音声認識サービスが音声認識のために聞き取りを開始したときに発生します。

Speech color changer の例では、SpeechRecognition() コンストラクターを使用して新しい SpeechRecognition オブジェクトのインスタンスを生成しています。

他の値を定義した後、それを設定して、ボタンがクリックされた時(SpeechRecognition.start() を参照)に認識サービスを開始します。音声の認識に成功すると、result イベントが発生し、イベントオブジェクトから発話された色を展開、そしてそれを <html> 要素の背景色に設定します。

js
const recognition = new SpeechRecognition();
recognition.continuous = false;
recognition.lang = "en-US";
recognition.interimResults = false;
recognition.maxAlternatives = 1;

const diagnostic = document.querySelector(".output");
const bg = document.querySelector("html");
const startBtn = document.querySelector("button");

startBtn.onclick = () => {
  recognition.start();
  console.log("Ready to receive a color command.");
};

recognition.onresult = (event) => {
  const color = event.results[0][0].transcript;
  diagnostic.textContent = `Result received: ${color}`;
  bg.style.backgroundColor = color;
};

仕様書

仕様書
Web Speech API
# speechreco-section

ブラウザーの互換性

関連情報