本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「プログラミング経験がなくても大丈夫!AIを使った高精度文字起こしアプリを作ってみよう。 # Azureリレー」を再編集したものです。
こんにちは。Azure認定資格お兄さんこと、荒井です。
本日はプログラミング経験がなくても、AIを使った高精度文字起こしアプリが作れる門外不出の方法をご紹介したいと思います。
今では、テレワーク・オンライン会議が当たり前になり、会議のデジタル化がずいぶん進んできてますね。
最近はさらに参加者の名前や人数などの出席情報が取得できたり、オンライン会議室内に小部屋を作ってクローズドな会議を会議中に作れたり、会議をレコーディングできたり、と便利な機能が日に日に充実してきて、嬉しい限りです。
でも、皆さん、まだあれが残ってますよね。そう、あれです。議事録です。
オンライン会議は会議ツールの機能でレコーディングできるから、会議のあとに聞きながら文字起こしはできる。それは確かに便利。
でも、手動での文字起こしは、やっぱりめんどくさい!自動的に書記並みの文字起こしをしてるものはないんかね。
って思う人も中にはいるはずです。
そんな皆さんに朗報です!その悩みを解決できるアプリ(※)をご紹介します!
それがこれだぁ(/・ω・)/
オンライン会議でレコーディングした動画を所定のOne Driveにアップするだけで、裏でAIを活用した文字起こしが起動され、しばらくすると文字起こしデータがSharepointに届いちゃう素敵アプリです。
関数やプログラミングの知識は必要なく、簡単操作で作れますので、ぜひトライしてみてくださいね(/・ω・)/!
(※)本ブログではAIを使用し会議から様々なメタデータ抽出し、メタデータから高精度文字起こし(トランスクリプト)を抜粋・指定フォルダに自動格納する手順を紹介しています。
高精度文字起こしや他のメタデータは一旦不要だから、急ぎ会議のトランスクリプトだけ欲しい!という方はTeamsに標準で搭載されている「ライブトランスクリプション」機能をご活用くださいませ。この手段もかなり有用です。
初期値は文字起こしの言語が英語になっていますので、日本語に修正する操作が必要です。ご注意くださいませ(/・ω・)/
【使用するサービス】
1. Azure Video Analyzer for Media
→ 動画を分析してメタデータ(人物・画像認識、高精度文字起こし、他)を抽出してくれるAIです。
概要はこちらをどうぞ。
2. Microsoft 365(One Drive/Sharepoint)
→ 個人用、組織用のオンラインストレージです。
概要はこちらをどうぞ。
3. Power Platform(Power Automate)
→ プロセス自動化、別サービス連携もできるすごい奴です。
概要はこちらをどうぞ。
【レシピ】
1. Azure Video Analyzer for Mediaをデフォルト値のまま作成します
2. Azure Video Analyzer for Mediaにアクセスするための各種情報を集めます
3. Power Automateの公式テンプレートから「OneDrive(Business) の動画のトランスクリプトを取得してSharePoint に保存する」を見つけてフローを作成します
4. Power Automateの公式テンプレートにAzure Video Analyzer for Mediaの接続情報やOne Driveのフォルダ情報などを設定します
5. One Driveのフォルダ情報に動画を格納し、Sharepointにテキストファイルが届くことを確認します
さぁ! 早速レシピアプリを作ってまいりましょう(/・ω・)/
1. Azure Video Analyzer for Mediaをデフォルト値のまま作成します
① Azure Portalにサインインし、[ リソースの作成 ] → 検索欄に [ Video Analyzer ] を入力し、候補で出てきた [ Azure Video Analyzer for Media ] をクリックします。その後、表示される確認画面で [ 作成 ] をクリックします。
② Azure Video Analyzer for Mediaの詳細設定を行ないます。リソースグループ、Azure Video Analyzer for Mediaアカウント、Media Service、ストレージアカウント、ユーザー割り当てマネージドIDを新規作成し、名前を付けます。各新規作成の項目の設定はデフォルト値で大丈夫です。
分析する動画に関する使用権限確認の欄はチェックを入れます。その後、[ 確認および作成 ] をクリックします。次の画面で [ 検証に成功しました ] と表示されたら、 [ 作成 ] をクリックします。
これで Azure Video Analyzer for Media の準備(デプロイ)は完了です!
2. Azure Video Analyzer for Mediaにアクセスするための各種情報を集めます
① Video Analyzer for Mediaのポータルにアクセスします。[ AADアカウント ] をクリックします。
② Video Analyzer for Mediaのポータルのメニューから [ アカウント設定 ] をクリックします。表示された画面にある [ アカウントID ] が表示されていることを確認し、[ コピー ] をクリックします。
※コピーしたテキストは後々使いますので、メモ帳などに控えてくださいませ。
③ Azure Video Analyzer for Media Developer Portalにアクセスします。 [ AADアカウント ] をクリックします。
※同じブラウザのタブならそのままアクセスできると思います。
その後、[ Profile ] をクリックします。
④ User profile画面のSubscriptionsの[ Name ]をまず控えます。そのあと [ Primary key ] 欄の [ Show ] をクリックし、表示されたPrimary keyをメモ帳に控えます。
3. Power Automateの公式テンプレートから「OneDrive(Business)の動画のトランスクリプトを取得してSharePointに保存する」を見つけてフローを作成します
① Power Automateポータルにアクセスします。[ テンプレート ] メニューをクリックし、検索欄に [ OneDrive(Business)の動画のトランスクリプトを取得してSharePointに保存する ] と入力、検索、その後クリックします。
2022/2/15時点では2種のテンプレートが表示されます。間違って翻訳用をクリックしないように注意です。
② テンプレートのフローに含まれているコネクタ(別サービスを呼び出す部品)を使用するにあたって、認証情報の確認が入ります。初めてコネクタを使用される方は全ての接続先で、認証情報(IDやパスワード)の入力が必要なります。
では、 [ Video Indexer ] のコネクタ接続先設定を進めます。
[ 作成 ] をクリックし、表示された画面でコネクタの [ 接続名 ] と [ API Key ] に、[ 2.-④ ] で控えた [ Name ] と [ Primary key ] を設定し、[ 作成 ]をクリックします。
③ すべてのコネクタの接続がうまくいったら、[ 作成 ] をクリックし、フローの編集に移ります。
4. Power Automateの公式テンプレートにAzure Video Analyzer for Mediaの接続情報やOne Driveのフォルダ情報などを設定します
① Power Automateのテンプレートフローが展開されました。このテンプレートかなり優秀で手を加えるところは、ほぼありません。(開発してくれた方、ありがとうございます!)
2022/2/15時点では、差し替える箇所は1点だけです。
[ Create share link ] (One Driveのファイル情報を取得する) アクションが近々リタイアされるようで、別のアクションに変えてあげる必要があります。
画像部分の [ + ] → [ アクションを追加 ] をクリックして、代替アクションを追加します。
② アクションの検索欄に [ OneDrive for Business ]を入力し、検索。その後表示されたOneDrive for Businessの [ファイルコンテンツの取得 ]をクリックし、アクションをフローに追加します。
③ あとはリタイア予定の [ Create share link ] アクションを、 [ … ] → [ 削除 ] で削除します。これでアクション変更は終了です。
④ 次はトリガーやアクション群に固有値を設定していきます。
まずはトリガーから始めます。このトリガーでは [ 動画を格納予定のOne Driveフォルダ ] を指定します。
このフォルダに動画を格納したら本トリガーが動き、後続のアクションが実行されていきます。
※指定フォルダは各自の環境に読み替えくださいませ。
⑤ 2個目の [ Initialize variable Transcripts ] は変更無しで大丈夫です。
このアクションは文字起こしのテキストデータを格納しておく、データの保管場所を定義するのみのアクションのため、修正は不要です。
⑥ 3個目の[ ファイルコンテンツの取得 ] の[ ファイル ] 欄に、トリガーの [ When a file is created (properties only) ] の結果である [ ファイルの一覧 ID ] を設定します。
これで動画データを格納都度、対象動画データを取得されるアクションができました。
⑦ 4個目、5個目のアクションは共通の設定があるため、一緒に説明します。
[ Get Account Access Token ] は、Azure Video Analyzer for Mediaにアクセスするためのトークン(権利)をゲットするアクションです。
[ Upload video and index ]は、One Driveに格納された動画を、Azure Video Analyzer for Mediaにアップロードし、インデックス(メタデータ抽出)作成も一緒にしてくれます。
どちらのアクションも共通して、[ 場所 ] と [ アカウントID ] がありますが、同じ内容を設定くださいませ。
Azure Video Analyzer for Mediaのアカウントはデフォルトだとトライアル扱いのため、[ 場所 ]は trial 一択です。ここでは何も考えずにtrialを設定くださいませ。
⑧ [ Upload video and index ] の設定には続きがあります。
アップロード対象のファイル名とファイル自体を渡す必要があるため、任意項目ですが [ 本文 ] と [本文(ファイル名)] を絶対に指定くださいませ。そうしないとアップロードが失敗します。忘れないようにしましょう。
⑨ [ Upload video and index ] の設定にはさらに続きがあります。
本アクションはアップロードと同時にインデックス作成(メタデータ抽出)してくれます。
抽出する際に趣旨であるトランスクリプトの言語設定を日本語以外に指定してしまうと、文字起こしが日本語以外のテキストで生成されてしまうので、注意しましょう。
言語設定をする際は、[ 詳細オプションを表示する ] をクリックし、[ ビデオ言語 ] を [ Japanese ] で設定します。
⑩ 次は [ Do until ] アクション内のアクションに固有値設定を加えていきます。
[ Do until ] アクションは初回実行後、以降条件を満たすまで、処理を繰り返す。といったアクションです。
[ Do until ] アイテム内で、 [ Get Video Index ] を実行しています。これは該当動画のアップロード&インデックス作成状況を取得し、次の判定アクションのインプットで使用します。(状態が[ Processed ] かどうかステータスチェック)
ちなみに[ キャプション言語 ] は、[ japanese ] にしておきましょう。
⑪ ⑩でステータスを取得し、[ Check if state is processed ] アクションで完了判定を実施。 状態が[ Processed ] 以外なら、はいの場合の処理をスキップし、 [ Delay ] アクションに移動。 [ Delay ] アクション で1分待機したのち、また [ Get Video Index ] を実行し、ステータスチェックという形になります。
動画サイズ次第では、アップロード&インデックス作成完了まで数十分かかるかもしれません。慌てずに気長に待ちましょう。
⑫ ⑩~⑪を何回か繰り返し、ステータスチェックの結果、完了判定(状態が[ Processed ])になったら最後にトランスクリプトをSharepointに格納して終了です。待ちわびたぜ!ひゃっほーぃ!!
このテンプレートフローの [ はいの場合 ] の構成は以下のような感じのアクション群でございます。
[ Compose ] アクション
Azure Video Analyzer for Media 上の動画分析結果の取得
↓
[ Parse JSON ] アクション
アクションで形式変換
↓
[ Apply to each ] アクション
[ Initialize variable Transcripts ] アクション内で定義した変数に形式変換したトランスクリプトデータをセット。
↓
[Create file]および、[Update file properties]アクション
Sharepointの指定フォルダ内に、トランスクリプトを含むテキストファイルを作成。
という形です。Sharepointの指定フォルダ は各自任意のフォルダを指定くださいませ。右側にあるOutlookアクションはトランスクリプト取得ができなかった場合は、メール通知するためのアクションらしいです。詳細は割愛割愛(>_<)
最後に 右上の [ 保存 ] をクリックし、クラウド上にフローを保存します。その後、[ テスト ]→ [ 手動 ]をクリックし、フローを有効化すれば、これでAIを使用した文字起こしアプリの完了です!!!
(ちょっと長かったですね… すみません(汗))
5. One Driveのフォルダ情報に動画を格納し、Sharepointにテキストファイルが届くことを確認します。
① ちゃんと動くかAIを使った文字起こしアプリが動くか動画を使ってテストしてみましょう!
[ 4. – ④ ]で指定した One Driveフォルダに動画データを格納します。
② [ OneDrive (Business) の動画のトランスクリプトを取得して SharePoint に保存する ] フローが動きだしているかチェックしましょう。トリガーおよび、アクションの右上にグリーンのレ点がついていれば大丈夫です。
[Do until] アクションは、動画のアップロードとインデックス作成完了までやや時間がかかりますので、ここでティータイムに出かけましょう。
インデックス作成過程で色んな分析が行なわれて、さまざまなメタデータが生成されているらしいです。詳細は以下の公式ドキュメントをご覧ください。今回使用するものは高精度なトランスクリプトだけですが、他にも気になる項目がたんまりあって、わくわくします。
ティータイムのお供にどうぞ(/・ω・)/
③ 頑張ってアプリを作った後のティータイムは格別ですね。Microsoft Docsで色んな分析ができることもわかってテンションが高まるばかりです。
さて、フローが完走したか確認し、完走していたら、次はSharepointの指定フォルダにテキストファイルが出力されているか確認します。
指定したフォルダに*.txtファイルがあれば成功です!見てみましょう!
④ 出力されたテキストファイルを確認し、トランスクリプトの精度をチェックしてます。
個人的な体感では8割以上、正確に抽出できていて、文字起こし自動化の目的は余裕で達成できました。
課題を強いて言うならカタカナ英語の兼ね合いで英単語とカナが混在しちゃっている箇所が機械学習で未来さらに精度が高まったらいいなぁと感じるくらいです。
兎にも角にも、高精度なトランスクリプトデータがゲットできました!
あとは議事録にまとめたい要点をつまんで、議事録のファイナライズしちゃいましょう(/・ω・)/
いかがでしたでしょうか。
ツールの操作という意味では学習は必要になりますが、内容は特に難しいプログラミングもなく、簡単なマウス操作と文字入力で、AIを使った文字起こしアプリが作成できちゃいましたね!
さすがMicrosoftさん。最高ですッ(/・ω・)/
Microsoftさんはクラウド・AIの民主化を目指しており、 クラウド・AI を誰でも簡単に使えるようにサービスを洗練させてくれてます。
皆さんのアイディアとクラウド・AIサービスを操作するちょっとの気持ちさえあれば、やりたいことを自分で形できる時代がもう目の前にきてます!やりましたね!!
(最近、業務にかまけて技術ブログの発信を怠っていましたが(汗))
定期的に便利アプリの紹介ブログを書いていこうと思いますので、引き続きよろしくお願いいたします。
駄文にもかかわらず最後までお読みいただき、ありがとうございました。
以上、[ プログラミング経験がなくても大丈夫!誰でも作れるAIを使った文字起こしアプリを作ってみよう。 # Azureリレー ] でしたーー!
【参考情報】
Video Analyzer for Media とは
網羅的に情報がある公式サイトです。読めば読むほど無限の可能性にわくわくします。
Azure Video Analyzer for Mediaを使ってみよう~API編~
情報量が多く、本ブログを書く際にだいぶ参考にさせていただきました。
最先端サービスの英語サイトの情報収集、翻訳、動作検証、ありがとう酒井さん!
(同じ会社の若い力あるエンジニアの方です。参考になるブログ発信者が自社の人だとなんだか心がほっこりします)
FIXER Inc. 荒井 隆徳(あらい たかのり)
Senior Solutions Specialist / Azure Training instructor
昨日の自分よりも今日の自分、そして今日の自分よりも明日の自分が成長しているように日々FIXERでチャレンジさせていただいてます!日々前進!!
[転載元]
プログラミング経験がなくても大丈夫!AIを使った高精度文字起こしアプリを作ってみよう。 # Azureリレー