Speech synthesis
SpeechSynthesis はウェブ音声 API のインターフェイスで、音声発声サービスのための制御インターフェイスです。これは、端末で利用可能な合成音声についての情報を取得するために使用されます。読み上げの開始および一時停止、他のコマンドで制御します。
EventTarget SpeechSynthesis
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 33 | 14 | 49 | 7 | 33 | 7 | |
| cancel() は SpeechSynthesis インターフェイスのメソッドで、発話キューからすべての発話を除去します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| getVoices() は SpeechSynthesis インターフェイスのメソッドで、現在の端末で利用できるすべての音声を表す SpeechSynthesisVoice オブジェクトのリストを返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| pause() は SpeechSynthesis インターフェイスのメソッドで、SpeechSynthesis オブジェクトを一時停止状態にします。 | 33 | 14 | 49 | 7 | 33 | 7 |
| paused は SpeechSynthesis インターフェイスの読み取り専用プロパティで、論理値を返します。true はこの SpeechSynthesis オブジェクトが一時停止状態の場合、false はそれ以外の場合に返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| pending は SpeechSynthesis インターフェイスの読み取り専用プロパティで、論理値を返します。この発話キューにまだ発話されていない発話がある場合に true を返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| resume() は SpeechSynthesis インターフェイスのメソッドで、SpeechSynthesis オブジェクトを一時停止していない状態に戻します。つまり、すでに一時停止している場合は、発話を再開します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| speak() は SpeechSynthesis インターフェイスのメソッドで、発話 (SpeechSynthesisUtterance) を発話キューに追加します。この発話は、その前にキューに入れられている他のすべての発話が読み上げられた後に読み上げられます。 | 33 | 14 | 49 | 7 | 33 | 7 |
| speaking は SpeechSynthesis インターフェイスの読み取り専用プロパティで、論理値であり、発話が現在処理中の場合、SpeechSynthesis が SpeechSynthesis/pause() 状態であっても true を返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| voiceschanged はウェブ音声 API のイベントで、SpeechSynthesis.getVoices() メソッドから返される SpeechSynthesisVoice オブジェクトのリストが変更された際に発生します (voiceschanged イベントが発生したとき)。 | 33 | 14 | 49 | 16 | 33 | 16 |
| SpeechSynthesisErrorEvent はウェブ音声 API のインターフェイスで、発話サービスの SpeechSynthesisUtterance オブジェクトの処理中に発生したエラーに関する情報を保持します。 | 33 | ≤18 | 49 | 7 | 33 | 7 |
| error は SpeechSynthesisErrorEvent インターフェイスのプロパティで、音声合成の失敗を示すエラーコードを返します。 | 33 | ≤18 | 49 | 7 | 33 | 7 |
| SpeechSynthesisErrorEvent() コンストラクターは新しい SpeechSynthesisErrorEvent オブジェクトを生成します。 | 71 | 79 | 49 | 16 | 71 | 16 |
| SpeechSynthesisEvent はウェブ音声 API のインターフェイスで、は、発話サービスで処理された SpeechSynthesisUtterance オブジェクトの現在の状態に関する情報を保持します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| charIndex は SpeechSynthesisUtterance インターフェイスの読み取り専用プロパティで、イベントが発生したときに発話されていた SpeechSynthesisUtterance.text 内の文字のインデックス位置を返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| charLength は SpeechSynthesisEvent インターフェイスの読み取り専用プロパティで、 SpeechSynthesisEvent.charIndex の位置にある文字の後に発話される残りの文字数を返します。 | 77 | 15 | 53 | 16 | 77 | 16 |
| elapsedTime は SpeechSynthesisEvent の読み取り専用プロパティで、このイベントが発生した時点での SpeechSynthesisUtterance.text を発話し始めてからの経過時間を秒単位で返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| name は SpeechSynthesisUtterance インターフェイスの読み取り専用プロパティで、 SpeechSynthesisUtterance.text が話されているときに発生する、特定の種類のイベントに関連付けられた名前を返します。 SpeechSynthesisUtterance.markevent イベントの場合は、到達した SSML マーカーの名前、 SpeechSynthesisUtterance.boundaryevent イベントの場合は到達した境界の種類です。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisEvent() コンストラクターは、新しい SpeechSynthesisEvent オブジェクトを生成します。 | 71 | 14 | 49 | 16 | 71 | 16 |
| utterance は SpeechSynthesisUtterance インターフェイスの読み取り専用プロパティで、イベントが発生した SpeechSynthesisUtterance インスタンスを返します。 | 33 | 14 | 49 | 16 | 33 | 16 |
| SpeechSynthesisUtterance はウェブ音声 API のインターフェイスで、発話リクエストを表します。 これには、発話サービスが読み上げるコンテンツと、その読み上げ方についての情報(言語、音の高低、音量)が含まれます。 | 33 | 14 | 49 | 7 | 33 | 7 |
| boundary は ウェブ音声 API のイベントで、発話が胡屋分の境界に達したときに発生します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| end は ウェブ音声 API の SpeechSynthesisUtterance オブジェクトのイベントで、発生が終了したときに発生します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| error はウェブ音声 API の SpeechSynthesisUtterance オブジェクトのイベントで、エラーが発生して正常に発話ができなかったときには発生します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| lang は SpeechSynthesisUtterance インターフェイスのプロパティで、発話の言語を取得および設定します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| mark はウェブ音声 API の SpeechSynthesisUtterance オブジェクトのイベントで、発話が SSML の名前付き "mark" タグに達したときに発生します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| pause はウェブ音声 API の SpeechSynthesisUtterance オブジェクトのイベントで、 is fired when the utterance is paused part way through. | 33 | 14 | 49 | 7 | 33 | 7 |
| pitch は SpeechSynthesisUtterance インターフェイスのプロパティで、発話が行われるピッチ(音程)を取得および設定します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| rate は SpeechSynthesisUtterance インターフェイスのプロパティで、発話をする速度を取得および設定します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| resume はウェブ音声 API の SpeechSynthesisUtterance オブジェクトのイベントで、一時停止していた発話が再開されたときに発生します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisUtterance() は SpeechSynthesisUtterance インターフェイスのコンストラクターで、新しい SpeechSynthesisUtterance オブジェクトのインスタンスを返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| start は ウェブ音声 API の SpeechSynthesisUtterance オブジェクトのイベントで、発話が始まったときに発行されます。 | 33 | 14 | 49 | 7 | 33 | 7 |
| text は SpeechSynthesisUtterance インターフェイスのプロパティで、発話時に合成されるテキストを取得および設定します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| voice は SpeechSynthesisUtterance インターフェイスのプロパティで、発話に使用する音声を取得および設定します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| volume は SpeechSynthesisUtterance インターフェイスのプロパティで、発話の音量を取得および設定します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| Web Speech API の SpeechSynthesisVoice インターフェースは、システムがサポートする音声を表します。各 SpeechSynthesisVoice には、言語、名前、URI に関する情報を含む、固有の音声サービスが関連付けられています。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisVoice インターフェースのデフォルトの読み取り専用プロパティは、そのボイスが現在のアプリのデフォルトのボイスであるかどうかを示すブール値を返します(true の場合:デフォルト、false の場合:デフォルト以外)。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisVoice インターフェースの `lang` 読み取り専用プロパティは、音声の言語を示す BCP 47 言語タグを返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisVoice インターフェースの localService 読み取り専用プロパティは、その音声がローカルの音声合成サービスによって提供されているか(true)、あるいはリモートの音声合成サービスによって提供されているか(false)を示すブール値を返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisVoice インターフェースの read-only プロパティは、その音声を表す、人間が読み取れる名前を返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| SpeechSynthesisVoice インターフェースの read-only プロパティである voiceURI は、この音声に対応する音声合成サービスの URI の種類と場所を返します。 | 33 | 14 | 49 | 7 | 33 | 7 |
| speechSynthesis は Window オブジェクトの読み取り専用プロパティで、SpeechSynthesis オブジェクトを返します。これは、ウェブ音声 API の音声合成機能を使用するためのエントリーポイントです。 | 33 | 14 | 49 | 7 | 33 | 7 |
- Androidでは、`pause()`は現在の発話を終了させます。`pause()`の動作は`cancel()`と同じです。
- このブラウザでは部分的にしか実装されていません
- `boundary` イベントが期待通りに発火しません。バグ 40715888 を参照してください。
- このブラウザでは部分的にしか実装されていません
- `boundary` イベントが期待通りに発火しません。バグ 40715888 を参照してください。
- Firefoxでは、音声合成のボイスは、`window.speechSynthesis.getVoices()`が最初に呼び出されてからでないと読み込まれません。この問題を回避するには、ページの読み込み開始時にこのメソッドを呼び出し、数秒待ってから再度呼び出すようにします。このメソッドを呼び出したすべてのタブが閉じられるまで、ボイスは読み込まれた状態のまま維持されます。
基本構文
let utterance = new SpeechSynthesisUtterance("Hello world!");
speechSynthesis.speak(utterance); 実務での使いどころ
-
Speech synthesis の活用
SpeechSynthesis はウェブ音声 API のインターフェイスで、音声発声サービスのための制御インターフェイスです。
注意点
- 古いブラウザでは対応していない場合がある。
実装メモ
- 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。