Faster Whisperを使用して、手早くかつ効率的に音声認識を行う方法について、Dockerを使った手順を初心者にもわかりやすく解説します。Dockerを用いることで、環境依存を減らし、どのようなマシンでも同じ条件でFaster Whisperを起動させることができます。
Faster Whisperについてはこちら
はじめに
Faster WhisperはOpenAIのWhisperモデルを高速化したもので、音声ファイルをテキストに書き起こす際に使用されます。この記事では、そのセットアップと基本的な使用方法を、Dockerを通じて解説します。Dockerを使うことで、インストールや設定の複雑さを大幅に削減できるため、より手軽にFaster Whisperの力を活用できます。
Dockerの準備
まず、Faster Whisperを動かすために必要なdocker-compose.yml
とDockerfile
の基本的な内容から見ていきましょう。
docker-compose.ymlの設定
services:
app:
build: .
volumes:
- ./:/app
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [ gpu ]
working_dir: /app
tty: true
この設定ファイルでは、アプリケーションがDockerコンテナ内で動くための基本設定を行います。特に、NVIDIAのGPUを使用する設定が含まれているため、音声認識の処理速度が大幅に向上します。
Dockerfileの内容
FROM nvidia/cuda:12.0.1-cudnn8-runtime-ubuntu20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
gcc \
curl \
wget \
sudo \
pciutils \
python3-all-dev \
python-is-python3 \
python3-pip \
ffmpeg \
portaudio19-dev \
&& pip install pip -U
RUN pip install faster-whisper
このDockerfile
では、Faster Whisperが必要とする依存関係をインストールし、最後にfaster-whisper
自体をインストールします。nvidia/cuda
イメージをベースにしているため、GPUを活用した高速な音声認識処理が可能です。
起動手順
DockerとDocker Composeがインストールされている環境では、以下のコマンドでFaster Whisperを含むコンテナをビルドし、起動します。
C:\Prj\faster-whisper>docker-compose up
このコマンド一つで、必要な環境が全てセットアップされ、Faster Whisperが使用可能な状態になります。
デモスクリプトの実行
セットアップが完了したら、実際に音声ファイルをテキストに書き起こしてみましょう。以下のデモスクリプトを使用します。
from faster_whisper import WhisperModel
model_size = "large-v3" # モデルのサイズを指定
# GPUでFP16を使用して実行
model = WhisperModel(model_size, device="cuda", compute_type="float16")
# またはGPUでINT8を使用して実行
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# またはCPUでINT8を使用して実行
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
segments, info = model.transcribe("audio/Word2Motion/001/02_nodding.wav", 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))
コンテナ内でこのスクリプトを実行するには、まずコンテナのシェルにアクセスします。
C:\Prj\faster-whisper>docker-compose exec app /bin/bash
そして、上記のスクリプトを実行します。
root@d065c8828702:/app# python demo/demo01_whisper_audio_transcription.py
preprocessor_config.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 340/340 [00:00<00:00, 188kB/s]vocabulary.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1.07M/1.07M [00:00<00:00, 3.01MB/s]config.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2.39k/2.39k [00:00<00:00, 1.82MB/s]tokenizer.json: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2.48M/2.48M [00:01<00:00, 1.76MB/s]model.bin: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.09G/3.09G [04:29<00:00, 11.4MB/s]
Detected language 'ja' with probability 0.987793███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.09G/3.09G [04:29<00:00, 11.7MB/s]
[0.00s -> 5.10s] 本日は、大規模
これにより、指定した音声ファイルがテキストに書き起こされ、検出された言語と各セグメント(テキスト)の時間範囲が表示されます。
まとめ
Dockerを利用することで、Faster Whisperのセットアップと実行が大幅に簡単になります。この記事を参考に、あなたもFaster Whisperを使って、効率的に音声ファイルをテキスト化してみてください。
コメント