面倒な文字起こしは、ゲーミングPCを使って AI に任せましょう。（第2弾：faster-whisper編）

# はじめに

今回は、 openai-whisper よりも早く動作すると言われている faster-whisper を使った文字起こしをしてみました。

前回試した openai-whisper よりも簡単に環境構築ができました。
前回の記事は下記からご覧ください。

https://qiita.com/IoriGunji/private/9b15477fb5b21ef70b57

# 環境

今回の環境は下記のとおりです。  
なお、前回の記事と同様で NVIDIA 製の GPU が必須になります。  

## 端末

- **OS：** Windows 11 Home
- **CPU：** 13th Gen Intel Core i7-13620H 2.40 GHz
- **メモリ：** 32GB
- **GPU：** NVIDIA GeForce RTX 4060 Laptop（VRAM：8GB）

## Python 実行環境

Python は10系統のものが必要になるので、注意してくだだい。

- **Python：** 3.10.11
- **Python バージョン管理ツール：** pyenv-win（ver 3.1.1）
- **Python パッケージ管理ツール：** Poetry（ver 1.8.3）

Python 仮想環境の構築方法はこちらご覧ください。

https://qiita.com/IoriGunji/items/290db948c11fdc81046a#poetry-%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%A2%BA%E8%AA%8D

# 環境構築（セットアップ編）

Whisper を GPU で動かすには下記のものが必要になります。

- Build Tools for Visual Studio
- CUDA Toolkit（ver.12.6）
- cuBLAS
- cuDNN Library

> **補足**  
> 前回の記事の openai-whisper とは異なり、 faster-whisper は FFmpeg をインストールする必要はありません。
> インストール済みの場合は、そのままで特に問題ありません。

## Build Tools for Visual Studio

Build Tools for Visual Studio のセットアップ方法は前回と同様です。  
既にインストール済みの場合はこの手順を飛ばしてください。  
インストールがまだの場合は前回の記事の **Build Tools for Visual Studio** の手順を実施してください。

https://qiita.com/IoriGunji/private/9b15477fb5b21ef70b57#build-tools-for-visual-studio

## CUDA Toolkit

今回の CUDA Toolkit のバージョンは12系統が必要になります。
記事執筆時点での最新バージョンの 12.6.3 をインストールすることにします。

### ダウンロード

下記のサイトから **CUDA Toolkit** をダウンロードします。

https://developer.nvidia.com/cuda-toolkit-archive

`CUDA Toolkit 12.6.3` をクリックします。

![developer.nvidia.com_cuda-toolkit-archive.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/e8b7c491-2c5a-b807-4e90-8012eb14c34e.png)

利用してる環境に合わせて選択していきます。

1. `Operating System` は `Windows` をクリックします。
1. `Architecture` は `x86_64` をクリックします。
1. `Version` は `11` をクリックします。
1. `Installer Type` は `exe (local)` をクリックします。
1. `Download (3.0GB)` をクリックして、ダウンロードします。

![developer.nvidia.com_cuda-downloads.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/be53e7fc-93ba-4d28-fd9d-65574d10a6b5.png)

### インストール

ダウンロードした `cuda_12.6.3_561.17_windows.exe` を実行し、任意のフォルダに解凍します。

![rapture_20250108184628.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/f4a26d7a-22a6-0085-5b0b-1578772c66f5.png)

解凍が終わるのを待ちます。

![rapture_20250108184705.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/84bcda1b-fded-c5fa-6b4d-8c4ddc73852a.png)

解凍が終わるとインストーラーが自動で起動します。
システムの互換性チェックが終わるのを待ちます。

![rapture_20250108184743.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/a03eb596-4772-21c6-f96c-5cdf9f9aa38f.png)

前回インストールした CUDA 11.8 が既に存在するため、警告が出ます。  
`続行(O)` をクリックして進みます。  

![rapture_20250108184753.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/feb33566-8fcf-c9a1-39b0-37f8b50bd196.png)

`同意して続行する(A)` をクリックします。

![rapture_20250108184947.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/6300a7e8-fd4d-e3f2-d307-726e000d6446.png)

インストールオプションは `高速(推奨)(E)` のまま `次へ(N)` をクリックします。

![rapture_20250108185037.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/d2c2e61b-4d89-499e-82e6-6ba7d253af8b.png)

`I understand, and wish to continue the installation regardless.` にチェックを入れて `NEXT` をクリックします。

![rapture_20250108185015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/485d86b9-1663-922b-29c2-41f8483ff657.png)

