5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

enebular_uhuruAdvent Calendar 2022

Day 2

LINEで投稿した内容をしゃべる装置を簡単に作る方法を紹介します

Last updated at Posted at 2022-12-02

2022年7月20日にenebularのエージェント実行環境の機能がリリースされました

image.png

これまで、enebularとデバイスをつなぐためには、AWS IoTの環境を準備する必要がありましたが、それが必要なくなりました。
enebularの無料アカウントでも、enebularとデバイスをつなぎ、遠隔でデバイスへのフローのデプロイやログの確認、リモートメンテナンスが利用できるようになりました。

詳しい機能は、以下のenebularブログを確認ください。

さらに!

2022年10月26日にクラウド実行環境とエージェント実行環境間の通信機能がリリースされました

これは、クラウド実行環境とエージェント実行環境の間で、相互にデータをやり取りできる機能です。
専用のノードを使い、送信先のIDをプロパティで指定するだけで、セキュアにクラウド実行環境からエージェント実行環境へ、エージェント実行環境からクラウド実行環境へと128KBまでのJSONデータが送れます。

設定とフローの作り方のイメージは以下のとおりです。

image.png

詳細な使い方は、enebularのドキュメントを確認ください

LINEで投稿した内容を しゃべる装置を簡単に 作る方法を紹介します

ここで、本題です。
今回は、紹介した2つの機能を使って、LINEbotに対して送った文章をそのまま喋ってくれるデバイスを作ってみました。

クラウド実行環境を使って、LINEbotが簡単に作れることは、以前の記事で書いたとおりです。

クラウド実行環境のフロー

LINEから受け取ったメッセージはそのまま返しているので、LINEbot上はオウム返しです。
エージェント実行環境へ送るノードにはLINEで受け取ったメッセージ部分をchangeノードで抽出し、入力しています。

image.png

[{"id":"8eb8ce522b2c37fb","type":"tab","label":"フロー 1","disabled":false,"info":"","env":[]},{"id":"8596b3c580bdc832","type":"ReplyMessage","z":"8eb8ce522b2c37fb","name":"","replyMessage":"","x":820,"y":280,"wires":[]},{"id":"4ef3f75ce070d72a","type":"LCDP-in","z":"8eb8ce522b2c37fb","name":"","x":430,"y":280,"wires":[["8596b3c580bdc832","10f6ed765b757d78"]]},{"id":"89a0fdc46be5f2da","type":"agent-ee-output","z":"8eb8ce522b2c37fb","name":"","destination":"","propertyType":"str","x":830,"y":180,"wires":[[]]},{"id":"5751c99149339c2a","type":"complete","z":"8eb8ce522b2c37fb","name":"","scope":["8596b3c580bdc832"],"uncaught":false,"x":630,"y":380,"wires":[["bc7087e8495a55d4"]]},{"id":"bc7087e8495a55d4","type":"LCDP-out","z":"8eb8ce522b2c37fb","name":"","x":790,"y":380,"wires":[]},{"id":"10f6ed765b757d78","type":"change","z":"8eb8ce522b2c37fb","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.events[0]message.text","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":180,"wires":[["89a0fdc46be5f2da"]]},{"id":"07c2421ea7ac5449","type":"comment","z":"8eb8ce522b2c37fb","name":"デバイスに送る","info":"","x":820,"y":140,"wires":[]},{"id":"d8a8aa533320e97c","type":"comment","z":"8eb8ce522b2c37fb","name":"LINEに返信","info":"","x":810,"y":240,"wires":[]}]

エージェント実行環境のフロー

フローは単純です。
メッセージの文字列から音声にするのは、AquesTalk Piを利用しています。
AquesTalk Piからダウンロードしたパッケージを展開しておきます。

tar -xzvf aquestalkpi-YYYYMMDD.tgz

*YYYYMMDDはダウンロードしたファイル名に合わせる

クラウド実行環境から受け取ったメッセージをexeノードに渡し、AquesTalk Piを実行するだけでしゃべります。

image.png

動作確認

無事、LINEで何かメッセージを送るとラズパイにつなげたスピーカーからメッセージが流れました。
(写真は、Raspberry Pi Zero2にReSpeaker HATを載せてスピーカーにつなげていますが、Raspberry Pi 4とかであれば、そのままイヤフォンジャックにスピーカーを繋げば良いと思います)
image.png

デバイス側からのアクションや音声もLINEで返せるようになるといろいろ活用できそうなので、さらにブラッシュアップしてみたいと思います。

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?