Help us understand the problem. What is going on with this article?

【MESH カスタムタグ】google home miniに好きな言葉をしゃべらせる

More than 1 year has passed since last update.

やりたいこと

MESHで気軽にTTS(Text to Speech)を使えるようにしたい

実行結果

動きタグを振るとGoogle Home Miniが入力したテキストをしゃべります。
名称未設定-2.jpg
動画のリンク:https://youtu.be/uFISjYJPvVQ

必要なもの

  • MESHアプリ対応スマートフォン
  • MESHタグ
  • MESH SDKのアカウント
  • Raspberry Piと(設定に必要なキーボード,SDカードなど)
  • Wifi環境
  • Google Home (Mini)

設定方法と実行方法

仕組み

システム構成図.png

Google Home MiniとRaspberry Piの設定

下記のリンクを参考にして設定してください。
GitHub - noelportugal/google-home-notifier
Google Homeで時報を知らせる
Twitterの通知をGoogle Homeに教えてもらう

MESH SDKのカスタムタグの設定

PC等のブラウザでMESH SDKを開き、新しいタグを作り下記のjsonコードをインポートしてください。その後、スマートフォン側のアプリにカスタムタグを追加してください。

mesh-googlehome.json
{"formatVersion":"1.0","tagData":{"name":"GoogleHomeSpeak","icon":"data:image/jpeg;base64,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","description":"","functions":[{"id":"function_0","name":"言葉を話す","connector":{"inputs":[{"label":""}],"outputs":[{"label":""}]},"properties":[{"name":"text","referenceName":"speakText","type":"string","defaultValue":"ここに入力してください"},{"name":"address","referenceName":"ipAddress","type":"string","defaultValue":"address"}],"extension":{"initialize":"","receive":"","execute":"var endPointURL = \"https://\" + properties.ipAddress + \".ngrok.io/google-home-notifier\";\n\najax ({\n    url : endPointURL,\n    type : 'post',\n    headers: {'Content-Type': 'application/x-www-form-urlencoded'},\n    timeout : 5000,\n\tdata:{text:properties.speakText},\n    success : function ( contents ) {\n\t\tlog('trigger success');\n        callbackSuccess( {\n            resultType : 'continue'\n        } );_\n    },\n    error : function ( request, errorMessage ) {\n        log('trigger : Network error');\n\t\tlog(endPointURL);\n\t\tlog('trigger  : ' + errorMessage);\n        callbackSuccess( {\n            resultType : 'continue'\n        } );\n    }\n});\n \nreturn {\n    resultType : 'pause'\n};","result":"return {\n    resultType : \"continue\"\n}\n"}}]}}

 

実行方法

スマートフォンでアプリを立ち上げて、トリガーとなるタグと追加したカスタムタグをつなげてください。
その後、下記の画像のようにtextの部分にしゃべらせたい言葉を入力し、addressの部分にRaspberry Pi側で実行中のサービスでxxxxxxxと表示されている部分を入力してください。
curl -X POST -d "text=Hello Google Home" https://xxxxxxx.ngrok.io/google-home-notifier
あとはトリガーが実行したら、Google Homeが入力されたテキストをしゃべります。

無題.png

感想

レスポンスもよく3-5秒後に喋ってくれるので、ラピッドプロトタイピングで音声フィードバックを検証するのに便利だと思いました。個人的には、addressのxxxxxxの生成される乱英数字を固定したかったのですが、ngrokのサブドメイン固定が月額で有料だったので諦めました。笑

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした