LoginSignup
2
2

More than 1 year has passed since last update.

PythonとHTTPでGoogleHomeに好きな言葉をしゃべらせる!(追記:しゃべった)

Last updated at Posted at 2019-10-15

一番使いやすい方法かと・・

RaspberryPiとかPythonとかを使って
GoogleHome(Chromecastデバイス)をしゃべらせる系の記事を色々調べました。

別途サーバー立てる必要なし!
コード中でサーバー運用する

事前にmp3ファイルを準備する必要なし!

そ(HTTPリクエスト)の都度、
mp3ファイルを生成 ➡ 時間がたったら削除
してくれる

環境

Windows 10 Pro
Anaconda 3
Python 3.7
Visual Studio Code

目的

Gist (SlashNephy様) からソースコードをコピーしてきて
Google Homeをしゃべらせよう!という試み。

現状

やったこと

  • Anacondaで仮想環境構築
  • 構築した仮想環境で pip install flask gtts pychromecast
  • スクリプト走らせる
  • FirefoxからURLにアクセス

結果

  • Google Homeが「ジュルン♪」っていう(GoogleHomeのIPアドレスは合ってるね。)
  • キャッシュにmp3ファイルを生成(プレーヤーで再生可能)
  • mp3ファイルがGoogle Homeから再生されない

原因の究明活動

問題:mp3ファイルがGoogle Homeから再生されない

サーバーのアクセスログを確認
コメント 2019-10-15 224711.png

mp3ファイルは生成されている
messageImage_1571145678863.jpg

ブラウザからmp3ファイルにアクセスしようとすると、404。
※キャッシュ削除前に試行
messageImage_1571145617278.jpg

この前はしゃべってたんだよなぁ~

おっかしいなぁ~~~
仮想環境なんか変えたっけ・・?

追記:なんかしゃべった

コードの18行目のdeviceの設定変えた。

device = pychromecast.Chromecast(ip_address)

.
もともとのコードがなぜ

device = next(x for x in pychromecast.get_chromecasts() if x.host == ip_address)

となっているのだろう?

私の環境だとエラーになってしまう。

IPアドレス特定して使用するのが前提なのだから、
if文の条件が真になるまでfor文の処理を行う必要はあるのだろうか?
(ifとforの処理内容も完全に理解してない)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2