タイトル通りです。サブタイトルは…中二病っぽくつけるなら「Ventriloquist(腹話術師)」とかですかね。いや腹話術ではないんですが、ソレっぽくてカッコいい単語なので。
以前、本サイトで「Ami Voice SP APIでAmiVoice SPが起動できない?」という記事を書きました。今回の記事はそれの続報にあたります。前回は書きませんでしたがAmi Voice SP2を買ったのはソフトバンクPepperと繋げて遊ぶためで、今回それが大体完成したので紹介します。
図で何をしたいか書くとこんな感じ。
見ての通り
- ヘッドセットマイクからの入力をAmi Voice SP2でテキストへ書き起こし、
- そのテキストを自作プログラムで拾い上げ、音量/読み上げ速度などを設定し
- リモート操作でPepperに喋らせる
という流れになってます。普通こういう遠隔通話システムでは操作者の音声をそのまま遠隔(Pepper)のスピーカーから垂れ流すのですが、上の方法では声をテキストに起こして投げるという一見ムダな手順を踏むことでPepperがPepper自身の声(=弦巻マキの声)で喋ります。これによって
PepperとインタラクションするクライアントのUXが向上し、お客様に最適なソリューションを提供できます
…というとアレですが、要するに見た感じの印象がグッと良くなります。考えてもみて下さい、Pepperの口からオッサンの声が出たら凄くイヤでしょう?変声という処理は人型ロボットを操作する際には舐めてはいけないのです。
実装プログラムは以下のリンク先に置いてるので試したい人はご自由にどうぞ。ライセンスとかは設けていません。
DL先: Google Drive
コイツの"AmiVoice2Pepper\AmiVoice2Pepper\bin\Debug"以下にある"AmiVoice2Pepper.exe"が実行ファイルです。実行時に必要となるのは以下の3つです。
いまのところnao Python SDKは一般公開されてないハズですが、そこはアトリエ秋葉原でPepperの開発イベントに参加するなどして、アルデバラン社の方に直接問い合わせてください。Ami Voice SP2についてはオンラインでDL販売されているほか、量販店でも買えます。
ソースコードとしての中身は主にC#(WPF)のGUIとC#でやってるAmiVoice連動の実装ですが、実行ファイルのディレクトリに"pepper_say.py"というPythonスクリプトがあり、そっちがリモート操作の実体になってます。
今回のコレと前回に紹介したマイク音のストリーミングを同時に実行することとPepperの「中の人」になれます。手元か職場にPepperがあり、2万円程度の出費が痛くない方がもし居たらぜひお試し下さい。