お久しぶりです
こんにちは、ぽんずです!
長らくブログをさぼってました。。。
書きたかったんですよ、ハイ。
でも家にも実機持って帰ってやってたら書く暇なくてwwww
とりあえず今日完成しました!!!
raspberrypiの電源を入れたとにスイッチを押すと会話ができるようになりました!
ちなみに「またね」と話しかけるとプログラムが終了します。
いやー長かった、3か月くらいかかった;-;
何回エラーでたかWWWW
プログラムにはGPIOでスイッチの制御を組み込ませているのですが
キーボード割り込みを書かないとエラーはきました。。。
IndentationError: unexpected unindent
こんなやつです、調べても英語のサイトしかないんですよね。。。
これそんなにマイナーなエラーなんですかね?
みんなもっとこれに引っかかってほしいです^-^
そのあとはアヒルちゃんを動かしてきちんと動作するのかみてました!
それできちんと動くことがわかったのでOS起動時に自動でプログラムが立ち上がるように設定
これさらっと動いてびっくりしましたw
動作確認もOK
あ、そうだ。あのですねpythonでwavを再生させたいんですけど
os.system(aplay 〇〇wav)でやっても動かなくて困りました。
なので()の中をApuesTalkPiで読ませるようにしたら警告音もどきができたので
とりあえずはそれを流すことにしました。
プロコン決勝にいけたら警告音のところは改善しようかな。。。
そして明日からはサーバと接続できるようにしたり、警告音を鳴らした後一定時間反応がなかったらメールをおくるというシステムを追加しようかと思います!
他にも今後はユーザ設定などを追加して個人専用に使えるものを作りたいです!
ではまた~~~~^
助けてアヒルちゃんとチームHelip me my duckの話。
はい!ぽんずです(`・ω・´)シ
今日の話は!
①制作チーム「Help Me My Duck」の紹介
②アプリ「助けてアヒルちゃん~お風呂に出動~」の概要.etc...
③意気込みや流れなど
の3つを話しまーす!
①制作チーム「Heip Me My Duck」とは…
横浜医療情報専門学校の現在(2018/2)3,4年生によるアプリ開発チームです。
前のチーム名(仮)読み仮名:かっこかり は外部のコンテストに出す際に紛らわしいということで変更になりました!気に入ってたんですけどね・・・うう
メンバーは3年生女子2人と4年生男子1人です。
先輩も巻き込んでのプロジェクトですが仲良くやっています!先輩から学ぶことは多かったのですが、あと数ヶ月で卒業してしまうので知識を吸収させてもらってから送り出したいですね!
ちょうどいいのでメンバーの特徴とかも紹介しましょう。
①上妻夏海 通称:ぽんず(医療IT科3年女子)
私です。よくブログを更新するのは私です!
話したり、文をつくるのがとても得意です!わからないことは検索して解決!やりたいことや気になることはまずやってみる!な行動力とチャレンジ精神と努力に極ぶりされたエネルギッシュ(自分でいうな)な学生です!現在就職活動中!
②長島夏穂 通称:かほ(医療IT科3年女子)
アヒルちゃんとの会話で動画に出演したKちゃんです。
現在診療情報管理師の試験にむけて猛勉強中、プログラミングの知識はそこまでない(失礼)けど学ぼうという姿勢がすごい子です。私とは特待生講座のときに仲良くなった出会えてよかったと思える友達。この子が支えてくれたからこそ今の私が輝けてる!そんな周りへの配慮を忘れないマネージャー的な存在です!この子も現在就職活動中!
④松下 庄悟 通称:五段先輩(医療IT科4年男子)
私(ぽんず)の部活(軽音)の先輩。
PHPをゴリ押ししてきますwwPHPならこの人に聞けばなんでもわかる!こうしたらいいんじゃない?などよくアドバイスをくれます。本当にITオタクで就職活動もさらっと終えてしまうエリート!サーバー周りの構築をやってくれています。卒業してしまうのでサーバー周りのこと教えていただいてから送り出したいです!
この4人でアプリ開発がんばります!
次は助けてアヒルちゃん!の概要?です。
そもそも概要ってよくわかないんで流れみたいなのとか紹介。
助けてアヒルちゃん!は在宅介護支援システム、ロボットです。
在宅介護支援といってもお風呂で使うもので、一人暮らしのおじいちゃん、おばあちゃんに安心してお風呂に入ってもらいたいとおもい考えました。
内容としては、お風呂に入ってるときアヒルちゃんと楽しくおしゃべりしてもらうことにより、睡眠による溺死を0に近づけよう!というもの。近年お風呂での溺死は問題化されていて、ツイッターなどでも話題に上がるほど有名な問題になってきています。
このアヒルちゃんはラズベリーパイで動いており。
中のプログラムには対話と音声合成など入っており、おじいちゃん、おばあちゃんが話さなくなってしまったら、何度か呼びかける、それでも反応がない!ブザーで起こしましょう!それでも反応がなかったら危険と判断し、メールで家族やケアマネジャーさんに通知を送るというものです。
流れとしてはこんな感じ
お風呂に入る
↓
アヒルちゃんのスイッチを押しおしゃべりスタート!
↓
おじいちゃんがしゃべらなくなってしまった!
↓何度か声をかける
それでも何も言わない!
↓警告音で起こすことを試みる!
それでも何もない!!!!
↓危険!と判断家族やケアマネジャーにメールを送る
家族が電話をかけたり、ケアマネジャーさんが自宅に訪問したりする。
↓おじいちゃん起きる!
おじいちゃん助かる!
という感じです。
このラズベリーパイはサーバと無線で通信ができるようになっていて、家族などがサーバでメールアドレスやパスワードなどを設定できるようにします。
ラズベリーパイが水没しないようにお風呂のどこかに固定させ、水が少量かかっても大丈夫なように防水加工をします。
電源供給は現在はモバイルバッテリーをアヒルちゃんのお腹に仕込み電源を供給しています。モバイルバッテリーは非接触の充電スポットで充電できます。
最近では横浜青年会議所の方のおかげで実証実験もすることができました!
実際に使ってもらって改善点もありましたが、何よりも必要とされているシステムなんだと再認識することができました。中には明日は持ってきてくれないの?と寂しそうにされる方もいらっしゃり一刻も早く製品化しなければ!と思いました。
今後は総務省共催のIoT Aword 2017の全国大会に出場を控え、企業の方と製品化できないかの話し合いなどを中心に活動していきます。少しでも興味を持ってくださった方などいらっしゃいましたらコメントや学校にご連絡ください。私たちも興味をもってくれている人にアヒルちゃんの良さをたくさん伝えたいです!
ーーーーーーーーーーーーー以下1年次に投稿した内容ーーーーーーーーーーーーーー
過去に私たちが書いたことです。よければみてください。何も知識のなかった学生は自分たちでここまで成長することができるんです!
ちなみに今日はこんな感じで
黒板をつかって流れのおさらいをしました。
それと動画を静かなところで取り直したのでよければ見てください!
ちょっとね、もうすこしね、うん。いいたいことはたくさんあるぞ!!!
もっと会話らしいことしたい!!!!すぐでなくていいからDocomoのシナリオ対話をそのうち試したいなぁ・。・
月曜日のやること!
・カウントアップで3分間に3回特定の言葉をアヒルが発したらループを抜ける。
・時間があればスイッチ設置も
ではまた~~~!
命令文を何回も入れずにループがしたいっ!(?)
こんばんわ(20:30)
昨日に引き続きラズベリーパイもといアヒルちゃんの飼い主のぽんずです(`・ω・´)
3/3は昨日宣言した通り
①対話しているところをムービーに残す。
②対話を命令文一回で繰り返しできるようにする。
③マイク入力がなかったら命令文を止める(抜ける?)
をやりました。
午前中はwhile文で対話をループさせて反応がなくなったらブレイクで抜けるために
普通のwhile文を作るのと、こんな感じかなぁってのを図にしてみました。
☝これがループの命令文で
☝これが結果です。
breakをどこに書くかでかなり時間を使ってしましました。
for文でのbreakのやり方は結構書いてくれてる人が多かったのですが。
while文でbreakを使っていて尚且カウントダウンのやり方を載せてるひとはいませんでした。(カウントアップの人はいた)
なのでカウントアップの文を書いてるのをみてちまちま変えたところきちんとカウントダウンしてループを抜けてくれました。
お昼休みの空いた時間にムービーを撮りました。
まだループの文を組み込ませてないので命令文1つにつき会話1回分となってます。
元々は何秒録音するかも設定できたのですが、書き換えてすべて入力しなくても5秒になるようにしました↓
こう!した!↓
録音時間ってコメントで書いてあるからわかりやすい。
ここを10秒とかにするとかなり長くしゃべっても大丈夫なんだろうけど
果たしてそれに対してDocomo雑談APIは反応してくれるのか。。。
それはまた今度やるとして
↓↓↓撮ったムービーがこちら↓↓↓(クラスの人の関係ない声が入ってます)
☝この時点では命令1つに対して会話1回分です。
1回目
Kちゃん「こんにちわ」
アヒルちゃん「あー、こんにちわ」
2回目
Kちゃん「なんで関西弁なの?」
アヒルちゃん「関西弁を耳にすると、なぜか漫才を聞いている気分になるんやな」
という内容。
なぜかわからないけどこのアヒルちゃん関西弁です。このままではなんか変に面白いのでのちのちなんとかしますw
っていうより不愛想ですね!あーこんにちわってひどいw
そこらへんものちのち変えたい;-;
そして撮り終わったので午後は今日の本命のループを組み込ませる作業に入りました。
午前中に書いたループ構文をif文近くに組み込ませました
赤い矢印がループのためにいれたところ
今書いてて気づきましたが i -= 1をしていないのでループは抜けないで
永遠にループしちゃいますねw
でも、対象の人物がしゃべらなく音声が取れなかったときカウントダウンをするので
現状ではまだなくても大丈夫かな?明日カウントダウンしてループを抜けたいです…
↓↓↓↓動画はこちらになります↓↓↓
今回もKちゃんに話しかけてもらいました。
命令文1つで2会話できてます!!!すげぇ!!!感動したまじで飛び跳ねました
ただ2会話目でなんかガンガンしゃべられたので切りましたww
ようしゃべるなこいつって後ろでわらっちゃったwwwww
ちなみにモニターに映ってたものはこんな感じ
(動画撮る前にSSしたものですので内容は違います)
アヒルちゃんところどころ聞き間違えすごくするんですよ。。。
2個目は絶句して話しかけてなかったらクラスの声に反応されましたw
感度調整もしなければいけません;-;
ってか神奈川県ですからテレビが好き?って聞くのおかしいだろ!!!
なんかもっと雑談会話続けられないのかな…
これをみてるラズベリーパイマスターのコメント待ってます。
そんなこんなで1日が終わりました。
モンスターエナジーを飲んだおかげで眠くなかった反動が電車で来ましたww
明日のやること
①こちらからの応答が3回なかったらループ抜けをbreak文か何かでさせる。
②お風呂での溺死事故の割合をまとめる。
③スイッチを押したら命令文が書き込まれるようにする
(④もう一度(偶数回)スイッチを押したら強制的に終わらせる)
をやれたらいいなぁと思います。
①②は必須かなぁ?③もできるといいなぁと思っているんですけど電子工作わかんないんだよなぁ前にLEDはやったけど;-;
ブレッドボードのおさらいからやり直しかな…
土日に時間があったら助けてアヒルちゃんの流れをもう一度おさらいしようかな・。・
変更点とかたくさんあるし;-;
ではまた明日(`・ω・´)シ
1週間の成果
はじめまして、いつもはチームの別の子にブログは投げてラズベリーパイと格闘してるぽんずです。
今日は内容がかなり濃くなるので私がブログに書き込みましたヾ(●´∀`*●)ノ
2/25にDocomo雑談APIが動かないと苦戦してから1週間...
ブログ更新を忘れるくらいラズベリーパイと格闘してました;-;
熱心に取り組んだおかげでかなり進んだので1週間の出来事を報告します。
2/26
こんな感じで書いてみたら~?↓
こんなことに!WWW↓
「エラー吐いてますやん...モオオオオオオオオオ」
エラー内容はリクエストエラー(JSONの問題)とのことで
書き換えてみたところ↓
成功!!!↓
「オォ!!!なんていってるんだ!?!?」
よくわかんないけど返ってきてる!すごい!という感想しかでてこなかったので。アドバイスをくれた先輩に聞いてみるとJSONのまま返ってきてる?とかなんとか(よく覚えてない)
そんなこんなで土日を挟み
2/29
JSONでそのまま返ってきちゃったなら形を直せばいいのでは?
そこでこちらのサイトを参考にさせていただきました。
簡単にできる!音声認識と音声合成を使ってRaspberrypiと会話 - Qiita
ここの雑談APIのプログラムの一番したのこれ↓
これを一番下にいれてみると?
「シャベッタアアアアアアアアアア!!!!!」
感動しました。こんにちはと言ったらこんばんわと返ってきました。
ちょっと変だけど気にしないそれはまた今度!ってなわけで次に進みました。
先ほどのこちらのブログのとおり進めてみると音声認識APIをためして難なくクリア
次はpyaudioで録音するということなのでインストール
ここから私はまったく意味のないことをしました。
これをみた私。viで書き込み保存しました。
これ動作確認してるだけでつくらなくてよかったんですね!
この2日後に気づきました!!
書き込み保存してても支障はないので録音はできました。
気づかないまま次へ進みます。
AquesTalkで合成音声をやろう!
あれ?これやったことあるよね?
ためしにもう一度やりました。動きました。
「よかったやっといて...」
そして最終段階
!!!!対話!!!!!
とりあえずプログラムが乗っているので
APIkeyだけ変えて書いてみる。
ここで気づく#ってコメントだよね?いらないよね?
これ消しましたWWWWW
たぶん初心者じゃない人はわかるはずですよね。
これ消しちゃだめなんですね...
怒られました。エンコード指定しろって感じです?
言われて気づいて書き直しました。
動いた!!!レコードの時間を決めろといわれたので3秒に設定
しかしまたやらかしました。
$ sudo python dialogue_test.pyで動かしてない。sudoが抜けてるw
ちなみにしたのやつは時間入力しないでエンター押しました・・・
6時間目が終わり集中力がきれたので帰宅。
3/1
昨日はsudoを書き忘れたから書こう!
テキスト変換されてる!!!
でもわたしは「おはよう、元気?」って聞いたんだけど!ちょっともごもごしゃべったせいですかね;-;
テキスト変換はされてるけど雑談APIが叩けてない・・・
理由はエンコードとデコードのときにエラーが起きてるらしい。
UTF-8に変換できてない?のかな?もう全然ggってもでてこなくて挙句の果てに英語で書いてあるサイトに飛びました。
2時間ぐらいサイトをみて格闘したのですが、ふと言語設定ってちゃんとできたっけ?と思い出してみてみると
ja.UTF-0
ん????????????0?????????
OSがちゃんと入ってなかったんですかね。。。
理由はわからないけどこいつのせいだということにして
3/2
B+を貸してくれてた先生が仕事で使うそうなので返さなきゃいけないのもあってちょうどよかった。
1からOS(らずびあん)を入れなおして、言語設定をみてみると
ちゃんといましたUTF-8ちゃん。よかったよかった。
そして対話に必要なもの全部入れなおして書き直したら
おおおおおおおおおお!!!!!かえってきたああああ!!
でも音声になってないいいいいい
喜びと悲しみが入り混じる。ツライ
もう一度ほぼほぼ使わせてもらったプログラムを確認しました。
これを上から下まで舐めまわすように見てて気づいたんです。
エラーって44行目で起きてるけどこれってAquesTalkpiの設定じゃん。aplayの後ろって設定してから動かしたらどうなるの?
とりあえずやったことのある。
aplay -Dhw:1,0
に変更。
すると動きました!!!!!
SSとるの忘れました!!!!!
はじめて自分で1から考えて問題解決ができた!
先輩の手も先生の手も借りなかった!!うれしい!たのしい!
プログラムってたのしい!!って本当に思えた瞬間でした。
満面の笑みで帰宅。
明日やること。
①対話しているところをムービーに残す。
②対話を命令文一回で繰り返しできるようにする。
③マイク入力がなかったら命令文を止める(抜ける?)
をやりたいと思います。
現時点ではループで命令を繰り返して、マイク入力がなくなったらループを外れるのが一番綺麗にできるのかぁと思ってます!
明日、明後日で③までできるようにがんばります!
ではまたv(o´∀`o)v
行ってきました!
昨日は
訪問介護の方々に時間をいただき
お話を聞きに行ってきました!
http://1dayservice.info/109kanagaw/10468473344.ph
お話をして
ブザーをつけるという案をいただきました
アヒルちゃんの言葉に返答がなかった場合
すぐに家族のかたやケアーマネージャの方に連絡をするのではなく
寝ている可能性もあるのでブザーをならし音をだす
ブザーも段階をわけそれでも返答がなかった場合
連絡がいくようにしてみようかなと考えています
訪問した相手の方々もとても興味をもってくださり
専門の方から見た意見も聞くことができました
ありがとうございます!
そして今日は
docomoの雑談APIを動かそうと思いやりましたが
うまくいきませんでした(´・ω・)
なので明日も引き続き行いたいと思います!!
ではまた明日(*´▽`*)