【UiPath】音声認識でのテキスト化や読み上げをやってみる

# この記事はなにか

UiPathのパッケージ`UiPath.GoogleSpeech.Activities`を活用して、話しかけた内容のテキスト化、読み上げをやってみました。
フローは以下のとおりです。

1. 音声を認識して取り込む
2. それをテキストに書き込む
3. UiPathに取り込んだ音声+αを読み上げてもらう 

UiPathでのフローが伝わりやすいように、先にアクティビティの構成の画像を上げておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/365cfc91-3265-e58c-ced3-d0a281f91850.png)

# バージョン情報

- Windows10 home
- UiPath Studio 2020.2.0-beta.108 Community License

# 準備

今回使用する[「Voice enabled RPA - AI」](https://connect.uipath.com/ja/marketplace/components/voice-enabled-rpa-ai-70532)は、
Google Cloud Platfromの
・`Cloud Speech-to-Text API`
・`Cloud Text-to-Speech API`
を利用したもののため、そのアカウントの作成とクレジットカードが必要です。
（今回は無料、詳細後述）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/d64d531c-43eb-6c88-049a-754c53fa531e.png)


## 1.パッケージのインストール
UiPathの「パッケージを管理」から`UiPath.GoogleSpeech.Activities`をインストールします。
（最初、サイトからダウンロードしたもののよくわからなかったですが、ダウンロードしたファイルの名前を見ると`UiPath.GoogleSpeech.Activities.0.1.6850.39757.nupkg`となっていたのでこうしました。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/73cc75d1-5194-ff10-f323-94018f8d1649.png)

## ２．Google Cloud Platfromでサービスアカウントキーを取得

今回使用する[Voice enabled RPA - AI](https://connect.uipath.com/ja/marketplace/components/voice-enabled-rpa-ai-70532)のアクティビティリストに
・ Google Speech To Text
・ Google Text To Speech
とありましたので、[**Google Cloud Platfrom**](https://console.cloud.google.com/) にアクセスして**「API とサービス」**に進み、
**「＋ APIとサービスの有効化」**をクリックして、
`Cloud Speech-to-Text API`と`Cloud Text-to-Speech API`をそれぞれ有効化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/3ffb68c7-cf12-703e-58e9-1b14cf76353c.png)

※Google Cloud Platfromのアカウントがない場合はプロジェクトと一緒に作成しましょう。
※認証にはクレジットカードが必要ですが、1年間は300ドル分のサポートがあり、承認しない限りは課金されないようです。

その後、サービスアカウントキーを作成し、jsonファイルを任意のディレクトリに保管します。
(説明端折ってますが、余裕があれば追記します。)

## 3.UiPathのフローを作成

### 3-1.アクティビティを並べる
先述しましたが、このようなアクティビティの構成にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/365cfc91-3265-e58c-ced3-d0a281f91850.png)

###  3-2.変数の設定
話した言葉をここに格納します。変数の名前は`speechContent`、型は`String`としました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/a2e29d83-0a03-b1d5-76d8-6b9b7f7e5b1e.png)

### 3-3.「Speech to text」の設定
先程、Google Cloud Platfromで取得したサービスアカウントキーの保存先のパスを「ServiceAccoutFile」で指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/6173665d-5571-3154-a484-ce39ae77093b.png)

### 3-4.「テキストをファイルに書き込み」の設定
「テキスト」は変数、「書き込む先のファイル名」はテキストファイルまでのパスを設定します。
保存するテキストファイルも作成しておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/87cc2c93-38a5-45e2-5ff0-4b407881d1e3.png)

### 3-5.「Text to speech」の設定
Google Cloud Platfromで取得したサービスアカウントキーの保存先のパスを「ServiceAccoutFile」に指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/7f7777fb-566f-304f-d237-c0ab137b48e0.png)

以上で準備完了です。

# 実行
最後に、準備した内容を実行してみます。

1. デバッグ:arrow_forward:をクリックすると、以下のボタンが出てくると思うので、`Start`を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/bb549591-0675-a8dd-2a6d-2fe22b6f10e2.png)

2. 「きょうはいいてんきですね」と話しかけます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/ba5d7045-799d-9898-f721-4ed96911fd5e.png)

3. 話しかけ終わったら、「Stop」を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/a869111b-909f-7b39-3854-3b4a5ceca95c.png)

4. 「『今日はいい天気ですね』と書き込まれました」と返事があります。

5. 最後に、テキストを確認してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224314/e5c2645b-d105-10d6-1889-2bf4604827c1.png)
書き込まれていますね。成功です！

# 所感
その昔、[Via Voice](https://pc.watch.impress.co.jp/docs/article/990928/ibm2.htm)というソフトで頑張って文章を書こうとしていた頃が懐かしいです。
音声認識でのテキスト化も返事もできるので、
含まれる語句を条件分岐して作業の割当をすれば声での操作もできそうです。

# 参考
[UiPath Goを利用してRPA×AIを試してみた | BTC RPA](https://rpa.bigtreetc.com/column/uipathxvoicerecognition01/)