この記事は編集レビューを必要としています。ぜひご協力ください。
これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。
The Web Speech API enables you to incorporate voice data into web apps. Web Speech API は2つの部分から成り立っています:音声合成(Text-to-Speech), と音声認識(Asynchronous Speech Recognition.)です
Web Speech APIのコンセプトと使用法
WebSpeechAPIは音声データを処理することが出来るwebアプリケーションを作成出来ます。このAPIには2つのコンセプトがあります。
- 音声認識は
SpeechRecognition
インターフェース経由で使用出来ます。これは入力された音声(通常はデバイスのデフォルト音声認識サービス経由)から文脈を認識し、適切に対応する機能を提供します。通常は、SpeechRecognition
オブジェクトを生成するためにインターフェースコンストラクタを使用します?これはデバイスのマイクから入力された音声を検知するための複数のイベントハンドラを持ちます。SpeechGrammar
インターフェースはSpeechGrammar
インターフェースは、あなたのアプリが認識するGrammer(語群)の集合のコンテナを提供します。 - Grammarの定義は JSpeech Grammar Format (JSGF)を使用します。
- 音声合成は
SpeechSynthesis
インターフェース経由で使用出来ます。 - a text-to-speech component that allows programs to read out their text content (normally via the device's default speech synthesiser.)
- 多種類のvoice typesが
SpeechSynthesisVoice
オブジェクトから提供され、多種類のあなたの話させたいpart of textが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
result
、nomatch
イベントオブジェクトです。speech recognitionの結果(一部または、全て)を保持していますSpeechGrammar
- recognition serviceに認識してほしい言葉やパターン
SpeechGrammarList
SpeechGrammar
の一覧SpeechRecognitionResult
- 単一の認識で一致した結果。複数の
SpeechRecognitionAlternative
を含む場合もある SpeechRecognitionResultList
SpeechRecognitionResult
オブジェクトの一覧。モードがcontinuous
だった場合は単一になります
音声合成
SpeechSynthesis
- speech serviceのコントローラーインタフェースです。speechの開始、一時停止、またはその他のコマンドを検索することが出来ます
SpeechSynthesisErrorEvent
- Contains information about any errors that occur while processing
SpeechSynthesisUtterance
objects in the speech service. SpeechSynthesisEvent
- Contains information about the current state of
SpeechSynthesisUtterance
objects that have been processed in the speech service. SpeechSynthesisUtterance
- Represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.)
SpeechSynthesisVoice
- Represents a voice that the system supports. Every
SpeechSynthesisVoice
has its own relative speech service including information about language, name and URI. Window.speechSynthesis
- Specced out as part of a
[NoInterfaceObject]
interface calledSpeechSynthesisGetter
, and Implemented by theWindow
object, thespeechSynthesis
property provides access to theSpeechSynthesis
controller, and therefore the entry point to speech synthesis functionality.
例
GithubのWeb Speech API repoに、音声合成や音声認識を説明するデモが含まれています。
仕様
Specification | Status | Comment |
---|---|---|
Web Speech API | ドラフト | Initial definition |
ブラウザ互換性テーブル
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 33[1] | 44 (44)[2] | 未サポート | 未サポート | 未サポート |
Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | ? | (有)[1] | ? | 2.5 | 未サポート | 未サポート | 未サポート |
- [1] Speech recognition interfaces are currently prefixed in Chrome, so you'll need to prefix interface names appropriately, e.g.
webkitSpeechRecognition
; You'll also need to serve your code through a web server for recognition to work. Speech synthesis is fully supported without prefixes. - [2] 使用可能にするにはabout:comfigの
media.webspeech.synth.enabled
やmedia.webspeech.recognition
を有効にしてください。 - Firefox Desktop版では現在、音声合成のみ使用可能なことに注意して下さい。
- 音声認識ももうすぐ(音声認識に必要な内部権限が整理された後)使用可能になるでしょう。
Firefox OS でのパーミッション
To use speech recognition in an app, you need to specify the following permissions in your manifest:
"permissions": { "audio-capture" : { "description" : "Audio capture" }, "speech-recognition" : { "description" : "Speech recognition" } }
You also need a privileged app, so you need to include this as well:
"type": "privileged"
Speech synthesis needs no permissions to be set.
関連項目
- Using the Web Speech API
- SitePoint article
- HTML5Rocks article
- Demo [aurelio.audero.it]