CaptionSpeaker は youtube に設定された字幕のうち、指定された言語の字幕があった場合に、それを発話させる事で耳から聞くことができるようにする chrome extension です。
Chrome webstore で公開されています。
- CaptionSpeaker のアイコンを右クリックして設定(オプション)を開き、話者設定を適切に設定してsaveする(標準設定では発話に失敗する場合があるので必ず行って下さい)
- Youtube で字幕を発話させたい動画を開く
- CaptionSpeaker のアイコンをクリックして字幕の発話を有効にする(緑色のアイコンになっていればONになっています)
- 動画の再生を開始する(字幕が表示されるタイミングで発話が開始されます)
字幕の発話を停止したい場合は CaptionSpeaker のアイコンをクリックして字幕の発話をOFFにする事で停止できます。
発話時の話者は最初はブラウザの標準設定になっています。例えば日本語環境だと日本語話者になっているので、英語で発話させたい時などは設定ページ(アイコンを右クリックしてオプションを選択するか、アイコンをクリックしてOptionsを選択)で設定してください。 設定ページでは読み上げの速度等も変更できます。
発話時の話者の言語(ロケール)を変えると、その言語の字幕を発話するように努力します(時々失敗します)。
拡張機能やアプリが期待通りに動作しないとき、ご報告いただけるのはとても助かります。 ただ、開発者側でも問題を再現できない場合、修正や対応は難しいことをご理解ください。
そこで、報告をいただける際には次のような点にご協力いただけるととても助かります。
- 問題が発生した状況(どういうときに何が起きたか)
- 「こう動いてほしかった」期待する動作
- 問題が発生するまでの操作手順。(開発者側で問題を再現するときに使う情報になりますので、同じ手順で問題が発生するか否かが重要です。そのため、手順を省略せずに記載ください)
- 使用している環境
- Chrome のバージョン
- OSとそのバージョン
- CaptionSpeaker のバージョン
- CaptionSpeaker の設定
- 問題が発生する動画の URL
「動きません」だけでは、開発者側で調べるのがとても難しくなってしまいます
自分が知らない情報は、相手(開発者)も知らないことがほとんどです
不具合の再現手順を詳しく伝えることで、問題の解決が早く、正確になる可能性が高まります
最初のリリース
- 新しく発話する時に前の発話を止める オプションを追加
- 発話設定の言語と同じ言語の字幕がdefaultの場合、発話をしない オプションを追加
- 読み上げをOFFにした時に、発話状態であれば発話をやめるように
- 読み上げが少し遅れる場合がある問題に対処
- 「発話設定の言語と同じ言語の字幕」の判定基準を少し変更
- 「字幕が表示されている時だけ読み上げを行うようにする」設定項目を追加
- 字幕を読み込めなくなっていた問題を修正(2020/11/26)
- 字幕を読み込めない場合が残っていた問題を修正(2020/11/28)
- Manifest V3 に対応させた
- チャンネル(www.youtube.com/channel/...)やプレイリスト(www.youtube.com/playlist?list=...)から動画のページに遷移した時に発話しない問題を解消
- www.youtube.com以外のページへの埋込 youtube動画(iframe で www.youtube.com/embed... が取り込まれるタイプのもの)に対応(なお、youtube内で「キューに追加」した時に表示されるミニプレイヤーには非対応です)
- 「発話中に元動画の��量を下げる」設定を追加
- ブラウザの言語設定(window.navigator.language)と読み上げ対象の言語が違っている場合に、ブラウザの言語設定側の言語を発話しようとする問題を修正
- 字幕を取得できなかった時に次点の情報を取りに行く事で、字幕が取得できなくなる可能性を減らした
- Version 2.0.2 で入れた次点の情報を取りに行く部分で、取得し損なう場合があった問題に対処
- 動画の再生を止めた時に発話も止まるようになります (Thanks @RonnieBlade)
- 「オプション」に「時刻同期をせずに発話するようにする」のON/OFF設定が追加されます (Thanks @billythekidz)
- 字幕内に等のHTMLタグがあった場合にはそれを無視するようにします。
- https://www.youtube.com/live/ の動画についても対象にするようにします。ただし、字幕データが必要なので、ライブ配信中などで字幕データが生成されていないものは動作しないことに注意してください。つまり、ライブ配信が終わった(後に字幕データをYoutubeが生成したりチャンネル所有者が字幕を追加した)後に視聴した場合でないと動きません。
- 字幕データが取得できない場合があったため、取得できるように努力するようにします。 ただし、字幕データの取得をYoutubeのUI側が行うのを観測する必要があります。そのため、字幕が非表示の場合には一瞬字幕を表示するようにしています。したがって、この方式で字幕を取得しようとした場合、一瞬字幕が表示される可能性があります。 また、複数経路での字幕取得を試すため、ネットワーク通信に問題がある場合などの要因があると、字幕を取得できずに発話できなくなったり、発話されるにしても字幕取得までに時間がかかることで発話が開始されるまでに時間がかかる場合がありえます。
- 「発話設定の言語と同じ言語の字幕がdefaultの場合、発話をしない~」がONの場合にそれが効かない場合があった問題に対処しました。
- 広告動画が表示された後、読み上げる字幕が広告のものになる場合があった問題に対処しました。
- 字幕ボタンが押しても効果がなさそうな場合は字幕ボタンを押さないようにします。(例えば /live/ な動画で字幕が無い場合(現在ライブ配信中で字幕が作成されていない場合など)に、字幕ボタンを押しすことで字幕を取り出そうと延々と試行してしまうという問題が解消されます)
macOS Catalina では標準の話者での発話が失敗することがあるようです。 設定ページでテスト発話させてみて、実際に発話できることを確認できた話者を設定することで回避することができます。