世界初。音声認識空気砲。
22世紀に間に合いました
デモンストレーション
概要
ドカンと話すだけで、充填された空気を放出します。
その空気でろうそくの火を消すことが出来ます。
4月1日ですが、12時公開なのでエイプリールフールネタではありません。
利用技術
動作環境
・ Raspberry Pi 3 Model B+
・音声認識モジュール Julius4.3.3
・モバイルバッテリー
・USBマイク
・サーボモータ
・ゴミ箱
・チップスターの筒
・風船(半分)
動作の流れ
1.ラズパイ起動
2.Juliusのモジュールモードが起動。
3.音声認識で「ドカン」を検知。
4.サーボモータでフックを外す
5.空気放出!
6.フックをもとに戻す(手動)
解説
きっかけ
ゲームセンターで、ふと「本当に打てる空気砲」というのが売っていたんですよね(´ω`)
こちらも手動で、音声は単に言うだけだったのですが、では音声認識させたら本物の空気砲が再現できるのでは無いか。と考えました。
空気砲の要素で大事なところを分解すると下記のような図になります。
1.音声認識APIで「ドカン」を検知
2.空気が出る
3.片手持ち
たったこれだけですね!
どちらかというと空気を出す方法について色々な施策があると思いますが、こちらはチップスターの筒ですでに完成形がありましたので、結局はこちらを採用いたしました。
風船といってもその力はかなり強いので、サーボモーターではフックを外すという役割だけを担ってもらい、風船を引っ張ってフックに取り付けは手動にしました。
いずれバージョンアップの際に電気的に連射が可能にするかもしれません。
また、空気の力を強くすればするほど、昨今で銃刀法違反にかるーく触れかねないので、ローソクの火程度にしています。(笑)
まとめ
苦労話
音声認識自体は下記記事を参考にしたので、(サーボモータの扱いも)だいぶ楽でした!
こちらで、自作の辞書を用意。
辞書ファイルは超シンプル
認識結果も上々です(´ω`)
vocaファイル
% DOKAN
ドカン d o k a n
% NS_B
[s] silB
% NS_E
[s] silE
grammarファイル
S : NS_B DOKAN NS_E
たったこれだけで自作辞書が生成出来ました\(^o^)/
小さめのマイクでしたのですが、これが意外とマイク音量が小さいのですよね。最大まで上げた上で大きい声であれば大丈夫です。
もう少し小声で打ちたい方はもう少し高性能なUSBマイクを利用しましょう。
やっぱり物理がきついですね。
威力が微妙かもしれませんが、内部に板を仕込んでソレノイドで打ち出す方法が、最も簡単かも。
威力を求めるとそれなりに筐体か電気的に負荷がかかるものも多いし、なにより捕まるリスクが高まりますのでこれくらいの威力でちょうどいいです。
子供が持てないと意味ないですしね(´ω`)
サーボモータの動作でもはコチラ。
ゴミ箱から外して動かしてみました。
参考サイトと配線が違ったり、結局pipでインストールしたりとちょっと苦労しました(ヽ´ω`)
こんなことを言っていましたが、インターネットに接続することなく、エッジデバイスだけでなんとかしました(笑)
通信待ちしていたら敵が逃げますしね(´ω`)ここはあえてエッジデバイスだけで完結させました。
デバイスに詳しい方が見れば、こうした方が強い!とか絶対言ってもらえると思いますが、発明というのは先進性も重要なので空気砲の基準を満たしたものをプロトタイプレベルですがいち早く発表させて頂きました。
音声認識で空気砲を完全再現は世界初ではないでしょうか(´ω`)
(やったね元祖を取りました)
エイプリルフールネタとして採用しましたが、技術的にはほぼ嘘ではないです。
「!建物ごと吹っ飛ばせます」というところだけ嘘。
ちゃんと「!」立ってますよね(・ω・)
吹っ飛ばせたら反作用で子供も吹っ飛びます(笑)
内部
くろにゃんこたんが大好きな養生テープがバリバリ使われています。
撮影用にラズパイとバッテリーを抜いてありますが、構造はほぼこれ。
実は空気を打ち出すところは超小さい!
絞ることによって空気を強めにしています。
持ちやすいようにゴミ箱の真ん中に突っ張り棒ミニサイズを入れてあります。
逆にこれだけスペースがあるので、もう少し小さいゴミ箱でも良かったかな(´ω`)
手に持っても、ろうそくの火が見やすいように、大口径でのぞき穴があります。
これで対象を狙いやすくしています。
今回使ったゴミ箱
珍しく100均以外での買い物でした。
2重構造になっていて、穴を開ける必要がなかったのでとても楽。
もし失敗したらゴミ箱にもなるというすぐれものです(´ω`)
ありそうで無かった空気砲。
こちらの記事で出来そうと思った方はぜひトライしてみてください(・ω・)ノ
トライしたら教えてくださいね!