Web Speech API

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

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

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

WebSpeechAPI は音声データを処理することが出来るウェブアプリケーションを作成可能にします。この API には 2 つの構成要素があります。

  • 音声認識は SpeechRecognition インターフェイス経由でアクセスされます。これは入力された音声 (通常はデバイスのデフォルト音声認識サービス経由) から文脈を認識し、適切に対応する機能を提供します。通常は、SpeechRecognition オブジェクトを生成するためにそのインターフェイスのコンストラクターを使用します。これはデバイスのマイクから入力された音声を検知するための複数のイベントハンドラーを持ちます。 SpeechGrammar インターフェイスは、あなたのアプリが認識すべき特定の文法群のコンテナに相当します。文法は JSpeech Grammar Format (JSGF) を使用して定義されています。
  • 音声合成は 、プログラムが文章の内容を読み取り可能にする text-to-speech コンポーネントである SpeechSynthesis インターフェイス経由でアクセスされます (通常はデバイスのデフォルトの音声合成装置経由)。多種類の音声 type がSpeechSynthesisVoice オブジェクトから提供され、多種類の話させたい文章の一部が SpeechSynthesisUtterance オブジェクトから提供されます。SpeechSynthesis.speak() メソッドを使用して、文章を話させることが出来ます。

詳細は Using the Web Speech API を参照して下さい。

Web Speech API インターフェイス

音声認識

SpeechRecognition
recognition service のコントローラーです。recognition service からから送信された SpeechRecognitionEvent も扱います。
SpeechRecognitionAlternative
speech recognition service により認識された単語を提供します。
SpeechRecognitionError
recognition service からのエラーメッセージを提供します。
SpeechRecognitionEvent
resultnomatch のためのイベントオブジェクトです。speech recognition の暫定あるいは最終的な結果に関連するすべてのデータを保持しています。
SpeechGrammar
recognition service に認識してほしい言葉や言葉のパターンです。
SpeechGrammarList
SpeechGrammar の一覧を提供します。
SpeechRecognitionResult
認識で一致した単一の結果を提供します。これは複数の SpeechRecognitionAlternative を含む場合もあります。
SpeechRecognitionResultList
SpeechRecognitionResult オブジェクトの一覧を提供します。continuous モード時に結果が捕捉された場合は単一になります

音声合成

SpeechSynthesis
speech serviceのコントローラーインターフェイスです。デバイス上の合成音声に関する情報を検索したり、speech の開始、一時停止、またはその他のコマンドを使用したりする際に使われます。
SpeechSynthesisErrorEvent
speech service の SpeechSynthesisUtterance オブジェクトの処理中に発生したあらゆるエラーに関する情報を含んでいます。
SpeechSynthesisEvent
speech service で処理された SpeechSynthesisUtterance オブジェクトの現在の状態に関する情報を含んでいます。
SpeechSynthesisUtterance
speach のリクエストを表します。speech service が読み取るべき内容や、読み取り方の情報 (e.g. 言語、音声の高低、音量など) を含んでいます。
SpeechSynthesisVoice
システムがサポートする音声を提供します。すべての SpeechSynthesisVoice は、言語、名前、URI について情報を含んだ、関連する speech service を保持しています。
Window.speechSynthesis
SpeechSynthesisGetter と呼ばれる [NoInterfaceObject] インターフェイスの一部として定義され、そして Window オブジェクトに実装されたことで、speechSynthesis プロパティは SpeechSynthesis コントローラーを使用可能にします。従って、音声合成機能へのエントリーポイントとなります。

Github の Web Speech API repo に、音声合成や音声認識を説明するデモが含まれています。

仕様

仕様 ステータス コメント
Web Speech API ドラフト 初回定義

ブラウザー互換性テーブル

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 33[1] 49 (49)[2] 未サポート 未サポート 未サポート
機能 Android Chrome Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
基本サポート ? (有)[1] ? 2.5 未サポート 未サポート 未サポート
  • [1] 音声認識のインターフェイスは、現在 Chrome では接頭辞がつけられています。そのためインターフェイス名に適切にプレフィックスを付与する必要があります (e.g. webkitSpeechRecognition)。また、音声認識を機能させるためにはウェブサーバーを通してコードを提供する必要があります。音声合成においては、完全にプレフィックスなしでサポートされています。
  • [2] 使用可能にするには about:config の media.webspeech.synth.enabledmedia.webspeech.recognition を有効にしてください。デスクトップ版 Firefox では現在、音声合成のみ使用可能なことに注意して下さい。音声認識ももうすぐ (音声認識に必要な内部権限が整理された後) 使用可能になるでしょう。

Firefox OS でのパーミッション

アプリケーションで音声認識を使用するためには、以下のパーミッションを manifest の中で明示する必要があります:

"permissions": {
  "audio-capture" : {
    "description" : "Audio capture"
  },
  "speech-recognition" : {
    "description" : "Speech recognition"
  }
}

また、特権を持つアプリが必要になるので、以下を含める必要があります:

  "type": "privileged"

音声合成においては、設定が必要なパーミッションはありません。

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: dskmori, masato-d, kawakami, lv7777
 最終更新者: dskmori,