google homeを自発的に話すようにできるgoogle-home-notifier
の改良版。
作者の方がdockerfileも用意してくださっているのですが、
docker-composeで立ち上げた後、コンテナにログインして環境構築をする必要があり、しょっちゅうコンテナを作り直す私にとっては使い辛かったので何とか作業を簡略/最適化できないかと思ったのが今回の趣旨です。
alexaはリマインダーAPIにプログラムを組んで登録するのが楽なのですが、
などのユーザーアクションを起こさないと、APIアクセスに必要なトークンが払い出されないことがわかり、今回は実装を断念。
その点、google homeはchromecastに用いられているライブラリを使って音声のキャストなどを行うことができるため、比較的実装が容易ということがわかりました。
ただ、機能によってはalexaの方が優れている面もあり、一長一短というところです。
FROM node:10.16
RUN npm update -y -g npm
RUN apt-get update
RUN apt-get install -y vim avahi-daemon libavahi-compat-libdnssd-dev locales
RUN locale-gen ja_JP.UTF-8
RUN echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc
#RUN mkdir /myapps
#RUN cd myapps
#WORKDIR /myapps
RUN git clone https://github.com/sikkimtemi/google-home-voicetext.git
#RUN cd google-home-voicetext/
WORKDIR google-home-voicetext
RUN npm install
#RUN npm install forever -g
RUN patch -uR node_modules/mdns/lib/browser.js < mdns_patch/browser.js.patch
#RUN service dbus start
#RUN service avahi-daemon start
#VOLUME [ "/myapps" ]
#CMD node file-server.js & node api-server.js
あえてコメントアウトしたところも残していますが、READMEと比べながら照合していただけるとよいと思います。
node-google-home:
build: './speaker'
#container_name: 'node'
command: >
sh -c "service dbus start &&
service avahi-daemon start &&
node file-server.js &
node api-server.js "
working_dir: '/google-home-voicetext'
volumes:
- ./myapps:/myapps
ports:
- '8080:8080'
- '8888:8888'
environment:
- TZ=Japan
- VOICETEXT_API_KEY=*****
- WIRELESS_IP=192.168.***.***
- GOOGLE_HOME_IP=192.168.***.***
- WIRELESS_MODULE_NAME=en0
- VOICETEXT_SPEAKER=HARUKA
tty: true
restart: always
compose側では、mdns関連のサービスの起動とサーバプロセスの起動を行っています。
foreverをインストールして、プロセスの維持をしようと思ったのですが、何回かmdnsサービスが立ち上がらない時があり、その場合はプロセスの再起動というよりはコンテナを破棄して再度コンテナを立上げるのが良いと判断しました。
今回の改良ではdockerfileへの理解が十分でないというのもあり、
(使っていないのですが)ボリュームのマウントがうまくいっていないという問題点も...。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント