趣味のプログラム工房

2017年11月

【KODI】テレビを音声操作 概要

我が家では、KODI+chinachuの組み合わせで、スマートテレビ?
まあ、何でもできるテレビ化しております。
音楽再生できるし、録画もできるし、WEBやスマートフォン、普通のテレビのリモコンから操作もできるし。

さて、最近Google Homeなんかも出てきていますが、このテレビ KODIが音声操作できれば面白いのではないかと思った次第。

というわけで、数時間かけて(意外と簡単)、音声操作システムを作りました。これで我が家もスマートホームです。



Google NowとTasker + AutoVoiceはandroidの音声操作においては比較的ポピュラーな組み合わせのようです。

今回はこれを利用し、
①Androidで音声を認識(Google Now)
②音声が登録済みのコマンドと一致したら、登録しているタスクを実行
 (Tasker + AutoVoice)
③登録済みのタスクとして、Linuxサーバに登録してあるコマンドを実行するためのPOSTを実行(Tasker + AutoVoice)
④LinuxサーバでPOST(phpへのアクセス)を受け取り、それに基づいたphpスクリプト→Pythonを実行
 ・KODIへのインターフェースとして、texturecache.pyを利用
 ・LinuxサーバにはWEBサーバ、pho、Pythonをインストール済み
 ・WEBをインタフェースとして、php→Pythonを実行
⑤KODIを操作するPythonスクリプトtexturecache.pyを実行
⑥テレビが操作できてめでたしめでたし

という具合です。

texturecache.pyのマニュアルは完全に英語(ネット上にも日本語の情報は一つもなし)
Tasker + AutoVoiceも英語(ネット上にもあまり情報なし)

言語の壁のせいで意外と苦労しました。。。
でも、ほぼそれだけ。楽勝ですね!

次回以降で詳細説明予定

ちなみに、Kodiはraspberry piを利用。
Amazon Echoとか、最近はAIスピーカーキットとかも出ているようですが、お金がかかるので、無償で実現できる方法として。(Taskerに数百円かかるのは無視)
スマホを利用することが肝ですね。



2017年11月02日


【KODI】テレビを音声操作 詳細

Kodi自体には音声で操作するインタフェースはもちろんありませんが、
androidのスマホを使いGoogle NowとTasker + AutoVoiceを組み合わせることで、Kodiを操作するためのコマンドラインを実行することができます。
とは言っても、androidからKodiへ直接コマンドを投げるのはちょっと難易度が高いので、間にLinuxのWebサーバを立てるのですが、、、

今回はandroidのスマホを使いGoogle NowとTasker + AutoVoiceでWEBサーバへPOSTを投げ、そのPOSTを受け、Webサーバ側でKodiへのコマンドを実行するという処理方式です。
で、問題のWEBサーバからKodiへのコマンドには、texturecache.pyを使います。

texturecache.pyの使い方は、
まず、Pythonは必須なのですが、必要なのはそれだけ。
あとは、同一フォルダにある「texturecache.cfg」という設定ファイルの設定を行います。
といっても、KodiのIPアドレスくらいなのですが。

肝心の、Kodiの使い方。
chinachu+harukazeのテレビを再生する場合、
./texturecache.py play pvr://channels/tv/全チャンネル/pvr.chinachu_1072.pvr
こんな感じ。
「1072」はSIDが入ります。1072だとテレビ東京ですね。
停止の場合は、「stop」のコマンド。
番組を切り替える際は、新しいチャンネルを投げる前に、stopで停止しておいたほうがよさそうです。

我が家のテレビは古いため、結構動作が遅い。
テレビつけて、番組表出して、チャンネル選んで、、、とするのに割とストレス。
これが、Kodi上で操作できるのはちょっと便利かも。
もう、テレビにチューナーなくても致命的に困らないかも。



2017年11月05日