松本典子の「Azure Logic Apps」超入門 ~AI編~ 第4回
Microsoft Cognitive Servicesの「Speech to text」をノンコーディングで使う
音声認識AIを使ってLINEのボイスメッセージをテキスト変換してみよう
2019年04月26日 12時30分更新
4.3.5. For eachコネクタの設定
検索窓で「制御」と検索し、For each コネクタを選択します。コネクタ名の右端の「・・・」をクリックし「設定」をクリック。
「コンカレンシー制御」をオンにして、並列処理の次数を「1」に設定後、完了ボタンをクリックします。この部分の設定ができていないと、うまく実行されないことがあるので注意してください。
For eachコネクタの出力選択は、「JSONの解析」から動的コンテンツを「本文」を選択します。以降のコネクタ(6~9)は全て、このFor eachコネクタの中に入るようにします。
4.3.6. HTTPコネクタの設定
音声テキスト変換で出力された結果を表示できるようにしていきます。
方法は「GET」を選択、URIは「JSONの解析」から動的コンテンツを「channel_0」を選択します。
4.3.7. JSONの解析コネクタの設定
出力される結果は content-TypeがJSONではないため、このままではLogic Appsで利用できません。Logic Appsで扱える形式になるように、base64ToString変数を使用してデータ変換します。
- コンテンツ:変数を使用します。「式」を選択し、以下の内容をコピペします。図中の青の矢印になりますが、「HTTP」の部分は前の処理のHTTPコネクタの名前に合わせます。例えば「HTTP2」という表示になっていた場合は表記を変更してください
- 以下の内容をコピペします。
base64ToString(string(body('HTTP').$content))
{
"properties": {
"AudioFileResults": {
"items": {
"properties": {
"AudioFileName": {
"type": "string"
},
"SegmentResults": {
"items": {
"properties": {
"Duration": {
"type": "integer"
},
"NBest": {
"items": {
"properties": {
"Confidence": {
"type": "number"
},
"Display": {
"type": "string"
},
"ITN": {
"type": "string"
},
"Lexical": {
"type": "string"
},
"MaskedITN": {
"type": "string"
},
"Words": {}
},
"type": "object"
},
"type": "array"
},
"Offset": {
"type": "integer"
},
"RecognitionStatus": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
4.3.8. 音声テキスト変換結果を出力する
音声テキスト変換結果を見ると、このような状態です。
「NBest」の配列内にある「Display」を後続のアクションに利用したいので、For eachコネクタを利用して取り出します。今回はSlackに結果を出力するように設定しました。
4.3.9. HTTPコネクタの設定(Delete)
最後に「Delete」処理用のHTTPコネクタを設定します。今回利用するAPIは実行すると結果が残る仕様のため、都度削除する必要があるためです。
検索窓で「HTTP」と検索し、HTTPコネクタを選択します(便宜上、図中では名前を「HTTP2 - Deleteと表記」)。
- 方法:「DELETE」を選択します。
- URI:以下の内容をコピペします。下記入力後、最後の部分に動的コンテンツの「id」を追加します。
- Content-Type:「application/json」と入力します。
- Ocp-Apim-Subscription-Key:上記のHTTPコネクタで利用したものと同じ内容を入力します。
https://westus.cris.ai/api/speechtotext/v2.0/transcriptions/
実行結果
実際にLINEから「ボイスメッセージ」を送信してみます。
このような形で、音声をテキスト変換することができます。
Speech to text は日本語にも対応しているので、精度は良い方では?と感じました。英語では7割~8割の精度のようです。また、トリガーの箇所にも記載しましたが、今回はポーリングトリガーを使用しているワークフローがあるので、利用しないときは無効化するなどしてください。
最後に
コネクタとして提供されていないサービスも、APIが提供されていれば今回のように工夫することで Logic Apps でも利用することが可能な場合があります。音声テキスト変換、ぜひ色々試してみてください!
参考URL
この連載の記事
-
第11回
TECH
AI+ノーコードで動画の字幕を自動生成するツールを作ろう -
第10回
TECH
メールで届く添付ファイルの暗号化を自動解除するLogic Appsを作ろう -
第9回
TECH
人物写真の顔をAIが検出し、ぼかしてツイートするLogic Appsを作ろう -
第8回
TECH
Power AutomateのRPA「UIフロー」でPhotoshopの操作を自動化してみよう -
第7回
TECH
「指定した場所に近づくとスマホに買い物リストを通知する」仕組みを作ろう -
第6回
TECH
文字入り画像を送るとテキストに書き起こすLINEボットを作ろう -
第5回
TECH
現在地から目的地までの道案内をするLINEチャットボットを作ろう -
第3回
TECH
自分用メモ的にLINE送信した予定をAIで読み取ってGoogleカレンダーに自動登録しよう -
第2回
TECH
AIで「alt属性」文章を自動生成しよう!もちろんノンコーディングで -
第1回
TECH
ノンコーディングで質問に自動回答するLINE BOTを作ってみよう - この連載の一覧へ