趣味のプログラム工房

Linux

スマホはGoogle Homeを超えた。androidスマホ+AutoVoice > Google Home

Google Homeの不満点
①ウェイクワード(ホットワード)が変更不可
 というか、めんどくさいし、かっこ悪い。
②ローカルデバイス(LAN内)との連携が不便。
 →eRemoteの操作ができない。
 →KODIとかDLNAとか、家電とか操作したい、、、
③オリジナルコマンドを追加したい
 →Actions on Googleを使えばできるけど、スマート家電とかローカルのデバイスを操作するのはやっぱり不便。

だが、androidスマホ+AutoVoiceとLinuxマシンを組み合わせれば、Google Homeを超えるガジェットになります。
まあ、ずっと言っていることではあるのですが。。。

我が家では、AutoVoice+Taskerを使って、スマホで拾った音声のテキストを全てLinuxマシンへ飛ばしています。
Taskerでは、逆に「OK,Google」はスルー(何もしない)して、それ以外のワードをLinuxマシンへ転送しています。
その理由としては、、Google Homeもたまに使うため、明示的にOK,Googleでつなげたコマンドのみ処理させたい為なのですが。
ウェイクワードの有無で動かすデバイスを使い分けることができます。


スマホで拾った音声をAutoVoiceで一番に処理させるため、
AutoVoiceにてControl ContinuousをONにする。(重要)

で、LinuxマシンとのインタフェースはHTTP。
Linux側でWEBサーバ(PHP)を立てて、拾ったテキストをPHPで解析してコマンドを実行しています。
・赤外線リモコン(eRemote)操作は「node broadlinkjs-rm」
・音楽を流す場合は、MPDをインストールしてMPCでローカルの音楽を再生
 →スマホから渡ってくるコマンドから「(.*)を再生して」、「(.*)の曲を再生して」などで曲のタイトルやアーティスト名を拾って、mpc searchコマンドで曲を検索して再生。
 (ポイントとして、、「プレイヤー(.*)を再生して」など、タイトルの区切りを分かりやすくするため、ウェイクワード的なのをつけたほうが良い)

と、こんな感じで、オリジナルのコマンドも作れるし、柔軟なことができるのでかなり気に入っています。
ちなみに、ここまでで、Google Homeは一切使っていない!
Androidスマホがあれば、家電のリモコン操作から音楽の再生までできちゃいます。

あと、「交通状況」というキーワードに対して、yahooの路線の運行情報のページから自分が使う路線状況を抜き出して実況させるとかしています。
この取得した情報を出力する際には、Google Homeを使って、音声で出しています。
これには、「google-home-notifier」というモジュールを使用しています。
こんな感じかな。

次の目標、、何ができるんだろう。


連携させるLinuxサーバにはやっぱりこれがおすすめ。
KODIで一台使っちゃってるから、自分ももう一個買おうかな。。。
この用途ならZEROでもいい気もしますが。

2018年01月08日


Google HomeでDLNA

Google HomeDLNAが使えない!!

正直予想外でした。

DLNAが使えれば、PCから音楽を飛ばしたりとかできるのに、、と思っていたのですが、使えないとは。
ただ、スマホのUPNPソフトの中にはレンダラーにGoogle Homeが見えてるのもあるんですよね。はて。

で、気が付いた。
これ、Chromecastと同じプロトコルじゃね?

というわけで、Castするプログラムで試したところ動いたので確定。
あとは、PCから音楽をCastすることができれば、
本来、Google Play Musicとかを使わないと、「デフォルトの音楽プロバイダが選択されていません。」と言われてしまうGoogle Homeですが、PCからCastすることで、任意の曲を再生することができるようになります。

まあ、これだけだと音声で操作ができないので、音声操作がしたければ、スマホのAutoVoice/Taskerで音声のテキストをPCに飛ばして操作とか、音声でPC内の楽曲を検索して再生させるなどの工夫がいりますが。

・・・あれ、これ、別にGoogle Homeで音鳴らす必要なくない??
という落ち。

ちなみに、LinuxからのCastはmkchromecastを使いました。

2017年12月30日


RHEL7でphp+mysql+phpMyAdmin

さて、RHEL7でphp+mysql+phpMyAdminで運用しようとしたらいろいろ躓いたのでメモ。

まず、RHEL7でmysqlを入れようと思ったのですが、、、あれ?
mysqlがインストールされない。
・・・どうも、mysqlの後継のMariadbに置き換わっているようです。
で、Mariadbうまく入らないので、mariadbのリポジトリを追加してインストールが必要みたい。

次にphpMyAdmin
これも、リポジトリからうまく入らなかったので、
wget https://files.phpmyadmin.net/phpMyAdmin/4.5.0.2/phpMyAdmin-4.5.0.2-all-languages.tar.gz
tar -xzvf phpMyAdmin-4.5.0.2-all-languages.tar.gz
cd phpMyAdmin-4.5.0.2-all-languages
でインストール。。。

