aki.Saitoのブログ

SAP、IT関連が中心のブログ(Twitter @AkiSai14)

SAP Conversational AIとしゃべりたい

はじめに

※この記事は、SAP Advent Calendar 2020 の12/13分の記事として執筆しています。
今年、2020年の初め頃にブログを立ち上げ、5本ほど記事を書きましたが、すっかりご無沙汰となってしまいました・・・ 執筆を再開するためにもアドベントカレンダーに登録させていただきました。

さて、今回は何についての記事を書こうか悩んだ結果、SAPとしゃべりたいなーと思い
【SAP Conversational AI】 + 【音声アシスタント】
の組み合わせで色々試行錯誤してみました。

"当初"計画

しゃべらせるためには何が良いか調べてみたところ、日本語の滑らかさや料金(多少の処理量であれば無料)などの点からこちらの製品で試してみることにしました。

f:id:akisai14:20201212151945p:plain

こちらはその名のとおり、テキストを音声に変換したり、音声をテキストに変換するサービスでAPIなども充実していました。また、日本語もかなり流暢に話してくれます。

サンプルはこちら:

今回のブログ作成に向けた準備としては、SAPよりGoogle Cloudの方がドキュメントを読んだりチュートリアルをやったりで時間を費やした気がします。

構成のイメージ

f:id:akisai14:20201212162816p:plain

ここで先に謝っておきます。
この構成、完成してません。。。
Webアプリケーションに疎く、APIやWebhook、JSONは名前は知っていても使い方がさっぱりだったこともあり、 短期間での習熟が難しかったです。
そのため、この構成については今後の宿題として、今回はこれまでに調べたことを基に以下について書きたいと思います。

- GoogleがダメならAmazon (Alexa) で話してみる
- SAP Conversational AIのコネクタ機能

#GoogleがダメならAmazon (Alexa) で話してみる

Amazon(ショッピングの方)のブラックフライデーサイバーマンデーAmazon Echoシリーズが安くなってたので、「Amazon Echo Show 5」を購入しました。
購入の目的の半分はSAP Conversational AIで使いたかったためです。
ここでSAP Conversational AIとおしゃべりするまでの道のりを紹介したいと思います。 f:id:akisai14:20201213002209p:plain

1.Amazon Echoを購入・設置する

Amazon Echoシリーズはよくセールで割引になっているようなので買うタイミングを見計らった方が良いです。
我が家では音楽聴くのにも重宝しています。

2.SAP Conversational AIのチャットボットを作成する

Alexaは音声変換の機能でしか使用していないため、メインとなるチャットボットは
SAP Conversational AIで作成します。
チャットボットの作り方はチュートリアルやOpenSAP、日本語のブログなど参考にできるものがたくさんあり、基本的にノーコードで作成できるので初めてでもとっつきやすいのではと思います。
本ブログの最後で参考にしたリンクを紹介します。

3.Alexa向けコネクタの設定をする

  ※手順を載せているので少し長いです。

1.SAP Conversational AIにログインし、ConnectタブからAmazon Alexaを選びます。

f:id:akisai14:20201212015237p:plain

Amazon Alexa」をクリックすると下図のように手順が表示されるので、この手順に従って設定します。

f:id:akisai14:20201212015438p:plain

2.Amazon Developer account を作成する
Alexaと連携させるためには、Amazon Developer Consoleにログインする必要があります。以下のURLをクリックして、Amazon Developer account を作成します

Amazon Developer Sign-In

f:id:akisai14:20201212015747p:plain
create account

手順には以下の画面のように指示がありますが、私の場合、この画面が表示されず色々さまよいました。
結果から言って、何もしなくても大丈夫でした。どういうタイミングで表示されるのか分かりませんが、出たら「Allow」をクリックすればよいと思います。
f:id:akisai14:20201212015914p:plain

3.Alexaで会話を開始するためのインテントを追加する
追加のやり方は簡単で、Alexaでチャットボットと会話を始めるためにインテントを追加します。インテントの名称は決まっていて、「@CONVERSATION_START」を登録します。
また、expressionsには何も登録しなくて大丈夫です。 f:id:akisai14:20201212020638p:plain

4.「@CONVERSATION_START」をスキルを追加する
Alexaで呼び出したいスキルのトリガーに「@CONVERSATION_START」を追加します。
下図は挨拶のスキルに追加しています。
f:id:akisai14:20201212021053p:plain

5.会話の最後に完了フラグを追加する
会話の最後にAlexaでの会話を終了させるためのフラグを追加します。
Set Memory Fieldに「END_CONVERSATION」を登録します。 f:id:akisai14:20201212021514p:plain

