選択的聞き流し補助ツール。文字列を合成音声化(TTS, Text To Speech)。
対応言語数の点で推奨ブラウザは Chrome と Edge。※但し Chrome 系は現在エラーで使えない。
聞き流しの目的
読ませたい文章または単語列を反復して音声化することができます。
長文を聞き続けるのは時間の無駄になりやすい。単語のグループを聞くのがいい。
例えば新規外国語の数字、曜日などはまとめて繰り返し聞くことに意味がある。
短文モードと長文モード
TTS 短文モード
反復数(reps) 2 以上の場合は短文モード。短文モードでは一行ずつ所定回数朗読されます。
一行分の所定回数が終わると次の行へ移行して所定回数朗読を繰り返します。
TTS 長文モード
反復数(reps) 0 の場合は長文モード。長文モードでは複数行を全体朗読します。
反復数(reps) 0 にし、必要に応じて本文を短く編集します。 [Play] で朗読開始。
基本機能
音声化前に本文を適宜編集します。[Play]、[Cancel]。
速度、反復回数、反復間隔を調節できます。
- Rate:朗読速度(0.1-1.0)
- Volu:音量(0.1-1.0)
- reps:反復回数
- msec/char:一文字当たり所要時間
①入力欄(テキストボックス)の文字列が朗読対象。
②再生[Play]ボタンで朗読を開始する。※[space]キーで pause
③任意の範囲をマウスで選択すると、その範囲が新たな朗読対象になります。
④必要に応じて特定部分を選択し、反復回数(reps)を指定すれば自動で反復朗読されます。
朗読対象の取得
'on the spot', 'serial' チェックの補足説明。
任意の文字列を画面上で選択すると入力欄に取り込まれます。この時、
・'on the spot' チェック:入力欄が文字列選択位置に移動します。
・'serial' チェック:同カテゴリの隣接単語としてカンマ区切りに取り込みます。
例:"ten twenty thirty"⇒"ten, twenty, thirty"
難儀する文字列音声化
以前はどのブラウザでも文字列の音声化(朗読)ツールを自由に操作できた。
しかし 2025年現在、従来通りに使えるブラウザは Edge, Opera など数種のみ。
INTERRUPTED❗️
script.js:215 utter error:
SpeechSynthesisErrorEvent {isTrusted: true, error: 'interrupted', utterance: SpeechSynthesisUtterance, charIndex: 0, charLength: 0, …}
特に Chrome は利用可能な音声化対応言語が多いのに、事実上使えない。
ブラウザは音声化機能を提供しながらも、ユーザの利用を制限している。
つまり、TTS(Text-To-Speech)を使おうとするとすると音声化を中断させる。
今では多くのブラウザで同様に制約があり、利用には特別な工夫が必要になった。
工夫を加えると何とか音声化できるが、読み始め部分が欠落する。
それだけならいいが、しばしば 'interrupted' で予測不能中断あり。
利用可能言語
制限フリーのブラウザはどうか。Opera は対応言語が少ない。
Edge は利用可能な音声化対応言語を初めから多く揃えている。
Opera は MS の言語パックを OS に追加すれば必要な数揃えられる。
ERRORS❗️
ResponsiveVoice は数回の音声化では良好ですが、繰り返し使うやり方では問題あります。
TTS 機能を提供する ResponsiveVoice のサーバは、利用する内に複数種類のエラーを起こします。
オリジン間リソース共有(CORS)エラー対策
一つは、CORS エラー。
リクエストに対しサーバは CORS に必要な access-control-allow-* 情報をレスポンスヘッダに返さない。
そのためブラウザは CORS 判定できず TTS を数回実行後に CORS エラーを出し、途中から TTS 機能が利用不可に。CORS エラーを回避するには
①ブラウザに拡張機能「Allow CORS: Access-Control-Allow-Origin addon」を追加して
②TTS 機能を利用する間は拡張機能を有効化してください。
③TTS 機能の利用終了後、拡張機能を無効化してください。
※この拡張機能は access-control-allow-* 情報をレスポンスヘッダに追加する
502 Bad Gateway
もう一つは、サーバ自体の通信状態に問題があることを示すエラーは 502 Bad Gateway です。
CORS エラーを回避できても 502 Bad Gateway は早晩発生して結局機能が長持ちしません。
根本的エラー対策
デフォルトの TTS 機能として Web-Speech-API を使用することにします。
音声品質は ResponsiveVoice と遜色ない。但し、言語の選択肢は OS とブラウザによって差がある。
OS が Windows やスマホなら使えるようです。ブラウザは、Chrome なら多数の言語が揃います。