ブラウザ対応と手動確認
GlyphFlowの初期対応対象は、単語境界イベントを返すvoiceを使ったDesktop Chrome・英語テキストです。voiceの挙動はOSやインストールされているvoiceにも依存します。
| 環境 | 状態 | 想定される挙動 |
|---|---|---|
| Desktop Chrome、英語、単語境界あり | 初期対応対象 | ブラウザがvoiceを開始し境界を返す場合、音声と文字内部ワイプが動作します。 |
| Desktop Chrome、単語境界なし | 制限あり | 音声は再生されても同期ワイプは使えません。終了時にunsupportedを通知します。 |
| その他のDesktopブラウザ | 未検証 | Web Speechの挙動が異なるため、対象ブラウザとvoiceを手動確認してください。 |
| モバイルブラウザ・英語以外 | v0.1対象外 | 互換性を保証しません。 |
getSpeechSynthesisSupport()でWeb Speech APIがない環境を確認できます。ただし、APIが存在してもutteranceの開始に失敗する場合があります。GlyphFlowはブラウザのstartイベントを待ち、10秒以内に届かなければerrorを通知します。同期字幕には利用可能な単語境界も必要です。
Speech synthesisはブラウザ全体で共有されるキューです。cancel()はグローバルなspeechSynthesis.cancel()を呼ぶため、ページ内の別機能が開始した音声も停止する可能性があります。複数の音声機能を使うアプリケーションでは所有権を調整してください。
対象ブラウザとvoiceでnpm run demoを実行し、rate 1.0で次を確認してください。
| 確認項目 | 期待結果 |
|---|---|
| 再生開始 | 音声が聞こえ、状態がstartingからspeakingへ変わる。 |
| 単語内部の動き | 単語全体の点滅ではなく、各文字の中を色が連続的に進む。 |
| Pause / Resume | 現在位置で止まり、再開後に急にジャンプしない。 |
| テキストの忠実性 | 繰り返し単語、句読点、空白、改行が保たれる。 |
| 境界なし | 計測同期を装わず、終了時にunsupportedになる。 |
| 開始失敗 | speakingのまま残らず、10秒後にerrorになる。 |