プロジェクト

全般

プロフィール

« | » 

リビジョン 0ecad45b

みぞ @mizo0203 さんが6年以上前に追加

Add README for Qiita Advent Calendar "Raspberry Pi Advent Calendar 2017". fixes #238 @6h

差分を表示:

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