記事公開日
コーディングなしで議事録書き起こしツールを実装する ②プロンプトによるカスタマイズ

こんにちは。DXソリューション営業本部の吾妻です。
本連載「コーディングなしで議事録書き起こしツールを実装する」では、各社が提供する生成AIと、PaaS / aPaaS / SaaSを組み合わせることによって、スクラッチ開発を避けつつ、文字起こしを自動化するツールを構築する方法をいくつかご紹介していきたいと思います。
前回の記事では、Power AutomateとAzure AI Speechを組み合わせることによって、ローコードで文字起こしツールを実装する方法についてご紹介しました。Microsoftが予め用意しているモデル(Azure Speech - 音声テキスト変換)を利用することで、準備するための手順を極力減らして実現することを目指しました。
第2回となる今回は、「既成の音声認識モデルを使うだけでは物足りない」「業務に合わせて文字起こし結果を調整したい」といったニーズに応えるため、プロンプトを利用して、開発者が用途に合わせてカスタマイズすることのできる文字起こし機能を実現したいと思います。
なぜプロンプトを使うのか
1. 専門用語・社内用語への対応
汎用モデルは一般的な語彙には強いものの、業界特有の専門用語や会社名、自社独自の製品名、部署名などを誤認してしまうことがあります。プロンプトの中で予め定義しておくことで、手作業で修正する手間を大幅に削減できます。2. 利用シーンに合わせた「形式」と「粒度」の調整
会議の目的や提出先(顧客/社内)によって、求められる書式が異なります。プロンプトへの指示一つで、柔軟に出力形式を切り替えられます。3. 文体変換と情報の整理
話し言葉(口語)特有の冗長な表現を、ビジネス文書として適切な「書き言葉(文語)」へ変換させたり、時系列順に発言を整理させたり、重要なトピックごとに分類して出力させたりと、「読むための議事録」を即座に生成できるのがプロンプトならではの強みです。このように、生成AIの「指示を受け付ける」という特性を活かすことで、単なる自動化を超えた、自社の業務に即した実用的なツールへと進化させることができます。
構成案
今回は、以下のようなシナリオを前提とします。
①前回同様に、ユーザーがAzure BLOBストレージにオーディオファイルをアップロードする
②Power Automateクラウドフローが起動して、Azure OpenAI Serviceでの書き起こしを開始する
③前回と違って、書き起こし処理を同期的に行い、完了次第、元のオーディオファイルと同じコンテナにテキスト形式で書き出す。
事前準備
Azureポータルから、Azure OpenAIリソースを作成します。ストレージアカウント(BLOBストレージ)は、前回作成したものを流用します。
①Azureポータルで、Azure OpenAIリソースを作成します。
②Microsoft Foundry(Foundry Tools)からWhisperのデプロイを作成し、リソースの「ターゲットURI」「キー」「デプロイ名」を控えておきます。
③前回作成したストレージアカウントを参照し、音声ファイルと書き起こしファイルを格納するコンテナを確認します。
クラウドフローの実装
Power Automate ポータルで、クラウドフローを作成します。
ユーザーがBLOBストレージにオーディオファイルをアップロードしたことをきっかけに起動して、アップロードされたファイルの内容(オーディオデータ)を取得して、それをAzure OpenAI Serviceに送信して結果をBLOBストレージに格納するPower Automateクラウドフローです。
使用するアクションの名称や指定するパラメーターについては、以下の画像をご覧ください。
これはあくまでもサンプルなので、例外処理などを割愛しています。実際には以下のような考慮が必要になります。
・トリガーの実行条件を指定してオーディオファイル以外がアップロードされてもトリガーされないようにしているが、本来は適切なオーディオファイルがアップロードされたか(内容、拡張子、再生時間)を検証する必要がある
・入力ファイルのサイズをチェックしたり、分割する機能を実装していないため、Whisperで処理できるサイズの上限である25MBを超えている場合にはBad Requestエラーが返る
また、Power AppsキャンバスアプリからPower Automateクラウドフローを呼び出してWhisper APIを実行するサンプルは、インターネット上にいくつか公開されていますが、今回はBLOBストレージコネクタ(トリガー/アクション)を利用していることから、それらの実装とは若干異なる箇所が出てきます。
動作確認
BLOBストレージに用意したコンテナへ、オーディオファイルをアップロードして、暫く待つと、テキストファイルが作成されます。
テキストファイルを開いて、文字起こしが保存されていれば動作確認完了です!!
プロンプトの改善案
Azure Speechなどの既成AIモデルを利用するのとは異なり、プロンプトを通して「どのような形式で出力させるか」「粒度をどうするか」「何を重視するか」を指示することで、議事録の書き起こし方をカスタマイズできます。
以下に、カスタマイズの内容と、プロンプトの例を示します。
要約の抽出
生成AIが得意なタスクとして、文章を要約したり、情報を整理・分類したりすることが挙げられます。
そこで、まずは、議事の要旨を簡潔にまとめさせるためのプロンプトを示します。
議事要旨生成プロンプト全文
| 添付したオーディオファイルに記録された会議音声をもとに、「議事の要約」と「決定事項」「宿題事項」を抽出してください。 # 制約条件 ・議事の要約は、180~200文字で簡潔にまとめてください ・決定事項は、箇条書きでまとめてください ・会議音声に存在しない内容を創作しないでください # 出力 ## 会議の要約 {議事の要約をここに埋め込む} ## 決定事項 * (決定事項1をここに埋め込む) * (決定事項2をここに埋め込む) ## 宿題事項 * (宿題事項1をここに埋め込む) * (宿題事項2をここに埋め込む) |
フィラーを残す
会議の内容を大まかに把握したい場合には上記のような議事要旨を読めば充分ですが、実運用上は、議事要旨では削られてしまった情報(発話のニュアンスや、雑談交じりの会話)がどのようなものだったのかを後から確認したい場面も出てきます。手作業で議事録を書き起こす場合には、同時に複数の形式の議事録を書き起こすのは困難ですが、自動化してしまえば、同時並行で複数の形式の議事録を書き起こす際の制約事項はありません。
原文生成プロンプト全文
| 添付したオーディオファイルに記録された会議音声をもとに、一言一句記録された音声と同じ文章となるように書き起こしてください。 # 制約条件 * 記録された音声から情報が欠損することがないように、すべての文章を書き起こしてください * 書き起こしの読み手が文脈を把握できるように、フィラーを除去せず、そのまま書き起こしてください * 会議音声に存在しない内容を創作しないでください # 出力 ## 会議の完全な書き起こし {書き起こした文章をここに埋め込む} |
用語集を定義する
既成AIモデルを利用して書き起こした場合、個社名や部署名、製品名などの固有名詞をうまく拾えない場合があります。プロンプトを利用することで、用語集を定義してその記載に寄せさせることができます。用語集を定義しない場合、「QES(キューイーエス)」を「QS(キューエス)」、「吾妻(あづま)」を「東(あずま)」と出力してしまうことがありますが、用語集を定義することで、正しい語句を出力させることができます。
用語集を定義したプロンプト全文
| 添付したオーディオファイルに記録された会議音声をもとに、簡潔な議事録を作成してください。 # 制約条件 * 会議の際の時系列に従って、発言順にまとめてください * 会議音声に存在しない内容を創作しないでください * 会議中に言及される固有名詞を次の用語集に定義します。用語集に定義した語句や近しい語句は、用語集通りの語句として書き起こしてください # 用語集 ## 個社名 - 株式会社QUICK E-Solutions - 弊社の名称 - QES - 弊社の略称 - Contoso(コントソ) - 顧客企業の略称 ## 部署名 - 営業部 - 顧客企業の部署 - システム部 - 顧客企業の部署 ## 個人名 - 吾妻(あづま) - 弊社の社員 - 佐原(さはら) - 弊社の社員 - 小高(こだか) - 弊社の社員 - 鈴木(すずき) - 顧客企業の社員 ## システム名 - Dataverse(データバース) - 市民開発で構築されたシステムのデータを格納しているデータストア - Azure SQL Database / SQL Database - マスタデータを格納しているサービス # 出力 ## 会議の簡潔な書き起こし {書き起こした文章をここに埋め込む} |
文体の変換
話し言葉(口語)から書き言葉(文語)への変換、俗語や社内用語の修正、英語などへの翻訳といった処理も、プロンプトで指示することで実現できます。
文体変換プロンプト全文
| 添付したオーディオファイルに記録された会議音声をもとに、簡潔な議事録を作成してください。 # 制約条件 * 話し言葉(口語)は書き言葉(文語)へ変換してください * 俗語や社内用語は、適切な語句に置き換えてください * 発言の意図を変えないように変換してください * 会議音声に存在しない内容を創作しないでください # 出力 ## 会議の書き起こし {書き起こした文章をここに埋め込む} |
まとめ
本記事では、Power Automate × Azure OpenAI Serviceで、アップロード → 自動文字起こし → 通知/保管までをローコードで実現する方法についてご紹介しました。既成モデルに頼るだけでなく、生成AIの「指示できる」という特性を活かすことで、議事録作成やナレッジ化をより一層進めることができます。QES では Power Platform の開発支援、QAサポート、開発者教育、ガバナンス整備など、組織で Power Platform を活用するためのサポートを包括的にご提供しています。Power Platform 活用についてご興味がある/利用中だが課題を感じていらっしゃるお客様はまずはお気軽にお問い合わせください。
このブログで参照されている、Microsoft、Windows、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。


