Raspberry Pi でゆっくり達に Twitter & Mastodon タイムラインを読み上げてもらう
Version | |
---|---|
ボード | Raspberry Pi 3 Model B |
OS | Raspbian GNU/Linux 9.4 (stretch) |
Java | OpenJDK 9-Raspbian |
AquesTalk Pi | Ver.1.00 |
Twitter Application Management から、下記 4 つの Key を取得します。
- Consumer Key (API Key)
- Consumer Secret (API Secret)
- Access Token
- Access Token Secret
phi 様の記事がわかりやすいので、詳細手順は割愛します。
Access level は Read and Write がデフォルトのようですが、本アプリに投稿機能は無いため Read only に変更しても問題ありません。
もし、Access Token の発行後に Access level を変更したのであれば、Access Token を Regenerate してください。
例) mstdn.jp の場合
- https://mstdn.jp/settings/applications/new にアクセス
- 下記を入力・設定して送信
- アプリの名前: 任意の値
- アプリのウェブサイト: 任意の値
- アクセス権: read のみをチェック
- Access Token が発行される
- AquesTalk Pi をダウンロード、および tgz ファイルを展開
- TimelineTalker.jar から最新版をダウンロード
- ダウンロードおよび展開したファイルを下記のように配置
- TimelineTalker.jar
- aquestalkpi/AquesTalkPi
- aquestalkpi/aq_dic
Raspberry Pi にスピーカーを接続して、下記コマンドを実行してください。
引数 <Mastodon Instance Name> は Mastodon のインスタンス名に置き換えてください。 例) mstdn.jp
その他の引数は、上記で取得した値に置き換えてください
ゆっくり霊夢が『アプリケーションを起動しました』と発声します。その後、タイムラインに更新があれば、ゆっくり霊夢・ゆっくり魔理沙が交互にツイートを読み上げます。
$ nohup java -jar TimelineTalker.jar <Twitter Consumer Key> <Twitter Consumer Secret> <Twitter Access Token> <Twitter Access Token Secret> <Mastodon Instance Name> <Mastodon Account's Access Token> &
$ nohup java -jar TimelineTalker.jar <Twitter Consumer Key> <Twitter Consumer Secret> <Twitter Access Token> <Twitter Access Token Secret> &
$ nohup java -jar TimelineTalker.jar <Mastodon Instance Name> <Mastodon Account's Access Token> &
YouTube やニコニコ動画でおなじみの「ゆっくりボイス」とは、株式会社アクエスト社製の音声合成エンジン「AquesTalk」によって生成された音声です。有名な読み上げフリーソフトに「SofTalk」や「棒読みちゃん」がありますが、いずれにも「AquesTalk」が使われています。
音声合成アプリ「AquesTalk Pi」には、ARM 用にビルドされた「AquesTalk」が使われています。また、言語処理エンジン「AqKanji2Koe」もアプリに含まれるため、漢字も読み上げてくれます。
個人かつ非営利に限り、無償で使用することができます。
Twitter の statuses/home_timeline API を使用するため、Twitter4Jを使用しています。
Apache License 2.0 で使用できる Twitter 非公式のライブラリです。
Mastodon の Streaming API を使用するため、sys1yagi/mastodon4jを使用しています。
MIT License で使用できるライブラリです。
公式ドキュメントで Mastodon API が使用できるライブラリ一覧が紹介されています。