コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

【Power Apps】音声をテキストに変換する~その1~


スポンサードリンク

はじめに

今回はPower Apps で取得した音声をテキストに文字おこしする方法について紹介したいと思います。

~完成イメージ~

英語Ver

日本語Ver

このようなアプリの作成方法今回はご紹介したいと思います!

予め注意書きをしておくと今回紹介する方法では、コードを記載する箇所がでてきます。(70行ほど)
なのでノーコードで実現!というわけにはいかないです。。。

ただ、手順通りに、また、コピペすれば実現できるよう紹介したいと思うのでよかったら参考にしてください。

使用するサービス

音声をテキストに文字おこしする技術には、Speech to Textを利用します。

今回はデモのため「Free - Web/コンテナー 1 個の同時要求」を利用します。

f:id:koruneko:20200614180945p:plain

詳しい価格に関してはこちらをご参照ください。Cognitive Services の価格—Speech Services

また、こちらの「Speech to Text」ですが、現在時点(2020/06/16)ではコネクタが存在していません。
なので「Premium コネクター」である「HTTP」アクションを利用します。
試される際は上記が利用可能なアカウントを用意してください。

Power Apps でのアプリ作成

まずは、Power Apps でアプリを作成していきましょう。
今回Power Apps で実現する機能は以下です。

  • 音声の取得
  • 取得した音声のデータをPower Automate に渡す
  • Speech to Text で文字おこしされたテキストを画面に表示する

これら3つだけです。

音声を取得する

Power Apps でデバイスのマイクの音を取得するには、マイク コントロールを利用します。

  1. 「メディア」より「マイク」を選択します。
    f:id:koruneko:20200614190534p:plain

  2. 録音された音声を変数にセットします。
    マイクの「OnStop」に以下のような式を設定します。

Microphone.OnStop

ClearCollect(
    Audiocol,
    Microphone.Audio
);
UpdateContext(
    {
        _jsonText: JSON(
            Audiocol,
            JSONFormat.IncludeBinaryData
        )
    }
)

それでは音声を録音してみましょう!
マイクコントロールを選択すると録音が開始され、もう一度選択すると録音が終了します。

録音された結果の「_jsonText」をみてみましょう。
「ビュー」>「変数」より確認が可能です。

f:id:koruneko:20200614192314p:plain

このように、Power Apps で録音された結果は「webm」形式で作成されます。* ここ重要

音声データをPower Automate に渡す

先ほど作成した「Audiocol」をPower Automate に渡しましょう。
ボタン コントロール」を追加し、「OnSelect」に以下のように設定します。

Button1.OnSelect

UpdateContext({_output:音声をテキストに変換.Run(JSON(First(Audiocol), JSONFormat.IncludeBinaryData))})

「音声をテキストに変換」としている箇所はPower Automate で作成したフローの名前です。(フローは後程説明します。)
「_output」にはフローの実行結果が設定されます。(「PowerApp または Flow に応答する」を設置していない場合はフローの実行成否、True or False が設定されます。)

Speech to Text の結果を表示する

Speech to Text の結果(Power Automate の結果)を表示するためのラベルを配置しましょう!
ラベルに表示するテキストには以下を設定します。

Label1.Text

_output.result

「result」の部分にはPower Automate の「PowerApp または Flow に応答する」の「タイトル」に設定した変数名を記載します。

おわり

以上がPower Apps の設定です!
Power Automate の作成がまだのため設定できない箇所が多々ありますが...
説明の難易度のためPower Apps の説明からさせていただきました。

次回は、Azure Functions 及びSpeech to Textに作成方法についてご紹介したいと思います。

koruneko.hatenablog.com


スポンサードリンク