ブラウザで選択してる文字列を棒読みちゃんに送るWebExtentionsを作った
作りました
動機
ネットサーフィンをしていると読みたいな~と思う記事に出会うことがあります。しかし長文を「読む」というのは中々パワーが要るため、僕はVOICEROIDのエディタへ読みたい部分をコピペして読み上げをさせていました。
この手順は例えば
- 記事を選択する
- コピーする
- VOICEROIDへウィンドウを切り替える
- 貼り付ける
- 再生を押す
- 聞く
- あかりちゃんかわいい
となりますが、手順7へたどり着くのにかなり手を動かさないといけないので非常に面倒です。しかしブラウザからVOICEROIDを操作するのは大変です。なのでブラウザから棒読みちゃんを操作して間接的にあかりちゃんを操作することを目指します。
棒読みちゃんからVOICEROIDを操作するのは棒読みちゃんのプラグインであるVoiceroid Talk Plus
を利用します。
インストール
BS2B
GitHubからクローンして手元のブラウザにインストールする。もしくはFirefoxならFirefox Add-onsで公開しているのでそこからインストールできます。
棒読みちゃんWebSocketサーバープラグイン
GitHubからクローンしてきてPlugin_WebSocket.dll
を棒読みちゃんと同じディレクトリにコピーしてください。
BS2B
ブ ラウザーで せ んたくしてる文字列を 棒 読みちゃんに送る やつ でBS2B
という名前にしました。意味がわからない
ブラウザで選択したところを棒読みちゃんに送るやつ – Firefox 向けアドオン
拡張機能を導入すると、ブラウザのメニューバーにマイクのアイコンが追加されます。このアイコンをクリックするとポップアップが表示されます。ここから棒読みちゃんへリクエストを送ることができるようになっています。
構成はこんな感じです。
FirefoxやGoogle Chrome、MS EdgeなどWebExtentionsに対応しているブラウザにインストールされたBS2B
はWebSocketを介して棒読みちゃんに読み上げや一時停止、再開などのリクエストを送ります。そこからVoiceroid Talk PlusがVOICEROIDのエディタに文字列を渡し、あかりちゃんが読み上げます。かわいい
ただし棒読みちゃんはWebSocketに対応していないので、自前でWebSocketサーバーをプラグインとして用意する必要があります。今回はそれも用意しました。
といってもモノ自体は先駆者の方のForkになります。BS2Bが扱いやすいように機能を追加しています。
使い方
- メニューバーのボタン
- クリックするとこのポップアップがでます。ポップアップが開かれたとき選択している文字列がテキストボックスに 追加 されます。
- 設定チェックボックス
テキストを保持する
: ポップアップを閉じてもテキストボックスを保持します。送った後にテキストをリセットする
: Sendボタンを押した後テキストボックスがクリアされます。
- テキストボックス
- ポップアップ起動時に選択されていた文字列が表示されます。編集可能なので送る前に適当に調整すればいいと思います
- ただし棒読みちゃんへは改行コードで分割され1行単位で送られます。
- さらに1行の長さがある程度長いとSkipされてしまいます。
- ステータス
- BS2Bのステータスを簡易的に表示します。
- Skipボタン
- 棒読みちゃんが今読み上げているタスクをスキップします。
- Pauseボタン
- 棒読みちゃんの読み上げを一時停止します。
- Resumeボタン
- 棒読みちゃんの読み上げを再開します。
- Resetボタン
- テキストボックスをリセットします。
- Appendボタン
- 選択されているテキストをテキストボックスに 追加 します。
- Sendボタン
- テキストを棒読みちゃんへ送ります。
雑感
WebExtentionsとかJSとかの勉強がてらに不便を1つ解消しました。これでブラウザを開いていてもあかりちゃんと一緒に居れますね!(うれしい)
今思えば適当にキーバインドとかを設定してもよかったかもしれないですね。ボタンが遠い。