このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
ウェブ音声 API
ウェブ音声 API (Web Speech API) で、音声データをウェブアプリに組み入れることができます。ウェブ音声 API は、SpeechSynthesis (音声合成、Text-to-Speech)とSpeechRecognition (非同期音声認識、Asynchronous Speech Recognition)の 2 つの部分から成り立っています。
In this article
ウェブ音声 API のコンセプトと使用法
ウェブ音声 API は、ウェブアプリが音声データを扱えるようにします。この API には 2 つの構成要素があります。
- 音声認識は
SpeechRecognitionインターフェイス経由でアクセスされます。これは、音声入力(通常は端末の既定の音声認識サービス)から音声の文脈を認識し、適切に応答する機能を提供します。通常は、インターフェイスのコンストラクターを使用して新しいSpeechRecognitionオブジェクトを生成します。このオブジェクトは、端末のマイクを通して入力された音声を検知するための、いくつものイベントハンドラーを持ちます。SpeechGrammarインターフェイスは、あなたのアプリが認識すべき特定の文法群のコンテナーを表します。文法は、JSpeech Grammar Format (JSGF) を使用して定義されています。 - 音声合成は、
SpeechSynthesisインターフェイス経由でアクセスされます。これは、プログラムに、そのテキストコンテンツを読み上げる機能を提供します(通常は端末の既定の音声合成を経由)。異なる種類の音声は、SpeechSynthesisVoiceオブジェクトで表され、発話してほしいテキストの様々な部分は、SpeechSynthesisUtteranceオブジェクトで表されます。これらをSpeechSynthesis.speak()メソッドに渡すことによって発話されます。
これらの機能の使い方についての詳細は、ウェブ音声 API の使用 を参照してください。
ウェブ音声 API インターフェイス
>音声認識
SpeechRecognition認識サービスのコントローラーインターフェイスです。認識サービスから送信された
SpeechRecognitionEventも扱います。SpeechRecognitionAlternative音声認識サービスにより認識されている単語を表します。
SpeechRecognitionErrorEvent認識サービスからのエラーメッセージを表します。
SpeechRecognitionEventresultイベントおよびnomatchイベントのためのイベントオブジェクトです。暫定あるいは最終の音声認識結果に関連付けられたすべてのデータを含みます。SpeechGrammar認識サービスに認識してほしい言葉または言葉のパターンです。
SpeechGrammarListSpeechGrammarオブジェクトのリストを表します。SpeechRecognitionResult一致した一つの認識結果を表します。これには、複数の
SpeechRecognitionAlternativeオブジェクトが含まれることがあります。SpeechRecognitionResultListSpeechRecognitionResultオブジェクトのリストを表します。または、continuousモードで結果が捕捉された場合は、一つだけになります。
音声合成
SpeechSynthesis音声サービスのコントローラーインターフェイスです。これは、デバイスで利用可能な合成音声についての情報を取得したり、発話の開始や一時停止などのコマンドを実行するために使用されます。
SpeechSynthesisErrorEvent音声サービスで
SpeechSynthesisUtteranceオブジェクトの処理中に発生したあらゆるエラーについての情報を含みます。SpeechSynthesisEvent音声サービスで処理されている
SpeechSynthesisUtteranceオブジェクトの現在の状態についての情報を含みます。SpeechSynthesisUtterance音声リクエストを表します。これは、音声サービスが読み上げるコンテンツとその読み上げ方 (言語、音声の高低、音量など) についての情報を含みます。
SpeechSynthesisVoiceシステムが対応する音声を表します。すべての
SpeechSynthesisVoiceは、それ自身に関連する音声サービス (言語、名前、URI についての情報を含む) を持ちます。Window.speechSynthesisSpeechSynthesisGetterと呼ばれる[NoInterfaceObject]インターフェイスの一部として定義され、Windowオブジェクトによって実装されたことで、speechSynthesisプロパティはSpeechSynthesisコントローラーへのアクセスを提供します。したがって、音声合成機能へのエントリーポイントになります。
エラー
音声 API が報告するエラー(例:"language-not-supported" や"language-unavailable") の情報については、以下の文書を参照してください。
例
Github 上のウェブ音声 API リポジトリー には、音声合成や音声認識を説明するデモが含まれています。
仕様書
| Specification |
|---|
| Web Speech API> # speechreco-section> |
| Web Speech API> # tts-section> |