簡単な自己紹介
はじめましてへっぽこプログラマーのババです。2年ほどRailsエンジニアの仕事をちょろっと経験した後に、頭が悪いためやっぱり個人でゆるゆる開発したいと思い退職し子ども部屋おじさんに戻りました。
それでは子ども部屋おじさんに戻ってまで何を作りたいかと言えば、重度障害者用のコミュニケーションロボットなわけです。
ロボットに相手をしてもらいたい
なんでまたそんなソーシャルグッドなものをと言われそうですが、まぁシンプルに身内に言葉も使えず家族の介助がないと、何一つ生活ができない兄妹のためです。
取り立て家族思いとかそういうわけではないのですが、周りに家族がいない場合、ただテレビを見ている生活はあまりにもつまらないだろうと思い、相手をしてもらえるロボットを作ってみようと考えています。
とりあえず簡単なモノから作ります
とはいうものの対して開発経験もないし、頭も悪いし、集中力もないし、根気もないし、金もないの無い無いずくしない愛嬌だけが取り柄の人間です。
システム構成とか、先にいろいろ考えて開発するなんて到底できません。そのため、まずは何も考えず、最低機能からステップバイステップで開発していこうと思っています。
ということでとりあえずここ最近やっと手を動かしたこと
というRaspberry piを使って簡単な会話BOTを作ろうと思いました。
まず考えたのは以下の機能で考えました。
- スピーカから音を出す。
- 文字ベースでGPTのチャットボットを作成する。
- 文字入力に対して音声で返答する。
- 文字入力を音声入力に変更する。
一応現状は3番まで一旦作り終えました。ただOpenJtlakで初音ミクの声でしゃべらせたのですが、ちょっと遅くってカタコトの中国人みたいになってしまったので、Voice boxかGoogle TTSで作り直そうと思っています。
とりあえずここまでの開発記録
開発記録といいましたが、ほぼ参考記事を見ながら作っているので、まずは忘備録的に参考記事のみ記載していきます。
ステップ1 ラズパイのセットアップ
これはいろんな人が記事を書いてくれているから助かります。
ラズパイからスピーカー経由で音声再生
スピーカーからの音声再生を以下の記事を参考にして実装しました。
スピーカーは昔にかった100均かAmazonで購入したやっすいジャック付きのスピーカーです。
一応こだわった点は、再生ファイルにはっぴいえんどのしんしんしんって曲をwavファイルで再生したことです(厳密にいうとキセルがカバーしたバージョンです、どっちでもいいですよね(*´Д`))
Raspberry Pi と Python を使ったブラウザ設定【目覚まし時計】
GPTのチャットボット
無事、この寒い季節にちょうどよい音楽ながれたので、次のフェーズに移ります。
さぁチャットボットを開発するぞ!ということですが、またまたちょうど良い記事がありました。
もうまるパクリです。
PythonでGPT-4 Turboを使用したシンプルな対話型AIチャットボットの構築
音声でチャットの応答結果を再生
さてここまでの段階で、ゆうに5日くらい経過してます。振り返ると、秒で終わりそうなのに、ラズパイセットアップしたり、部屋のガジェットを整理したり、ウクレレ引いたり、友達と飲んでいたら、あっという間でした。
どうやら開発における最大の障害は、僕の心のやばいやつなのかもしれません。
それはさておき音声再生は以下の記事を参考にしました。
上記記事を参考にまずはラズパイでOpenJtalkでテキストを再生できるようにしました。
そこでふとOpenJtalkに初音ミクの音声で喋らせている人がいましたので、そちらを参考にしました。
Open JTalkで初音ミクの声でおしゃべりさせる on Mac/Linux/Raspberry Pi
ただこの記事にのっている初音ミクの音響モデルをhtsvoiceへ変換するプログラムのオリジナルのリンク先が無くなっていたので、以下の記事を参考に変換プログラムをゲットしました。
テキストto音声まで完成( `ー´)ノ
とまぁこんな感じですが、実際ラズパイ4で動かしてみると、音響モデルの処理がめっちゃ遅い、カタコトの中国人みたいな喋りになってしまいました。。。
これはちょっと改善しないといけないです。
Google TTSの利用か、Voice Boxをwindowsで動かしてAPIで利用する方向のどちらかを検討しています。
まぁ拙者の性質上、なかなか迅速に行動できないので引き続き開発しようと思っています。