無駄ロボット研究所

Googleのクラウドと連携してロボットが自然にしゃべる ~饒舌! お返事ロボ2 の巻

『無駄ロボット研究所』ではRPA(Robotic Process Automation)ツール「UiPath Studio」を使って役に立たない、無駄なロボットを作っていきます。業務を効率化するという本来RPAで実現すべき目的とは真逆のロボットたちをお楽しみください。

 暴言は、なるべく丁寧に、しかもきれいな発音で浴びせかけた方が、より相手にダメージを与えることができますよね。そこで、前回、作成したお返事ロボをバージョンアップしてみました。今度は、音声合成エンジンにGoogleの“Cloud text-to-Speech API”を使います。Google Cloud PlatformのAPIと「UiPath Studio」のパッケージは、本連載でもたびたび使うので、この機会に使い方を詳しく説明しておくことにします。

GCPのT2S APIを呼び出す

 せっかくクラウドサービスを使うので、ちょっとそれっぽい小見出しを立ててみました。

 Text-to-Speech APIを“T2S”と略すかどうかは知りませんが、渋谷のスタバだとメッキが剥がれてしまう恐れがあるので、大手町の地下街あたりで、呪文のように唱えてみると、ロボ仲間が増えるかもしれません。

 さて、前回作成したお返事ロボは、ぎこちない発音がロボ的に魅力的ではありましたが、やはり少し物足りない印象がありました。ロボとは言え、もう少しスムーズにしゃべらせてみたいところです。

 そこで、今回は、“Google Cloud Platform”で提供されている“Cloud text-to-Speech API”を使って、しゃべらせてみます。

 この方法のメリットは、音声合成エンジンがPC側になくてもかまわないこと、名前空間を扱うためにMain.xamlを書き換える必要がないことです。

 もちろん、デメリットもあります。“Google Cloud Platform”でAPIの有効化やアクセス用の秘密鍵ファイルの作成が必要なこと、「UiPath Studio」にパッケージを追加する必要があることです。

 これらの準備さえ整えてしまえば、ワークフローの改変は簡単です。それでは、早速、準備を進めていきましょう。

“Google Cloud Platform”を使う

 “Google Cloud Platform(GCP)”は、Googleが提供しているクラウドサービスです。コンピューティングやデータベース、機械学習、AI関連のAPI、G SuiteのAPIなどを利用できます。

 Gmailを使っている人はたくさんいらっしゃるかと思いますが、同じアカウントで、無料トライアルを開始でき、すぐに利用できます(課金情報の登録は必要)。

 今回利用するText-to-Speechもそうですが、GCPで提供されているサービスのいくつかは、利用頻度が一定数以下なら料金はかかりません。ロボットの作成やテストといった目的なら、気軽に使えるので、この機会にアカウントを作成しておきましょう。

 なお、クラウドサービスなので、画面構成やサービス名が変わる可能性があります。ただし、似たような項目は必ずどこかにあるので、根気よく探してみましょう。

プロジェクト作成

 サインイン後、最初に実行するのはプロジェクトの作成です。ここで、いろいろなリソースをまとめて管理します。適当に名前を付けて作成しておいてください。

APIの追加

 続いて、利用するAPIを追加します。左上のメニューアイコンから[APIとサービス]-[ライブラリ]を選択すると、利用可能なサービスの一覧が表示されます。今回は、“Cloud Text-to-Speech API”を使うので、これを検索して有効化します。価格なども記載されていますので、事前にチェックしておきましょう。2019年4月26日時点では、月間4Mカウントまで無料で使えますね。

認証情報の作成

 APIを登録できたら、このAPIにアクセスするための認証情報を作成します。[認証情報]をクリックして、認証情報を作成します。

 認証情報は3種類あります。ざっくり説明すると、API キーはアクセス用の文字列を使って認証する方式、OAuthはWebサービス経由で許可を与える方式、サービス アカウント キーはファイルに保存した認証情報を使う方式です。

 今回はサービス アカウント キーを作成します。新しいサービスアカウントを指定して、任意の名前を設定。役割は、本来細かく設定すべきですが、ここでは権限の大きい“オーナー”を選択します。最後にファイルにJSON形式を指定して[作成]をクリックすると、ファイルが出力されます。ダウンロードしておきましょう。

 このファイルを使って、「UiPath Studio」からGCPにアクセスしますので、大切に保管しておきましょう。

サービス アカウント キーを作成する
ファイルとして保存しておく

「UiPath Studio」にパッケージを追加する

 続いて、「UiPath Studio」にパッケージを追加します。「UiPath Studio」は、パッケージと呼ばれる拡張機能が用意されていて、これを利用することで、いろいろな自動化に対応できます。

通常パッケージの追加

 ツールバーにある[パッケージを管理]をクリックし、左側の一覧で[すべてのパッケージ]を選択します。この状態で、テキストボックスから検索すると、追加のパッケージをダウンロードできます。

 今回は「UiPath.GoogleSpeech.Activities」をダウンロードしたいので、“speech”で検索し、項目を選択。[インストール]ボタンをクリックして、[保存]を選択すると、「UiPath Studio」にパッケージが追加され、この機能を使えるようになります。

パッケージを追加
追加したパッケージのアクティビティが使えるようになる

“UiPath Go!”のパッケージの追加

 なお、“UiPath Go!”に掲載されているパッケージを追加したい場合は、現状、少々、手間がかかります。先行公開されているベータ版ではGo!からのダウンロードが簡単にできるようになっているのですが、現行バージョンではレポジトリの手動追加が必要です。

 “UiPath Go!”のパッケージの追加方法はオンラインとローカルの2種類があるのですが、とりあえず、ここでは簡単なローカルの方法を説明します。

 先ほどと同じ方法でパッケージを管理画面を起動し、左側のメニューから[設定]を選択します。ここに、[ソース]として、PC上の任意のフォルダーを登録し、[ユーザーが定義したパッケージソース]に登録しておきます。

 その後、“UiPath Go!”からダウンロードしたパッケージをこのフォルダーに保存すれば、パッケージを管理画面から導入が可能になります。

ワークフローを書き換える

 さて、前回作ったお返事ロボをCloud Text-to-Speech API版に変更してみましょう。変更点は以下の通りです。

 SpeechSynthesizerクラスは使いませんので、このための2つの代入アクティビティは削除します。

 続いて、[イベントハンドラー]の中に配置していた[メソッドを呼び出し]をパッケージとして追加した[Text to Speech]アクティビティに置きかえます。

 最後に、[Text to Speech]アクティビティのプロパティを構成します。[LanguageCode]に“"Ja-JP"”を設定、[ServiceAccountFile]にダウンロードしたGCPのアカウント キーファイル(サービス アカウント キーとしてダウンロードしたJSONファイル"。ワークフローと同じフォルダーに保存しておけばパス指定は不要)を指定します。[Text]にしゃべらせたい言葉を格納した変数(ここでは“speechWord”)を指定します。

 標準ではMaleが設定されていますが、これがお勧めです。ジェントルで、おだやか。『それって意味がありますか?』なんて言われても、腹が立ちません。