Giter Site home page Giter Site logo

mizo0203 / timeline-yukkuri-talker Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 0.0 28 KB

Raspberry Pi でゆっくり達に Twitter タイムラインを読み上げてもらう

Home Page: https://mizo0203.com/projects/timeline-yukkuri-talker

License: Apache License 2.0

Java 100.00%
twitter4j raspberry-pi aquestalk-pi aquestalk twitter twitter-bot

timeline-yukkuri-talker's Introduction

Twitter タイムラインだけでなく Mastodon タイムラインの読み上げにも対応したバージョンがあります。


Raspberry Pi でゆっくり達に Twitter タイムラインを読み上げてもらう

背景・動機

私事ですが、先日 Google Home を購入しました。早速、Google Home と Twitter を IFTTT 連携させ、音声操作によるツイートをしばらく楽しんでいました。しかし、ツイート後のタイムラインの様子を確認するため、結局スマートフォンを手に取ってしまいます。

タイムラインも音声で確認したいと思い、Google Home にタイムラインを読み上げてもらおうと考えたのですが、本稿執筆時点では IFTTT で Twitter をトリガーに指定できても Google Assistant をアクションに指定することはできません。

そこで、Google Home での読み上げを諦め、Raspberry Pi に読み上げてもらおうと本アプリを作りました。

※ あとがきで後述する通り、ここで Google Home での読み上げを断念するのは早計でした。

作ったもの

TimelineYukkuriTalker.jar

Raspberry Pi 上で、ゆっくり霊夢・ゆっくり魔理沙が交互に Twitter タイムラインを読み上げてくれます。

古いバージョン

  • TwitterTimelineTalker.jar v1.0 - アプリケーション
    • 2018/08/16 廃止予定の User Streams API を使用してタイムラインを取得しているため、使用不可

使い方

動作確認環境

Version
ボード Raspberry Pi 3 Model B
OS Raspbian GNU/Linux 9.4 (stretch)
Java OpenJDK 9-Raspbian
AquesTalk Pi Ver.1.00

Twitter API Key を取得する

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 してください。

TimelineYukkuriTalker および音声合成アプリ「AquesTalk Pi」のダウンロード

  1. AquesTalk Pi をダウンロード、および tgz ファイルを展開
  2. TimelineYukkuriTalker.jar から最新バージョンをダウンロード
  3. ダウンロードおよび展開したファイルを下記のように配置
    • TimelineYukkuriTalker.jar
    • aquestalkpi/AquesTalkPi
    • aquestalkpi/aq_dic

TimelineYukkuriTalker.jar を起動

Raspberry Pi にスピーカーを接続して、下記コマンドを実行してください。(4 つの引数は、取得した Twitter API Key に置き換えてください)

ゆっくり霊夢が『アプリケーションを起動しました』と発声します。その後、Twitter タイムラインに更新があれば、ゆっくり霊夢・ゆっくり魔理沙が交互にツイートを読み上げます。

$ nohup java -jar TimelineYukkuriTalker.jar <Consumer Key> <Consumer Secret> <Access Token> <Access Token Secret> &

使用しているもの

音声合成アプリ「AquesTalk Pi」

YouTube やニコニコ動画でおなじみの「ゆっくりボイス」とは、株式会社アクエスト社製の音声合成エンジン「AquesTalk」によって生成された音声です。有名な読み上げフリーソフトに「SofTalk」や「棒読みちゃん」がありますが、いずれにも「AquesTalk」が使われています。

音声合成アプリ「AquesTalk Pi」には、ARM 用にビルドされた「AquesTalk」が使われています。また、言語処理エンジン「AqKanji2Koe」もアプリに含まれるため、漢字も読み上げてくれます。

個人かつ非営利に限り、無償で使用することができます。

Java ライブラリ「Twitter4J」

Twitter の User Streams API を使用するため、

Twitter の statuses/home_timeline API を使用するため、Twitter4Jを使用しています。

Apache License 2.0 で使用できる Twitter 非公式のライブラリです。

User Streams API は 2018/08/16 廃止予定1のため、
v1.1 にてタイムライン取得方法を User Streams API から statuses/home_timeline API へ置き換えました。

powered-by-twitter4j-138x30.png

あとがき

人々の営みが感じられる

本アプリを起動していると、部屋がちょっと賑やかになります。夜が更けるにつれて静寂を取り戻し、朝になるとまた賑やかになります。

そんなちょっとしたことではありますが、人々の営みが感じられて、朝から少し元気になれます。

google-home-notifier で Google Home に読み上げてもらう方法もあった

今回の方法では、Raspberry Pi に別途スピーカーを接続させる必要があります。

Google Home を持っているならば、google-home-notifierを使って Google Home に読み上げてもらうほうがスマートでした。調査不足です。

いたずらツイートに気をつけて

例えば「OK Google、アラームを解除して」と Twitter フォローしている誰かがツイートすると、Raspberry Pi の読み上げによって Google Home が反応してしまう場合があります。前述の google-home-notifier を使用すれば、回避できるかもしれません。

Footnotes

  1. https://blog.twitter.com/developer/en_us/topics/tools/2018/enabling-all-developers-to-build-on-the-account-activity-api.html

timeline-yukkuri-talker's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.