たいちょーの雑記

ぼくが3日に一度くらい雑記をかくところ

ブラウザからあかりちゃんに喋ってほしかったので拡張機能作った

ブラウザで選択してる文字列を棒読みちゃんに送るWebExtentionsを作った

作りました

動機

ネットサーフィンをしていると読みたいな~と思う記事に出会うことがあります。しかし長文を「読む」というのは中々パワーが要るため、僕はVOICEROIDのエディタへ読みたい部分をコピペして読み上げをさせていました。

この手順は例えば

  1. 記事を選択する
  2. コピーする
  3. VOICEROIDへウィンドウを切り替える
  4. 貼り付ける
  5. 再生を押す
  6. 聞く
  7. あかりちゃんかわいい

となりますが、手順7へたどり着くのにかなり手を動かさないといけないので非常に面倒です。しかしブラウザからVOICEROIDを操作するのは大変です。なのでブラウザから棒読みちゃんを操作して間接的にあかりちゃんを操作することを目指します。

棒読みちゃんからVOICEROIDを操作するのは棒読みちゃんプラグインであるVoiceroid Talk Plusを利用します。

ch.nicovideo.jp

インストール

BS2B

GitHubからクローンして手元のブラウザにインストールする。もしくはFirefoxならFirefox Add-onsで公開しているのでそこからインストールできます。

棒読みちゃんWebSocketサーバープラグイン

GitHubからクローンしてきてPlugin_WebSocket.dll棒読みちゃんと同じディレクトリにコピーしてください。

BS2B

ラウザーで んたくしてる文字列を 読みちゃんに送る やつBS2Bという名前にしました。意味がわからない

ブラウザで選択したところを棒読みちゃんに送るやつ – Firefox 向けアドオン

github.com

拡張機能を導入すると、ブラウザのメニューバーにマイクのアイコンが追加されます。このアイコンをクリックするとポップアップが表示されます。ここから棒読みちゃんへリクエストを送ることができるようになっています。

構成はこんな感じです。

FirefoxGoogle Chrome、MS EdgeなどWebExtentionsに対応しているブラウザにインストールされたBS2BはWebSocketを介して棒読みちゃんに読み上げや一時停止、再開などのリクエストを送ります。そこからVoiceroid Talk PlusがVOICEROIDのエディタに文字列を渡し、あかりちゃんが読み上げます。かわいい

ただし棒読みちゃんはWebSocketに対応していないので、自前でWebSocketサーバーをプラグインとして用意する必要があります。今回はそれも用意しました。

github.com

といってもモノ自体は先駆者の方のForkになります。BS2Bが扱いやすいように機能を追加しています。

使い方

  1. メニューバーのボタン
    • クリックするとこのポップアップがでます。ポップアップが開かれたとき選択している文字列がテキストボックスに 追加 されます。
  2. 設定チェックボックス
    • テキストを保持する : ポップアップを閉じてもテキストボックスを保持します。
    • 送った後にテキストをリセットする : Sendボタンを押した後テキストボックスがクリアされます。
  3. テキストボックス
    • ポップアップ起動時に選択されていた文字列が表示されます。編集可能なので送る前に適当に調整すればいいと思います
    • ただし棒読みちゃんへは改行コードで分割され1行単位で送られます。
    • さらに1行の長さがある程度長いとSkipされてしまいます。
  4. ステータス
    • BS2Bのステータスを簡易的に表示します。
  5. Skipボタン
  6. Pauseボタン
  7. Resumeボタン
  8. Resetボタン
    • テキストボックスをリセットします。
  9. Appendボタン
    • 選択されているテキストをテキストボックスに 追加 します。
  10. Sendボタン

雑感

WebExtentionsとかJSとかの勉強がてらに不便を1つ解消しました。これでブラウザを開いていてもあかりちゃんと一緒に居れますね!(うれしい)

今思えば適当にキーバインドとかを設定してもよかったかもしれないですね。ボタンが遠い。

参考