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

View in English Always switch to English

SpeechRecognition: start() メソッド

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

start()ウェブ音声 API のメソッドで、音声認識サービスを起動して(マイクまたは音声トラックからの)入力音声を待機し、その認識結果を返します。

構文

js
start()
start(audioTrack)

引数

audioTrack 省略可 Experimental

音声認識を実行する対象の MediaStreamTrack インスタンス。指定がない場合、サービスは代わりにユーザーのマイクからの音声認識を試みます。

返値

なし (undefined)。

例外

InvalidStateError DOMException

audioTrack が指定されており、かつ以下のうちの一つまたは両方が真の場合。

  • このトラックの kind プロパティが audio ではない。
  • このトラックの readyState プロパティが live ではない。

マイクからの音声認識

音声カラーチェンジャーの例では、 SpeechRecognition() コンストラクターを使用して新しい SpeechRecognition オブジェクトインスタンスを作成します。その後、<button>click イベントハンドラーを設定し、ボタンがクリックされた際に音声認識サービスを開始し、ユーザーのマイクからの音声入力を待機します。

js
const recognition = new SpeechRecognition();

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

startBtn.onclick = () => {
  recognition.start();
  console.log("色のコマンドを受け付ける準備ができました。");
};

結果が正常に認識されると、 result イベントが発生します。返された results リスト内の最初の SpeechRecognitionResult の最初の SpeechRecognitionAlternativetranscript を取得することで、イベントオブジェクトから音声で読み上げられた色を抽出します。その後、 <html> 要素の背景色をその色に設定します。

js
recognition.onresult = (event) => {
  const color = event.results[0][0].transcript;
  diagnostic.textContent = `受信した結果: ${color}`;
  bg.style.backgroundColor = color;
};

音声トラックからの音声認識

このコード(音声トラック認識デモからの抜粋)は、音声トラックから音声を認識する方法を示しています。まず、新しい SpeechRecognition インスタンスを作成し、その langen-US に設定します。次に、結果と診断情報を出力するための <button> 要素と <p> 要素への参照を取得します。

js
const recognition = new SpeechRecognition();
recognition.lang = "en-US";

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

次に、click イベントハンドラ-を <button> に追加します。クリックされると、Audio() コンストラクタ-を使用して新しい <audio> 要素を作成し、MP3 ファイルを読み込みます。MP3 の再生準備が整うと(canplay イベントで判定)、 captureStream() メソッドで MediaStream としてキャプチャし、 getAudioTracks() で音声の MediaStreamTrack を抽出します。

次に音声を再生し(認識を行うために必要)、MediaStreamTrackstart() メソッドに渡して認識を開始します。

js
startBtn.addEventListener("click", () => {
  diagnostic.textContent = "";
  console.log("Loading audio track");
  const audioElement = new Audio("cheese-on-toast.mp3");
  audioElement.addEventListener("canplay", () => {
    const stream = audioElement.captureStream();
    const audioTrack = stream.getAudioTracks()[0];
    audioElement.play();
    recognition.start(audioTrack);
    console.log("Recognition started");
  });
});

認識された音声を出力するため、 result イベントを監視します。イベント発生時に、返された results リスト内の最初の SpeechRecognitionResult に含まれる最初の SpeechRecognitionAlternativetranscript を取得します。転写テキスト自体を出力先の <p> に表示し、信頼度評価をコンソールに記録します。

js
recognition.addEventListener("result", (event) => {
  const speech = event.results[0][0].transcript;
  diagnostic.textContent = `音声認識結果: ${speech}.`;
  console.log(`信頼度: ${event.results[0][0].confidence}`);
});

仕様書

Specification
Web Speech API
# dom-speechrecognition-start

ブラウザーの互換性

関連情報