リビジョン 0ecad45b
みぞ @mizo0203 さんが約7年前に追加
README.md | ||
---|---|---|
1 |
# TwitterTimelineTalker |
|
1 |
# Raspberry Pi でゆっくり達に Twitter タイムラインを読み上げてもらう |
|
2 |
|
|
3 |
## 背景・動機 |
|
4 |
|
|
5 |
私事ですが、先日 Google Home を購入しました。早速、Google Home と Twitter を IFTTT 連携させ、音声操作によるツイートをしばらく楽しんでいました。しかし、ツイート後のタイムラインの様子を確認するため、結局スマートフォンを手に取ってしまいます。 |
|
6 |
|
|
7 |
タイムラインも音声で確認したいと思い、Google Home にタイムラインを読み上げてもらおうと考えたのですが、本稿執筆時点では IFTTT で Twitter をトリガーに指定できても Google Assistant をアクションに指定することはできません。 |
|
8 |
|
|
9 |
そこで、Google Home での読み上げを諦め、Raspberry Pi に読み上げてもらおうと本アプリを作りました。 |
|
10 |
|
|
11 |
※ あとがきで後述する通り、ここで Google Home での読み上げを断念するのは早計でした。 |
|
12 |
|
|
13 |
## 作ったもの |
|
14 |
|
|
15 |
TwitterTimelineTalker.jar v1.0 |
|
16 |
|
|
17 |
Raspberry Pi 上で、ゆっくり霊夢・ゆっくり魔理沙が交互に Twitter タイムラインを読み上げてくれます。 |
|
18 |
|
|
19 |
* [アプリケーション](http://redmine.mizo0203.com/attachments/57/TwitterTimelineTalker.jar) |
|
20 |
* [ソースコード](https://github.com/mizo0203/TwitterTimelineTalker) |
|
21 |
|
|
22 |
## 使い方 |
|
23 |
|
|
24 |
### 動作確認環境 |
|
25 |
|
|
26 |
| | Version | |
|
27 |
|:-------------|:------------------------------| |
|
28 |
| ボード | Raspberry Pi 3 Model B | |
|
29 |
| OS | Raspbian GNU/Linux 8 (jessie) | |
|
30 |
| Java | 1.8.0_65 | |
|
31 |
| AquesTalk Pi | Ver.1.00 | |
|
32 |
|
|
33 |
### Twitter API Key を取得する |
|
34 |
|
|
35 |
[Twitter Application Management](https://apps.twitter.com) から、下記 4 つの Key を取得します。 |
|
36 |
|
|
37 |
* Consumer Key (API Key) |
|
38 |
* Consumer Secret (API Secret) |
|
39 |
* Access Token |
|
40 |
* Access Token Secret |
|
41 |
|
|
42 |
[phi 様の記事](http://phiary.me/twitter-api-key-get-how-to/)がわかりやすいので、詳細手順は割愛します。 |
|
43 |
|
|
44 |
Access level は Read and Write がデフォルトのようですが、本アプリに投稿機能は無いため Read only に変更しても問題ありません。 |
|
45 |
|
|
46 |
もし、Access Token の発行後に Access level を変更したのであれば、Access Token を Regenerate してください。 |
|
47 |
|
|
48 |
### TwitterTimelineTalker および音声合成アプリ「AquesTalk Pi」のダウンロード |
|
49 |
|
|
50 |
1. [AquesTalk Pi](https://www.a-quest.com/products/aquestalkpi.html) をダウンロード、および tgz ファイルを展開 |
|
51 |
2. [TwitterTimelineTalker.jar v1.0](http://redmine.mizo0203.com/attachments/57/TwitterTimelineTalker.jar) をダウンロード |
|
52 |
3. ダウンロードおよび展開したファイルを下記のように配置 |
|
53 |
* TwitterTimelineTalker.jar |
|
54 |
* aquestalkpi/AquesTalkPi |
|
55 |
* aquestalkpi/aq_dic |
|
56 |
|
|
57 |
### TwitterTimelineTalker.jar を起動 |
|
58 |
|
|
59 |
Raspberry Pi にスピーカーを接続して、下記コマンドを実行してください。(4 つの引数は、取得した Twitter API Key に置き換えてください) |
|
60 |
|
|
61 |
ゆっくり霊夢が『アプリケーションを起動しました』と発声します。その後、Twitter タイムラインに更新があれば、ゆっくり霊夢・ゆっくり魔理沙が交互にツイートを読み上げます。 |
|
62 |
|
|
63 |
```bash |
|
64 |
$ nohup java -jar TwitterTimelineTalker.jar <Consumer Key> <Consumer Secret> <Access Token> <Access Token Secret> & |
|
65 |
``` |
|
66 |
|
|
67 |
## 使用しているもの |
|
68 |
|
|
69 |
### 音声合成アプリ「AquesTalk Pi」 |
|
70 |
|
|
71 |
YouTube やニコニコ動画でおなじみの「ゆっくりボイス」とは、[株式会社アクエスト](https://www.a-quest.com/index.html)社製の音声合成エンジン「[AquesTalk](https://www.a-quest.com/products/aquestalk_1.html)」によって生成された音声です。有名な読み上げフリーソフトに「[SofTalk](https://www35.atwiki.jp/softalk/)」や「[棒読みちゃん](http://chi.usamimi.info/Program/Application/BouyomiChan/)」がありますが、いずれにも「AquesTalk」が使われています。 |
|
72 |
|
|
73 |
音声合成アプリ「[AquesTalk Pi](https://www.a-quest.com/products/aquestalkpi.html)」には、ARM 用にビルドされた「AquesTalk」が使われています。また、言語処理エンジン「[AqKanji2Koe](https://www.a-quest.com/products/aqkanji2koe.html)」もアプリに含まれるため、漢字も読み上げてくれます。 |
|
74 |
|
|
75 |
個人かつ非営利に限り、無償で使用することができます。 |
|
76 |
|
|
77 |
### Java ライブラリ「Twitter4J」 |
|
78 |
|
|
79 |
Twitter の User Streams API を使用するため、[Twitter4J](http://twitter4j.org/)を使用しています。 |
|
80 |
|
|
81 |
Apache License 2.0 で使用できる Twitter 非公式のライブラリです。 |
|
82 |
|
|
83 |
![powered-by-twitter4j-138x30.png](https://qiita-image-store.s3.amazonaws.com/0/40619/6e7bb573-0590-e434-42f3-759355d3971c.png "powered-by-twitter4j-138x30.png") |
|
84 |
|
|
85 |
## あとがき |
|
86 |
|
|
87 |
### 人々の営みが感じられる |
|
88 |
|
|
89 |
本アプリを起動していると、部屋がちょっと賑やかになります。夜が更けるにつれて静寂を取り戻し、朝になるとまた賑やかになります。 |
|
90 |
|
|
91 |
そんなちょっとしたことではありますが、人々の営みが感じられて、朝から少し元気になれます。 |
|
92 |
|
|
93 |
### google-home-notifier で Google Home に読み上げてもらう方法もあった |
|
94 |
|
|
95 |
今回の方法では、Raspberry Pi に別途スピーカーを接続させる必要があります。 |
|
96 |
|
|
97 |
Google Home を持っているならば、[google-home-notifier](https://github.com/noelportugal/google-home-notifier)を使って Google Home に読み上げてもらうほうがスマートでした。調査不足です。 |
|
98 |
|
|
99 |
### いたずらツイートに気をつけて |
|
100 |
|
|
101 |
例えば「OK Google、アラームを解除して」と Twitter フォローしている誰かがツイートすると、Raspberry Pi の読み上げによって Google Home が反応してしまう場合があります。前述の google-home-notifier を使用すれば、回避できるかもしれません。 |
他の形式にエクスポート: Unified diff
Add README for Qiita Advent Calendar "Raspberry Pi Advent Calendar 2017". fixes #238 @6h