キタロボに喋らせたい。
高木です。おはようございます。
先日から馬詰が書いている「キタロボ」について、私もコメントしてみたいと思います。
こういう話題は面白いですね。
社内では「キタロボ」で通っているこのロボット、実は市販品でピッコロボIoTという商品です。
このピッコロボIoTにはV-duinoというマイコンボードが(後頭部に)搭載されます。
V-duinoのCPUはESP-WROOM-02とのことですが、メモリ容量さえちょっと調べただけではわかりませんでした。
まあ、32ビットマイコンということなので、ATmega328のようにRAMが2kバイトしかないようなことはないでしょう。
実は、このキタロボに喋らせようと考えています。
それも、どこか違う場所で喋るのではなく、このキタロボ自体にスピーカーを搭載して喋らせたいのです。
まずは、何とかして音声合成しないといけません。
秋月電子通商でATmega328互換の音声合成ICが売っているようです。
これを購入して、水晶発振子などの最小限の回路とスピーカーをつなげれば、喋らせることができそうです。
このように書くと簡単そうですが、いろいろ課題はあります。
スピーカーはそんなに大きなものを付けられそうにありません。
できればキタロボの頭部に埋め込みたいですからね。
アンプ基板が入るかどうかもわからないので、原始的ですがトランジスタで増幅するしかない気がします。
この辺りは試行錯誤が必要になると思います。
もうひとつ、先ほどの音声合成ICには、ローマ字で喋らせる言葉を送ってあげる必要があります。
このローマ字列は、最初からキタロボに持たせておいてもいいのですが、外部からWi-Fiでキタロボに送るほうがいいでしょう。
そう、キタロボはWi-Fi搭載なのです。
そのとき、アクセントの符号もいっしょにつけてあげないといけません。
決まりきった文だけならいいのですが、いろんな文を喋らせる場合は、いちいちローマ字に直してアクセント符号を付加していてはやってられません。
ローマ字に直すのは、kakasiなどのツールを使えばいいでしょう。
しかし、キタロボに送るローマ字は、普通にローマ字にすればいいだけではなく、発音に忠実になるようにちょっと特殊なローマ字にする必要があります。
以前、点字ピンディスプレイという視覚障害者が使う機器の制御プログラムを作ったとき、漢字かな交じり文を点字に直す必要がありました。
そのときはMeCabを使って形態素解析を行いました。
キタロボに送るローマ字は、ほぼ点字に翻訳するときと同じです。
また、アクセント符号も付加しないといけないのですが、MeCabの辞書にUnidicを使えばどうにかなりそうです。
私は、こういう自然言語処理は結構好きな方です。
北本がどうかは知りませんけど。
まとめると、別の場所(同じ事務所の中ですけど)からWi-Fiでキタロボに喋らせる文を送信します。
送信するのはPCでもいいでしょうし、何なら専用のRaspberry Piを用意してサーバーにしてもかまいません。
その送信元マシンで、MeCabを使ってローマ字変換+アクセント符号付与を行います。
あとはデータを垂れ流すだけです。
こんな風に妄想したあと、あることに気付いてしまいました。
Raspberry Pi Zero WHをキタロボの背中に背負わせれば、先ほどの音声合成ICと同じメーカーが販売しているAquesTalk Piというプログラムを使えば済んでしまうと思うのです。
まあ、せっかくなので、あえてMeCabで処理する方法を選んでもいい気はしますけど。
そして、見事キタロボが喋れるようになったときは、『君ブロ』の朗読でもやってもらいましょうか。