OpenAIの文字起こし「Whisper」が高速になった「faster-whisper」をWindowsに導入して動画の文字起こしを行います。
OpenAIの文字起こしWhisperを「CTranslate2」というものを使用することで高速処理が可能になっています。
とにかく、通常のWHisperより高速で文字起こしをしてくれます。
Pythonのバージョンによる互換性の問題を避けるために、仮想環境のminicondaを使用します。 minicondaのダウンロードはここを参照ください。
miniconda3を起動し、whisperの環境を構築します。
conda create -n whisper python=3.10
conda activate whisper
pip install faster-whisper
faster-whisperを使用するためにはPythonのコードと音声ファイルが必要です。
PythonコードはgitにあるものをCPUで使用するように設定して使ってみます。
ただし、CPU処理のため正直に遅いです。GPUで起動したい場合はNVIDIAのグラボが必要です。
from faster_whisper import WhisperModel
model_size = "large-v3"
model = WhisperModel(model_size, device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
CPU処理なので正直遅い...GPUで起動したい。
GPUで起動するためにはNvidiaのグラボが必要です。
faster-whisperをGPUで使うためには、NVIDIAのページから次の2つをインストールする必要があります。
cuBLASのライブラリーはWindows版が存在しないため、CUDA Toolkitをインストールします。
また、WhisperはCUDA Toolkitのバージョン12では動作しないため、11バージョンをインストールしてください。
cuBLASとcuDNNの二つが必要になるのでインストールします。
cuda toolkit11.8のダウンロード
cuda-toolkitのインストールには特別な設定が必要ないので普通に進めて行っても問題ありません。
CUDAが正常にインストールされたか確認します。
nvcc -V
このように表示されていれば問題ありません。
次にcudnnをダウンロードします。
登録が完了したら、cuDNN11.xをダウンロードします。
ここでも11.xを選びます。
cuDNNの中にある3つのフォルダーを移動させます。
移動先はcuda toolkitをインストールされた所と同じ所に移動させます。
cuda toolkitがインストールされたところはwhereコマンドを使って確認します。
where nvcc
C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8
ここで表示されたv11.8のフォルダーに3つのファイルを移動させます。
これでGPUで起動できるようになりました。
設定が終わったらGPUでfaster-whisperを起動してみます。
そのまま公式のものをコピペするだけで起動できます。
from faster_whisper import WhisperModel
model_size = "large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
segments, info = model.transcribe("audio.mp3", beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
起動ができない場合はNVIDAドライバーをダウンロードして、バージョンアップをしてください。古かったりすると、cuda、cuDNNのインストールできない可能性があります。
faster-whisperを使用すると非常に高い精度で文字起こしができたのでびっくりしました。
処理も早いので、GPUを使用することでリアルタイムでの文字起こしも可能になります。ffmpegやVB-CABLEを使用することでさまざまな可能性が広がります。GPUの性能は機器に依存するため、高速な変換を求める場合は15万円程度のグラボを購入することをお勧めします。
vb-cableを使用したリアルタイム文字起こしはこちら
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください