はじめに:社内機密音声のクラウド送信リスクを避ける
ZoomやTeams、対面会議の録音音声から議事録を作成する際、外部のSaaSサービスに音声をアップロードすることは、社内セキュリティ規程や守秘義務(NDA)の観点から制限されるケースが多くあります。
オープンソースの高速音声認識エンジン Faster-Whisper と話者分離ライブラリ PyAnnote.audio、そしてローカルLLMを組み合わせることで、完全オフライン・社内完結型の議事録自動生成パイプラインを構築できます。
1. システム構成図
[ 会議録音 (m4a / mp3 / wav) ]
│
├──▶ 【1. 高速文字起こし】Faster-Whisper (large-v3, CTranslate2最適化)
│
└──▶ 【2. 話者分離 (Diarization)】PyAnnote.audio → 話者A / 話者B のタイムスタンプ
│
▼
【3. タイムスタンプ統合エンジン】
・「誰が」「いつ」「何を話したか」の完全な発言録を生成
│
▼
【4. LLM構造化要約 (Qwen 2.5 / Llama 3.3)】
・会議の目的とアジェンダ
・決定事項(Decisions Made)
・保留・次回検討事項(Pending Items)
・担当者別TODOアクションアイテム(Action Items with Assignee)
2. Pythonによるコア実装例
from faster_whisper import WhisperModel
import json
def transcribe_audio(audio_path):
# GPU (cuda) と float16 で高速実行
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
segments, info = model.transcribe(
audio_path,
beam_size=5,
language="ja",
vad_filter=True, # 無音区間の自動スキップ
vad_parameters=dict(min_silence_duration_ms=500)
)
transcript = []
for s in segments:
transcript.append({
"start": round(s.start, 2),
"end": round(s.end, 2),
"text": s.text.strip()
})
return transcript
60分の会議音声であっても、RTX 4070等の一般的なGPU環境で約2〜3分で文字起こしから構造化議事録の生成までが完了します。