0
3

Whisperを使った音声(動画)ファイルの文字起こし

Last updated at Posted at 2024-07-29

はじめに

今回は、音声認識AIのWhisperをローカル環境で使用する方法を詳しく紹介します。
Whisperは有料でAPI利用もできるが、今回は無料でローカルインストールして使用する。

Whisperとは

Whisperとは、ChatGPTなどを開発したOpenAI社が提供している音声認識AIである。Whisperは機械学習アルゴリズムと深層学習を駆使して、高度な音声認識を実現している。
また、Whisperは日本語や英語など約100言語に対応している。
詳しいアルゴリズムなどは以下のリンクを参照してください。

環境

今回使用する私の環境は以下の通りです。

-PC内環境-

OS : Windows11
CPU : Intel Corei5-10400F
GPU : NVIDIA GeForce GTX 1660 SUPER ... GPUはなくても動くがあったほうが快適
Python 3.12.2 (Python 3.7以上が必要)
venv : 仮想環境構築
Cuda Toolkit : 12.1 ... NVIDIAのGPUを活用した並列コンピューティングを行うための開発ツールキット
FFmpeg ... オーディオやビデオを録画、変換、およびストリーミングするためのオープンソースのマルチメディアフレームワーク

環境構築

仮想環境構築

venvを使った仮想環境構築のやり方は以下を参照。

ここでの仮想環境の名前([venv_NAME])は"whisper"とする。

CUDA Toolkit

今回はCUDA Toolkit 12.1をダウンロードする。(Pytorchとバージョンをそろえる。)
以下のように自分の環境を指定しダウンロードする。
CUDAのversion指定

Pytorch

CUDA Toolkitと同じバージョンを指定してインストールする。今回の場合は+cu121のPytorchをインストール。
以下のように自分の環境の指定を行う。
Pytorch cu+121
すると画像の「Run this Command」にインストールするためのコマンドが生成される。これを仮想環境上に入力していインストールを行う。

cmd.(whisper)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

FFmpeg

以下の手順でFFmpegをダウンロードを行う。また、FFmpegを使用するにはPassを通す必要がある。
まず、画像の「ffmpeg-master-latest-win64-gpl.zip」を指定してダウンロードする。(ダウンロードを行ったフォルダーをメモすると良い。)
FFmpeg Assets

次にFFmpegのPathを通す。
Windowsの検索欄に「システム環境変数の編集」と入力して実行する。
システム環境変数の編集画像
次に「環境変数」を実行。
「[USER名]のユーザー環境変数(U)」の「Path」を実行する。
「新規作成」を実行し、先ほどFFmpegをダウンロードしたファイルの一つ下のディレクトリにある「bin」までのPathを通す。

[USER_PASS]\ffmpeg-master-latest-win64-gpl-LatestAuto-Build (2024-05-31 1250)\bin

「OK」を押してウィンドウを閉じる。

ライブラリのインストール

Whisperのインストールを行っていく。

pip install git+https://github.com/openai/whisper.git

上のコマンドを実行することで以下のパッケージがインストールされる。

  • numpy
  • torch
  • tqdm
  • more_itertools
  • transformers
  • ffmpeg-python

テスト実行

では今から、Whisperのサンプル音声の文字起こしを行っていく。
今回はサンプル音声データの文字起こしを行う。こちらの音声ファイルを拝借しました。
サンプル音声の内容は以下の通り。

過去最強クラスの台風14号が近づいてきています。九州南部、そして北部の皆さんを中心に防風、高波、高潮や大雨などに最大級の警戒をしてください。

プログラム

サンプルプログラムは以下の通りである。

transcription.py
import whisper

# モデルのロード
model = whisper.load_model("base")

# 音声ファイルのパス
audio_path = "file_path"

# 音声ファイルの文字起こし
result = model.transcribe(audio_path)

# 結果を表示
print(result["text"])

このプログラムはシンプルにモデルをロードして結果のテキストを出力するプログラムである。「file_path」のところを音声ファイルとする。また、モデルは公式ドキュメントに以下のような記載がある。

Size Parameters English-only model Multilingual model Required VRAM Relativ speed
tiny 39 M tiny.en tiny ~ 1 GB ~ 32 x
base 74 M base.en base ~ 1 GB ~ 16 x
small 244 M small.en small ~ 2 GB ~ 6 x
medium 769 M medium.en medium ~ 5 GB ~ 2 x
large 1550 M N/A large ~ 10 GB 1 x

今回のプログラムではテストとして標準の「base」モデルで行う。

結果

プログラムを実行した結果は以下の通りになる。

過去最強クラスの台風14号が近づいてきています。九州南部、そして北部の皆さんを中心に防風、高波、高市屋大雨などに最大球の警戒をしてください。

出力の結果、「高潮や」を「高市屋」と誤字しているだけだった。

参考文献

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3