Pepper SDK入門(20) PepperにSay(API)でsay(発言機会)を与える



また会いましたね。

今回の目標

Pepperに喋ってもらいます。

//フレーズを決める
Phrase phrase = new Phrase("Hello");

//アクションをビルドする
Say say = SayBuilder.with(qiContext)
                    .withPhrase(phrase)
                    .build();

//アクションを同期実行する
say.run();

これが今回の学習内容です。
あらかじめ決めておいたフレーズは絶対的です。アドリブは出来ません。

Pepperのために短い台本を用意しよう

Pepperの発言を決めましょう。helloでもhaloでもharrowでもそれ以外でも、なんでも構いません。

Phrase phrase = new Phrase("はろー");
Say say = SayBuilder.with(qiContext)
                    .withPhrase(phrase)
                    .build();

say.run();

Phraseを使ってビルドします。

Pepperは動(きながら喋る)物である

Pepperはジェスチャーしながらお話をします。
その身振り手振りをキープするのも、BodyLanguageOptionで止めるのもユーザーの自由です。
後者を選ぶ場合は前回と前々回に倣い、BodyLanguageOption.DISABLEDを使いましょう。

Say say = SayBuilder.with(qiContext)
                    .withPhrase(phrase)
                    .withBodyLanguageOption(BodyLanguageOption.DISABLED)
                    .build();

say.run();

Pepperはトリリンガルである

前回のListenでそうしたように、Localeで使用言語を変更することが出来ます。今回は英語です。It’s a breeze!

Locale locale = new Locale(Language.ENGLISH, Region.UNITED_STATES);
Say say = SayBuilder.with(qiContext)
                    .withPhrase(phrase)
                    .withLocale(locale)
                    .build();

say.run();

Sayの存在意義を体験しよう

例えば気になるカクテル名をタブレットのボタンで選び、それにどんな酒類が混ざっているか教えてくれるようにしてみましょう。

String cocktailName = ...;
String materialDescription = ...;

Phrase namePhrase = new Phrase("今夜は " + cocktailName + "を飲みませんか");
Say sayName = SayBuilder.with(qiContext)
                        .withPhrase(namePhrase)
                        .build();

Phrase descriptionPhrase = new Phrase(materialDescription);
Say sayDescription = SayBuilder.with(qiContext)
                               .withPhrase(descriptionPhrase)
                               .build();

sayName.run();
sayDescription.run();

これの"Hello human"のボタン名と台詞を変えればすぐにでも体験できます。

飲めなくても知識は持てるのです。

Sayにおける諸性質

SayもListen同様に短い対話に向いています。
SayやListenを実行している時にChatが機能しないように、ChatやListenを実行している時にSayは機能しないので注意してください。会話するか聞くか喋るかは常に択一なのです。

APIドキュメントを見ると、もっとSayを知ることができます。

あとがき

今回もPepper SDK for Androidを参考に書かせていただきました。
DiscussはChatで代用するよう記載されているため、次回はPhraseとPhraseSetについて学習したいと思います。名言や楽句の登場はありません。
それでは次回〜