Web Speech API

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

Web Speech API は、音声データをウェブアプリに組み入れることを可能にします。Web Speech API は、SpeechSynthesis (Text-to-Speech; 音声合成) と SpeechRecognition (Asynchronous Speech Recognition; 非同期音声認識) の 2 つの部分から成り立っています。

Web Speech API のコンセプトと使用法

Web Speech API は、ウェブアプリが音声データを扱えるようにします。この API には 2 つの構成要素があります。

  • 音声認識は SpeechRecognition インターフェイス経由でアクセスされます。これは、音声入力 (通常はデバイスのデフォルト音声認識サービスを経由) から音声の文脈を認識し、適切に応答する機能を提供します。通常は、インターフェイスのコンストラクターを使用して新しい SpeechRecognition オブジェクトを生成します。このオブジェクトは、デバイスのマイクを通して入力された音声を検知するための、いくつものイベントハンドラーを持ちます。SpeechGrammar インターフェイスは、あなたのアプリが認識すべき特定の文法群のコンテナーを表します。文法は、JSpeech Grammar Format (JSGF) を使用して定義されています。
  • 音声合成は、SpeechSynthesis インターフェイス経由でアクセスされます。これは、プログラムに、そのテキストコンテンツを読み上げる機能を提供します (通常はデバイスのデフォルトの音声合成を経由)。異なる音声の種類は、SpeechSynthesisVoice オブジェクトで表され、発話してほしいテキストの異なる部分は、SpeechSynthesisUtterance オブジェクトで表されます。これらを SpeechSynthesis.speak() メソッドに渡すことによって発話されます。

これらの機能の使い方についての詳細は、Using the Web Speech API を参照してください。

Web Speech API インターフェイス

音声認識

SpeechRecognition
認識サービスのコントローラーインターフェイスです。認識サービスから送信された SpeechRecognitionEvent も扱います。
SpeechRecognitionAlternative
音声認識サービスにより認識されている単語を表します。
SpeechRecognitionError
認識サービスからのエラーメッセージを表します。
SpeechRecognitionEvent
result イベントおよび nomatch イベントのためのイベントオブジェクトです。暫定あるいは最終の音声認識結果に関連付けられたすべてのデータを含みます。
SpeechGrammar
認識サービスに認識してほしい言葉または言葉のパターンです。
SpeechGrammarList
SpeechGrammar オブジェクトのリストを表します。
SpeechRecognitionResult
一致した一つの認識結果を表します。これには、複数の SpeechRecognitionAlternative オブジェクトが含まれることがあります。
SpeechRecognitionResultList
SpeechRecognitionResult オブジェクトのリストを表します。または、continuous モードで結果が捕捉された場合は、一つだけになります。

音声合成

SpeechSynthesis
音声サービスのコントローラーインターフェイスです。これは、デバイスで利用可能な合成音声についての情報を取得したり、発話の開始や一時停止などのコマンドを実行するために使用されます。
SpeechSynthesisErrorEvent
音声サービスで SpeechSynthesisUtterance オブジェクトの処理中に発生したあらゆるエラーについての情報を含みます。
SpeechSynthesisEvent
音声サービスで処理されている SpeechSynthesisUtterance オブジェクトの現在の状態についての情報を含みます。
SpeechSynthesisUtterance
音声リクエストを表します。これは、音声サービスが読み上げるコンテンツとその読み上げ方 (言語、音声の高低、音量など) についての情報を含みます。
SpeechSynthesisVoice
システムがサポートする音声を表します。すべての SpeechSynthesisVoice は、それ自身に関連する音声サービス (言語、名前、URI についての情報を含む) を持ちます。
Window.speechSynthesis
SpeechSynthesisGetter と呼ばれる [NoInterfaceObject] インターフェイスの一部として定義され、Window オブジェクトによって実装されたことで、speechSynthesis プロパティは SpeechSynthesis コントローラーへのアクセスを提供します。したがって、音声合成機能へのエントリーポイントになります。

Github 上の Web Speech API リポジトリー には、音声合成や音声認識を説明するデモが含まれています。

仕様

仕様書 策定状況 備考
Web Speech API ドラフト 初期定義

ブラウザーの実装状況

関連項目

SpeechRecognition

SpeechSynthesis