松本典子の「Azure Logic Apps」超入門 ~AI編~ 第4回
Microsoft Cognitive Servicesの「Speech to text」をノンコーディングで使う
音声認識AIを使ってLINEのボイスメッセージをテキスト変換してみよう
2019年04月26日 12時30分更新
4.2.3. 「BLOBの作成」コネクタの設定
検索窓で「BLOB」と検索し「BLOBの作成」を選択します。
「2.1. Azure Blob Srotage の新規作成」で作成したBLOB Storage名を選択して「作成」ボタンをクリック。
図のように設定していきます。「BLOB名」の部分は、グローバルに一意の文字列(GUID)を生成する「guid」変数を使用します。
- 「BLOB名」にカーソルがあるのを確認し、「式」をクリック。
- 「guid()」と入力します。
- OKボタンをクリック。
以上の手順で「BLOB名」部分に変数を入力できます。「BLOBコンテンツ」部分は、動的コンテンツの「HTTP」の「本文」を選択します(※動的コンテンツが表示されていない場合は「もっと見る」をクリックしてみてください)、
これで「1:as-speech2text-store」の作成は以上です。
4.3. 「2:as-speech2text」を作成する
次に、LINE から送られたボイスメッセージを変換するワークフローを作成します。
4.3.1. Azure Logic Appsのトリガーの作成
今回はトリガーに「BLOBが追加または変更されたとき」コネクタを使用します。先程作成したワークフローでBLOBにボイスメッセージが格納されると実行するワークフローです。
項目中の「間隔」の部分ですが、このトリガーはポーリングトリガー(決められたスケジュールで実行)なので、時間を短く設定すると頻繁にトリガー部分の実行が起こり、費用がかかります(BLOBにファイルが格納されていない場合はトリガーの起動のみ。以降のアクションは全てスキップ処理)。適宜変更するか、ワークフローを無効化してください。
4.3.2. HTTPコネクタの設定(POST)
検索窓で「HTTP」と検索し、HTTPコネクタを選択します(便宜上、図中では名前を「HTTP - Speech to text(POST)と表記」)。
- 方法:「POST」を選択します。
- URI:以下の内容をコピペします。
- Content-Type:「application/json」と入力します。
- Ocp-Apim-Subscription-Key:「# 3.1 Azure ポータルからSpeech to textを作成」で作成したSpeech To textの「key」を入力します。
- 本文:以下の内容をコピペします。下記URIの表記のうち「ファイルの一覧Path」の文字を削除し、動的コンテンツの「ファイルの一覧Path」に置き換えてください。
https://westus.cris.ai/api/speechtotext/v2.0/transcriptions
{
"description": "Speech to textの書き起こし",
"locale": "ja-JP",
"models": [],
"name": "Transcription using locale ja-JP",
"properties": {
"ProfanityFilterMode": "Masked",
"PunctuationMode": "DictatedAndAutomatic"
},
"recordingsUrl": "https://speech2textstore.blob.core.windows.net[ファイルの一覧Path]"
}
4.3.3. HTTPコネクタの設定(GET)
検索窓で「HTTP」と検索し、HTTPコネクタを選択します(便宜上、図中では名前を「HTTP - Speech to text(GET)と表記」)。
- 方法:「GET」を選択します。
- URI:以下の内容をコピペします。
- Content-Type:「application/json」と入力します。
- Ocp-Apim-Subscription-Key:上記のHTTPコネクタ(POST)と同じ内容を入力します。
https://westus.cris.ai/api/speechtotext/v2.0/transcriptions
4.3.4. JSONの解析コネクタの設定
検索窓で「データ操作」と検索し、「JSONの解析」をクリック。
- コンテンツ:前の処理の「HTTP(GET)」、動的コンテンツの「本文」を選択します。
- スキーマー:以下の内容をコピペします。
{
"items": {
"properties": {
"createdDateTime": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lastActionDateTime": {
"type": "string"
},
"locale": {
"type": "string"
},
"models": {
"items": {
"properties": {
"createdDateTime": {
"type": "string"
},
"datasets": {
"type": "array"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lastActionDateTime": {
"type": "string"
},
"locale": {
"type": "string"
},
"modelKind": {
"type": "string"
},
"name": {
"type": "string"
},
"properties": {
"properties": {
"Purpose": {
"type": "string"
}
},
"type": "object"
},
"status": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
},
"properties": {
"properties": {
"Duration": {
"type": "string"
},
"ProfanityFilterMode": {
"type": "string"
},
"PunctuationMode": {
"type": "string"
}
},
"type": "object"
},
"recordingsUrl": {
"type": "string"
},
"resultsUrls": {
"properties": {
"channel_0": {
"type": "string"
}
},
"type": "object"
},
"status": {
"type": "string"
},
"statusMessage": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
ここまででSpeech to text APIを利用し、ボイスメッセージをテキスト変換する処理を行っています。以降は変換後のデータを利用できる形に加工していきます。
この連載の記事
-
第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を作ってみよう - この連載の一覧へ