Python入門トップページ


WhisperX で音声認識と話者分離をしてみよう

目次

Windows 編

  1. FFmpeg のインストール
  2. WhisperX のインストール
  3. CPU による音声認識
  4. Hugging Face トークンの取得
  5. CPU による音声認識・話者分離
  6. GPU による音声認識・話者分離の高速化

macOS 編

  1. FFmpeg のインストール
  2. WhisperX のインストール (CPU 処理)
  3. CPU による音声認識と話者分離
  4. GPU (MPS) の利用

はじめに

OpenAI whisper は OpenAI 公式実装の音声認識のパッケージで,PyTorch がベースになっています.シンプルで,安定しており,GPU (MPS含む) の対応が行いやすいという特徴があります.一方で,WhisperX は音声認識に加えて,時間精度の向上,話者分離を加えた拡張版で,NVIDIA の CUDA 前提ではあるものの GPU に最適化されているという特徴があります.次の表に機能の比較を簡単にまとめます.

項目
OpenAI Whisper
WhisperX
音声認識
タイムスタンプ 粗い ✓ 高精度(word単位)
話者分離 × ✓ (--diarize
認識速度 やや遅い ✓ 高速(faster-whisper 使用)
GPU最適化 ✓ 強い(CUDA前提)
出力 シンプル 詳細(JSON 充実)

macOSで動かしたい場合,MPSを使いたい場合,シンプルに文字起こしだけを実行したい,というような場合は OpenAI whisper を利用するとよいでしょう.一方で,議事録作成や分析用途として話者分離が必要であったり,単語単位でその発話時間を必要とするような場合は WhisperX が適しています.また,NVIDIA GPU (CUDA) の利用によって高速な処理ができることも WhisperX の利点です.

このセクションでは,Windows 編と macOS 編についてそれぞれ WhisperX を用いた音声認識や話者分離を行います.Windows 編においては GPU を利用することで CPU と比較して10倍程度の速度で実行できることを示します.一方で,macOS 編では主として CPU を用いた利用方法について示します.OpenAI Whisper で GPU を利用する方法についても説明しますが,現時点では認識精度などの観点から Windows + NVIDIA GPU の組み合わせが最適であることも分かりました.