良い要件です。オンプレ・ネット遮断・低スペック・OSSのみ、という条件で「音声→文字起こし→要約」を実現する代表的な方法を、軽い順に3プランに整理しました。どれも完全オフライン運用が可能です。
Vosk + 抽出型要約(TextRank/Sumy)
文字起こし: Vosk(Kaldi系、CPUで軽快・小さな日本語モデルあり)(alphacephei.com)
要約: Sumy(TextRank などの抽出型要約のPython実装。Apache-2.0)(PyPI, miso-belica.github.io)
追加(任意): VADは WebRTC VAD(py-webrtcvad、軽量・BSD/MIT系)や Silero VAD(MIT)で無音区間を除去すると安定します。(GitHub)
メリット: とにかく軽い/Raspberry Pi級でも動作可。
デメリット: Whisper系より精度は落ちる。抽出型要約は文章生成ではなく“重要文の抜粋”。
faster-whisper(CTranslate2) + 抽出型 or 小型LLM要約
文字起こし: faster-whisper(WhisperをCTranslate2で高速化。INT8量子化でCPU省メモリ・高速)(GitHub, PyPI)
VAD(任意): Silero VAD または WebRTC VAD。(GitHub)
要約(軽量案): Sumy(抽出型)(PyPI)
要約(生成型案): Qwen2.5-Instruct 3B/7B のGGUF量子化を llama.cpp で実行(Apache-2.0 + MIT)。日本語も強く、CPUでもQ4/Q5で実用。(Hugging Face, GitHub)
メリット: Whisper精度+CPU高速化でコスパ◎。要約は抽出/生成どちらも選べる。
デメリット: Voskよりは重い。生成型要約を使うならモデルの用意が少し手間。
whisper.cpp(大モデル量子化) + llama.cpp(7B前後量子化)
文字起こし: whisper.cpp(WhisperをC/C++でGGML/GGUF推論。量子化でCPU運用)(Hugging Face, ai.azure.com)
要約: **Qwen2.5-7B-Instruct(Apache-2.0)やMistral-7B-Instruct(Apache-2.0)**を llama.cpp でGGUF量子化して実行。(Hugging Face)
メリット: Whisper Large系の精度+7B要約で読みやすい和文サマリ。
デメリット: メモリと時間をそれなりに使う(量子化で数GB級に抑えられるが初期準備は重め)。
※Meta Llama系は“オープンウェイト”であってOSI準拠のオープンソースではありません。要件が「OSSのみ」なら避け、Apache-2.0の Qwen2.5 や Mistral を選ぶのが安全です。(Open Source Initiative)