したのはいいが、動かしてみたら、php5.5以上が必要と言われた。
RHEL7の標準は5.4
これについても、REMIのリポジトリを追加して
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install --enablerepo=rpmforge,remi,remi-php70 httpd php php-mbstring php-gd php-mysql
でインストール

思った以上にめんどくさかった。。。

ちなみに、php55(php5.5)ではインストールできなかった。






2017年08月20日


Kodi LibreELECを導入

最近、HDDレコーダー(REGZA DBR-W507)を購入したのですが、使い勝手は微妙だったので、自分でも作れないかと思い、「Kodi LibreELEC」を導入してみました。

Android TV→Kodi OpenELECときてようやく使えるのがあったという感じです。
OpenELECも同系統なはずなのですが、アドオンがうまくインストールできなかったので止めた。

Raspberry Pi用のイメージがあるので、動くまでは特に苦労することもありません。
あとは、目的である、HDDレコーダーの代わりとして、TVの録画、TV視聴ができるように、Chinachu/pt2が入っているサーバと接続用に、Harekaze/pvr.chinachuを導入しました。

というか、このために、Chinachu(KodiでTV視聴するためには、必要)を導入しました。
(epgrecからの乗り換えです。めんどくさかった)

Chinachuですが、安定したら結構いいですね。
WEBブラウザ経由でTV視聴できて、スマホからも見れますし。


さて、肝心のKodiですが、これも結構使いやすいです。
HDMI経由ならテレビのリモコンで操作できるのもいいです。
ただ、動画とか、音楽とかがライブラリに反映されない。。。
やり方が悪いのか、原因がよくわかんない。
なので、毎回ファイルサーバからディレクトリからファイルを選んで再生しています。

完成度的にもHDDレコーダー代わりに使えるレベルにはある気がします。
けど、導入のハードルはそれなりに高い。。。


USB接続ドングル型地上デジタルTVチューナー

Raspberry Pi3はいいですね。性能上がって使い道が広がった!
1世代は性能低いし、電源弱いし使い物にならなかったけど、3世代目は十分実用ですね。

2017年07月16日


Android TVを使ってみた

Raspberry Pi 3用にAndroid TVをインストールしてみました。
が、現時点では実用には程遠い感じ。

そりゃ、ネット上にほとんど情報がないわけだ、書くことがない。
使えないです。。

2017年07月16日


Ubuntuでmediatomb import.jpの利用

ホームサーバとしてUbuntu系のLinux Mintを使っていて、
DLNAサーバには、miniDLNAを使っているのですが、
動画の再生時に、スマホのDLNAソフト(プレイヤー)のプレイリスト機能を使って再生ができないので少々不便です。
というのも、動画を再生できるプレイヤーがなく、動画を再生する場合はDLNAプレイヤーではなく、一般的な外部の動画ソフトを使うため。
また、動画再生ソフトでの再生が終わってもDLNAソフト側に戻ってこないので、プレイリストを使った連続再生に難ありというわけです。

動画再生といっても、映像より、音声(音楽)再生がメインなので、連続再生は結構重要なのです。

そこで目を付けたのが、トランスコード機能、ファイルのインポートの設定のカスタマイズ機能があるmediatomb

というわけで、
mediatombをインストールして、config.xmlを編集します。
<map from="video/*" to="object.item.videoItem"/> ⇒
<map from="video/*" to="object.item.audioItem.musicTrack"/>

とりあえず、これ普通の動画ファイルはオーディオファイルとして再生されます。
が、flvはこれだけだとうまく再生されない。
あと、ファイルの分類上、動画ファイルとして分類されるため、
音楽ファイルと一緒のカテゴリで表示されない。
⇒PCフォルダで表示するときはいっぺんに表示されるが、画像ファイルも混ざるため、ディレクトリ単位で再生したいときに不便。
import.jsをいじることで、動画ファイルも、音楽ファイルと一緒のカテゴリとして登録することができる。。。。がUbuntu系ではjs機能がサポートされていない!
だったらと、ソースから落としてビルドを試みたが、、js機能を有効にするためのライブラリが入らない。
libjsがどうしてもインストールできず断念。
相当頑張れば行けると思う、、存在はしているのだが、自分でソースを見つけてきてビルドをすれば、libjsのインストールは絶対無理とは言いませんが、相当ハードルが高いと思われます。
少なくとも私は断念。

というわけで、タイトルのUbuntuでmediatomb import.jp半分断念です。
次回、その解決編へ。


この値段で富士通のサーバが買えるんですよね。。。


2017年04月01日


Linux MintでSoftether VPN

--前回までの話。
Linux MintにVirtualBoxをインストール
ゲストOSとして「Sophos XG Firewall」をインストール。
Sophos XG FirewallでVPNサーバを構成しようとしたが上手くいかず断念。