6.SAP Conversational AIを呼び出すキーワード等を設定する
・Name
  Alexa developer console上に表示される名称(Nameの箇所)を登録します。
  デフォルトで一意の名称が表示されますが自由に変更できます。
・Invocation Name
  Alexaを起動した後にSAP Conversational AIとの会話に切り替えるキーワード
  (Invocation Name)を設定します。
  例えば、キーワードを「my chatbot」とした場合、「Alexa, my chatbot」と呼べば
  Amazon EchoでSAP Conversational AIと会話ができます。

f:id:akisai14:20201212023940p:plain

<困ったところ>
私が試したところ、Invocation Nameを日本語で入力すると「DEPLOY SKILL TO AMAZON ALEXA」ボタンをクリックしても何も返ってこない状態になりました。
Webブラウザのコンソールで見ると404のエラーが出ていました。
Localesで日本が選択できるので日本語に対応しているように見えますが、
実際は日本語には対応できていないのかもしれません・・・

これでSAP Conversational AI側の設定は完了です。
あとひと息です。

4.Amazon developer consoleでテストモードにする

Amazon developer consoleにログインし、作成したAlexaスキルを確認します。
作成したAlexaスキルをクリックして、テストタブを表示し、
「スキルテストが有効になっているステージ:」を「開発中」に変更します。
これでAlexaを経由してSAP Conversational AIと会話ができるようになります。

f:id:akisai14:20201212165116p:plain

5.しゃべってみよう!

これで準備は完了!Alexaに話しかけてみました。


あれ???本当は「こんにちは!」と言うはずなんですが、
英語で設定した文章を日本語的な感じでしゃべっているようです・・・
私がしゃべる日本語もうまく認識されてませんでした。

SAP Conversational AIのモニタを見てみると、英語モード(イギリスの国旗マーク)で認識されていました。
こちらを解決できるのかは今後の課題です。 f:id:akisai14:20201212223049p:plain

6.しゃべってみよう!(リベンジ)

このままでは終われない!と思い、今度はAlexaの設定を英語版にして、英語で話しかけてみました。

英語で認識させるにはAlexaの言語を英語にして、
SAP Conversational AI側でLocalesを「US」にします。 f:id:akisai14:20201212180247p:plain

英語で話しかけたときの様子はこちら。
(私の発音は聞かなかったことにしてください笑)

英語であれば、念願のSAPとの会話ができました!!
今回の実験はここまでです。 

SAP Conversational AIのコネクタ機能

SAP Conversational AIのコネクタについて紹介します。

SAP Conversational AIのコネクタのラインナップ

SAP Conversational AIのコネクタは2020年12月現在、以下が用意されています。
手順に従って設定するだけで様々なツールと連携することができます。
また、複数のコネクタを登録することができ、私のチャットボットはAlexaの他に、
Line、Twitterとも連携しています。
どこからでも話しかけられる=アプリを選ばないのは良い点だと思います。

f:id:akisai14:20201212002055p:plain
Connectors of SAP Conversational AI

コネクタ毎の利用できる機能

SAP Conversational AIはテキストだけではなく、画像やボタン、リストから選んでやりとりすることもできます。 コネクタ(チャネル)毎に利用可能な項目が異なり、各コネクタが利用できる機能は下表のとおりです。

f:id:akisai14:20201212011053p:plain
コネクタの機能一覧

SAP Conversational AIの使いたい機能や、すでに利用している製品に応じて使い分けると良いのではと思います。

まとめ

当初計画した構想(Google Cloud製品の利用)は断念しましたが、
SAPの標準で用意されているAlexaとの連携を検証できて良かったと思います。
今回のアドベントカレンダーに向けて色々調べたことでWebアプリケーションのことが少しずつですが理解できて、私自身の知識の幅を広げる良いきっかけとなりました。

SAP Conversational AIについては先日のSAP TechEdでもセッションやハンズオンを受け、ますます興味が出てきた製品です。チャットボットはシステムの操作、問合せ、教育やコミュニケーションなど様々なことを行うことができる単一窓口(1か所ですべてができる場所)だと考えています。
今後の機能の拡張を期待しています。

参考にしたサイト・ブログ・補足

SAP Conversational AIのSAPヘルプポータル
SAP Conversational AI公式ブログ
SAP Conversational AI を学んでみた | SAP Blogs
SAP Conversational AIで簡単なchatbotを作ってみた - Get Involved
Build Your Own Amazon Alexa Chatbot | SAP Conversational AI Blog