会議の録音や文字起こしは残るものの、その後に議事録をまとめたりタスクを起票したりする作業は意外と手間がかかります。
そこで今回は、会議音声から議事録生成、Action Itemsの抽出、多言語翻訳までを自動化するパイプラインを構築してみました。
作成した仕組みでは、会議の録音ファイルをS3へアップロードするだけで、
- 音声の文字起こし
- 会議内容の要約
- Action Itemsの抽出
- 英語への翻訳
- GitHub Issueの作成
- Slackへの通知
までを自動で実行できます。
単に議事録を作るだけではなく、会議ログを開発フローへ組み込み、次のアクションにつなげることを目的としています。
作ったもの
社内の定例会議や技術ブレストの録音ファイルをS3へアップロードすると、以下の処理が自動で実行される仕組みを構築しました。
利用したAPIは以下の3つです。
| API | 用途 |
|---|---|
| Scribe API | 音声の文字起こし |
| Summarizer API | 要約・Action Items抽出 |
| Translator API | 多言語翻訳 |
今回のテーマは、
「会議ログを読むためのメモではなく、実行するためのデータへ変換する」
ことです。
Scribe APIの精度はかなり高い
まずは文字起こしです。
日本語の会議では language: "ja-JP" を指定し、さらに diarization: true を有効にしました。
{
"language": "ja-JP",
"diarization": true
}
これにより、
- speaker_1
- speaker_2
のように話者を分離した状態で出力できます。
後続のAction Items抽出では「誰が担当するタスクか」の精度にも影響するため、実運用では有効化しておくのがおすすめです。
Summarizer APIが思った以上に賢い
今回特に面白かったのがSummarizer APIです。
Action Item抽出には以下を指定します。
{
"task": "action_items"
}
会議の内容から
- 誰が
- 何を
- 次回までに何をするか
を抽出してくれます。
文脈で誤変換を補正してくれる
検証中に面白いケースがありました。
Scribe APIの結果で、
毎苦労サービス
となっていた箇所があります。
もちろん正しくは
マイクロサービス
です。
ところがSummarizer APIへ渡した結果では、
マイクロサービス構成について検討する
のように補正された内容で要約されていました。
おそらく会議全体がシステムアーキテクチャの話題だったため、前後の文脈から補完したのだと思われます。
ASR単体ではなく、LLMベースの要約モデルを後段に置くメリットを実感したポイントでした。
Translator API利用時の注意点
Translator APIを利用する際は、JSON全体ではなく翻訳対象のテキストのみを渡すのが安全です。
例えば、以下のようなデータがあるとします。
{
"duration_sec": 600,
"summary": "..."
}
JSON構造をそのまま翻訳対象にすると、キー名まで変換されてしまい、後続処理でパースできなくなる可能性があります。
そのため、
という構成にしています。
翻訳対象は本文テキストだけに限定するのがおすすめです。
実際の処理量
APIレスポンスの usage を確認して計測した結果です。
| 処理ステップ | 入力 | 出力 |
|---|---|---|
| Scribe(文字起こし) | 音声データ | 約1,200文字 |
| Summarizer(要約) | 1,200文字 | 約250文字 |
| Translator(英訳) | 250文字 | 約600文字 |
要約を経由することで、翻訳対象を約80%削減できました。
コスト削減でやったこと
VTTをそのまま渡す
VTT形式の字幕ファイルをSummarizerへ渡すと、タイムスタンプを除去した上で処理されます。
結果としてプレーンテキストより課金対象文字数を抑えられるケースがありました。
要約してから翻訳する
全文翻訳より圧倒的に効率が良く、コスト削減効果も大きいです。
実運用ならDraft Reviewは必須
最初はAction ItemsをそのままGitHub Issueへ登録していました。
ただし運用してみると、
- 誤認識
- 誤抽出
- 機密情報の混入
はゼロにはできません。
現在は、
という運用にしています。
APIへ送る前にマスキングする
会議データには顧客名や個人情報が含まれる場合があるため、
実運用ではAPIへ送信する前にマスキング(Redaction)処理を行うのが安全です。
株式会社〇〇
山田太郎
↓
[COMPANY_001]
[PERSON_001]
のように置換してから送信することで、
機密情報の漏洩リスクを抑えられます。
まとめ
Zoom AI Servicesは、単なる文字起こしAPIではなく、会議ログをアクションにつなげるためのAPI群として活用できると感じました。
Scribe APIで文字起こしし、Summarizer APIで要約やAction Itemsを抽出し、GitHubやSlackと連携することで、会議後の作業をかなり自動化できます。
特に、要約時に文脈から誤認識を補正してくれる点は想像以上に実用的でした。
「録音して終わり」ではなく、「録音したら次のアクションが決まる」。そんな仕組みを手軽に作れるのがZoom AI Servicesの面白いところだと思います。