というわけで、ホストの方に「Softether VPN」を入れることにしました。
目的はOpenVPNによるandroidスマホからの接続です。
インストール手順は、、ここでは省略。
インストール後、Softether VPNの設定自体は、ManagerをインストールしたWindowsマシンから行います。


当初、ローカルブリッジの設定にて、「物理的な既存のLANカードとのブリッジ接続」を行っていたのですが、上手くいかず断念。
仮想NATとか、構成してみたのですがどうやってもうまくいかず。

その後、ローカルブリッジの設定を「新しいtapデバイスとのブリッジ接続」で構成し、やはり、仮想NATとかを構成したり試行錯誤したのですがやっぱり思うようにいかず。
うーん、、、
そのあと、参考にしたのが
http://www.jifu-labo.net/2015/11/softether_ubuntu/
ひょっとしてブリッジインタフェースにIPの設定が必要なのか?
ということで、「新しいtapデバイスとのブリッジ接続」で作成された仮想ブリッジに対しIPアドレスを設定してみました。(仮想ブリッジ名はifconfigで確認できます。)
すると、、、おっ!こいつ、、動くぞ!

「Softether VPN」側の設定としては、VPNのクライアント側は別セグメントのアドレスを割り当てているので、SecureNAT機能を有効にして、仮想DHCPサーバを設定。
ただし、NAT変換は不要なので、SecureNAT機能を有効にしつつも、設定としては仮想NATは無効。
デフォルトゲートウェイには、上記で設定した仮想ブリッジのアドレスを設定。
正解かはわかりませんが、今のところこれで正常に動いています。

2016年12月19日


CentoOS6 Sambaサーバでプチハマり

ごくごく普通に、CentoOS6でsambaをインストールして、設定、デーモンを起動してみたところ、、、上がらない。

ログを見ると、ポートが使用中とのこと、、、え?
bind failed on port 139 socket_addr = ::.
Error = アドレスは既に使用中です

「netstat -tanp」にて該当ポートを使用しているプロセスを調べたところ、
使用しているプロセスはJava

あ、うん。。。
思い浮かぶのはColdfusionとOracle DBですが、psコマンドでさらに追ってみると、犯人は、「alfresco」でした。

取り敢えず、該当のプロセスを止めて、samba再起動したら普通に上がりました。

2016年07月18日


Raspberry Pi3 + PIFI Digi(HifiBerry互換?)



Raspberry Pi3用の拡張ボードのPIFI Digi+とういう製品を約2000円ほどで購入(Aliexpress)
早速、家のDAC(DAC-X6J)に同軸デジタル(コアキシャル)で接続し、Volumioから鳴らしてみました。
I2SのドライバはHiFiberry Digiでok

うん。
普通に綺麗になりますが、USB経由でDAC鳴らしたとの違いはさっぱりわからない。
ハイレゾ音源なら違いが出るかと思い、通常の音源とハイレゾ音源の比較ができるサイトから両方の音源をダウンロードして聞き比べてみましたが、、、そもそもハイレゾと、普通の音源の違いがわからない。。。

というわけで、今の段階の私のスペックであれば、普通にUSBでDACにつなぐだけで十分でしたね。

ハードのスペック的には
DACがUSB接続では最大24bit 96KHzに対し、同軸デジタルでは最大24bit 192KHzなのでメリットはあるはずなのですが、、、

でもまあ、もうちょっと使ってみないとわかんないかな。
DACの時もしばらく使ってるうちに、ノイズが減って音も変わってきたし(良い方向へ)。




2016年07月10日


オーディオシステム完成(一応)

Raspberry pi 3が届いたのでようやくシステム一式がそろいました。

プレーヤー:Raspberry pi 3(ubuntu mate)
DAC:FX-AUDIO- DAC-X6J
アンプ:TPA3116D2の中華
という構成です。

Raspberry piとDACはUSB接続にしています。

以前、TPA3116D2のアップがイマイチと書いていましたが、
不思議と使っていくうちに質が上がってきている気がします。
ノイズも気にならなくなったし。

あと、アンプのマスターボリュームはある程度まで上げないと、
左右スピーカーのバランスが悪いですね。

そこまで聞き比べているわけではないので、完全な感覚ですが、
何となくちょっと音は固い感じがします。
シャープな音とでもいえばいいのか。

DACは結構綺麗に、解像度の高い音を出してくれてる気がしますが、
それがよりシャープになって出ている感じです。


うん、結構綺麗ですね。

全部で2万くらいないので、かなりコスパが高い構成ではないでしょうか。
というか、これ以上にコスパがいい構成ってある?


ハイパワーTPA3116D2 2.1ハイファイデジタルアンプアンプボード(クラスD)250W + 100W
2.1chのおすすめアンプ。
私もこのチップを使ってますが、、ケース付でこれはいいな

2016年06月26日


次へ