【要約】ローカルLLMで文字起こし・要約をやってハマった話(mlx-whisper × Ollama) [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
著者は、プライバシー保護とコスト削減を目的に、ローカル環境での自動議事録作成システムを構築しようとした。しかし、商用サービスと比較して、出力精度や挙動の不安定さに直面した。具体的には以下の問題が発生した。
- ・Whisperが「ご視聴ありがとうございました」等の定型句を繰り返す幻聴現象。
- ・音声冒頭の無音区間が、幻聴を誘発するトリガーとなる問題。
- ・Ollamaのデフォルト設定(num_ctx=2048)による、文字起こしデータの切り詰め。
- ・固定テンプレートを用いたプロンプトが、対話形式の会議で破綻する問題。
// Approach
著者は、モデル自体の変更だけでなく、デコード設定や音声の前処理、LLMのパラメータ調整によって問題を解決した。以下の手法を適用した。
- ・
mlx-whisperのcondition_on_previous_textをFalseに設定し、幻聴の連鎖を遮断。 - ・
ffmpegを用いて、音声冒頭の無音区間を物理的に削除する前処理を実施。 - ・精度を優先し、
large-v3-turboではなくlarge-v3モデルを採用。 - ・Ollamaの
num_ctxを16384へ拡張し、長文のコンテキストを保持。 - ・プロンプトを、会議形式に応じて動的に構成を変える柔軟な設計へ変更。
// Result
一連の対策により、Mac mini (M4)上で実用的な文字起こし・要約パイプラインが完成した。以下の成果が得られた。
- ・幻聴の抑制により、文字起こし精度が大幅に向上(1300字から5600字へ改善)。
- ・コンテキスト長の拡張により、30〜60分の会議内容を網羅した濃密な要約が可能に。
- ・Googleドライブと連携した、音声投入から議事録生成までの自動化フローを実現。
Senior Engineer Insight
> ローカルLLMの実用化において、モデル性能以上に「周辺環境の制御」が重要であることを示す好例だ。特にApple SiliconでのMetal活用や、ffmpegによる音声前処理の組み合わせは、低レイテンシ・高精度を求める現場で極めて実践的である。ただし、メモリ24GBというリソース制約下での運用となるため、スケーラビリティの観点では、より高度な分散処理や、クラウドとのハイブリッド構成の検討が必要になるだろう。