🎧

RTX3070でfaster-whisperを途中の環境構築からやってみた

2023/10/22に公開

はじめに

せっかくRTX3070があって、Whisperは6GくらいGPUメモリがあれば動くと聞き、
faster-whisperがLarge_v2を使えてしかも処理速度が速いと聞いたのでやってみた
C++は入っているので、CUDA周りの導入から始めました。
※なんも考えずにPython走らせたらcuDNNが無いよエラーで気付かされました

PC環境

  • i5-12400F
  • NVIDIA RTX3070(GPUメモリ8GB)
  • メモリ DDR4 32GB
  • Python 3.10
  • Windows 11

CUDA関連の導入

CUDA・cuDNNのダウンロードとインストール

ここのサイトがとても詳しく書いており非常に参考になりました!!
https://tech.nkhn37.net/cuda-cudnn-install-windows/

CUDA Toolkitはv11.8を選ぶこと
※PyTorchがCUDA 11.8かCUDA 12.1に対応しているため(2023/10/22現在)
 みんな11.8でやってるからそこに合わせるのが無難
cuDNNはここを見てcuDNNの推奨バージョンを確認
今回はcuDNN 8.9.5を選択

パッケージの導入

faster-whisperのインストール

pip install faster-whisper

https://github.com/guillaumekln/faster-whisper

コード

GPT4君にfaster-whisperのREADMEの文章を全て食わせてコードを書いてと指示しました。
結果をテキストに出力したかったのと経過時間と終了時間が見たかったのでコードは以下となります。

import time
from faster_whisper import WhisperModel

start_time = time.time()  # 処理開始時間

# モデルの初期化
model_size = "large-v2"
model = WhisperModel(model_size, device="cuda", compute_type="float16")

# 音声ファイルから文字起こし
segments, info = model.transcribe("audio.mp3", beam_size=10)

print(f"Detected language '{info.language}' with probability {info.language_probability}")

# 結果をテキストファイルに保存
with open("transcription.txt", "w") as f:
    for segment in segments:
        f.write(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}\n")
        laptime = time.time() - start_time
        print(f"{laptime:.2f}秒経過_[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

end_time = time.time()  # 処理終了時間

# 処理時間の計測
elapsed_time = end_time - start_time
print(f"Total time taken: {elapsed_time:.2f} seconds")

実行結果

同じ階層にaudio.mp3(自分は.m4aファイルでやりました)を入れて実行
transcription.txtに文字起こしの結果が出力されます。

beam_size=10でも
3683秒(1時間01分23秒)の音声ファイルが448.54秒(7分28秒)で処理されました
beam_size=5ならもっと早く処理が完了します。

使用GPUメモリは6GBぐらいで推移していました。

出力

[148.00s -> 177.00s] はい じゃあトップバッターで テーマをさせていただきます
[178.00s -> 181.00s] レミオと申します よろしくお願いします
[181.00s -> 183.00s] 今回発表するのは
[183.00s -> 188.00s] 未経験のエンジニアが 先生を使って初号Aラインアンテナを
[188.00s -> 190.00s] 作りましたというところでございます
[190.00s -> 196.00s] よろしくお願いします
[196.00s -> 200.00s] 私なんですけども 非エンジニアというところで
[200.00s -> 202.00s] もともと何をしていたかといいますと
[202.00s -> 207.00s] 携帯地域の鉄塔とかアンテナを この感じで作っていました
[207.00s -> 211.00s] 鉄塔は田舎の方に行けば よく見ると思いますけども
[211.00s -> 215.00s] 結構ビルの上で 多分静岡の上とかもよく見たら
[215.00s -> 222.00s] こういう細いアンテナが チラホラと立ったりしていて
[222.00s -> 225.00s] この茶色いやつとかは まさに全色で
[225.00s -> 230.00s] 僕が最初から設計だったり 積算だったりというところを

まとめ

RTX3070でfaster-whisperの環境構築から実行までを行いました。
CUDAの構築関係で最初にCUDA12.3を入れてしまってアンインストールしたなど手違いがあり
時間がかかってしまいましたが、構築後はとてもスムーズに文字起こしができて
しかも処理がめちゃくちゃ早く感動モノです!

ゲーミングPCを持ってる型はGPUメモリ8GB以上の場合が多いので文字起こし無料でしたいなーと思ったら迷わずに試してみましょう!!

Discussion