前回インストールした CUDA 11.8 が既に存在するため、環境変数の確認画面が表示されます。
`次へ(N)` をクリックして進みます。

![rapture_20250108185119.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/6ffc0fb1-4f55-f625-3e2d-2c3cb7c273e3.png)

インストールが完了するのを待ちます。

![rapture_20250108185224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/999be6af-8c82-7732-c83a-f472aeefd720.png)

`次へ(N)` をクリックします。

![rapture_20250108185548.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/f1835787-5b00-d314-ea6c-b6eed112713a.png)

チェックを外して `閉じる(C)` をクリックします。

![rapture_20250108185559.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/0371a676-6c85-34b2-fc7e-3fb56bf033f7.png)

> **補足**  
> 複数の CUDA Toolkit をインストールすると、複数の Path が登録されます。  
> Path を切り替えて使ってください。
> 
> ![rapture_20250108192018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/c941ad7b-52cc-5fb3-400d-c716ef7b2bcc.png)

## cuBLAS

今回は cuBLAS も必要になります。  
ですが、先程インストールした CUDA Toolkit に含まれているため、インストール作業などは必要ありません。  

## cuDNN Library

導入手順は前回とほぼ同じです。

### ダウンロード

下記のサイトから **cuDNN Library** をダウンロードします。

https://developer.nvidia.com/cudnn

`Download cuDNN Library` をクリックします。

![developer.nvidia.com_cudnn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/fa12a435-361c-a31e-7ef1-36c34641dfaa.png)

下記の順で選択していきます。  
今回は CUDA Version が **12** になります。  
注意してください。  

1. `Operating System` は `Windows` をクリックします。
1. `Architecture` は `x86_64` をクリックします。
1. `Version` は `Tarball` をクリックします。
1. `CUDA Version` は `12` をクリックします。
1. `Download (472.9MB)` をクリックして、ダウンロードします。

> **補足**  
> cuDNN Library はWebサイトを開いた際に表示される最新バージョンをダウンロードすれば大丈夫です。

![developer.nvidia.com_cudnn-downloads.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/89f3b942-61e8-afc6-d701-17c1a141f721.png)

### ライブラリの展開

ダウンロードした `cudnn-windows-x86_64-9.6.0.74_cuda12-archive.zip` を解凍し、下記の3つのフォルダを CUDA をインストールしたフォルダに移動させます。

対象の CUDA フォルダは `v12.6` の方になります。
注意してください。

- bin
- include
- lib

![rapture_20250108191243.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212972/15cad89a-3842-29a4-c202-4ae56ef14b96.png)

※デフォルトでの CUDA のフォルダは `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6` になります。

# 環境構築（Python 編）

faster-whisper を使うにあたり Python 実行環境が必要になります。  
今回も pyenv-win と Poetry を利用する前提で進めています。

Python 実行環境の構築については、下記を参照してください。

https://qiita.com/IoriGunji/items/290db948c11fdc81046a

## 新規環境構築

下記の記事を参考にし、新しく Pyhon 実行環境を構築します。  
なお、 Python は3.9以上のものが必要になります。  
今回も前回と同様に Python 3.10.11 を利用しました。

> **補足**  
> 今回作成した仮想環境のプロジェクト名は `FasterWhisperExecutionEnvironment` としています。

https://qiita.com/IoriGunji/items/290db948c11fdc81046a#%E6%96%B0%E8%A6%8F%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89

## faster-whisper のインストール

`add` コマンドでインストールします。

```powershell
poetry add faster-whisper
```

# faster-whisper の実行

準備が整ったら faster-whisper を実行してみます。
今回はコマンドライン実行が出来なさそうなので、素直にスクリプトを作ります。
（コマンドライン実行する方法をご存じの方がいらっしゃったら、コメントをいただけると助かります！）

## スクリプトファイルの作成

GitHub に載っているコードを少し変更して実行してます。  
※ファイル名は適宜変更してください。

```main.py
from faster_whisper import WhisperModel

model_size = "large-v3"

# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")

# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")

segments, info = model.transcribe("sample_voice.mp4", beam_size=5, language="ja")

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))
```

## スクリプトの実行

スクリプトを保存したら実行してみます。  

```PowerShell
poetry run python fasterwhisperexecutionenvironment/main.py
```

> **補足**  
> エラーが出る場合は、 CUDA の Path が反映されていない可能性があります。
> その場合は、端末を再起動してみてください。

# 参考文献

下記のサイトを参考にさせて頂きました。

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

https://qiita.com/reriiasu/items/920227cf604dfb8b7949