この記事は公開から1年以上経過しています。
オンプレ環境で無償で利用できるAI音声認識エンジンOpenAI Whisper
を使い、Pythonで音声ファイルから文字起こしを行う方法。
検証環境はLinux(Ubuntu 22)+NVIDIA RTX3060(12GB)+Python(3.10.6)です。
Windows環境で音声ファイルのロードに失敗する場合は、過去のエントリWindows上のOpenAI Whisperで音声ファイルのロードに失敗するときの対応をご参照ください。
NVIDIA製GPUをお持ちでない、または物理的にVRAMが足りない場合は、過去のエントリ「CUDA環境上のOpenAI WhisperをCPUで動かす方法」をご参照ください。
サンプルソースコード
実行に必須のアプリケーション(Whisper内部で利用):
ffmpeg
pip:
openai-whisper
main.py:
import time
import whisper
CACHE_DIR = 'cache'
model = whisper.load_model('large', download_root=CACHE_DIR)
result = model.transcribe('japanese_voice_2.wav')
print(f'言語:{result["language"]}, テキスト:{result["text"]}')
2023.7現在のload_modelで利用可能なモデルは以下のとおりです。
Size | パラメータ数 | 英語のみモデル | マルチリンガルモデル | 必要VRAMサイズ | 相対速度 |
---|---|---|---|---|---|
tiny | 39 M | tiny.en | tiny | ~1 GB | ~32x |
base | 74 M | base.en | base | ~1 GB | ~16x |
small | 244 M | small.en | small | ~2 GB | ~6x |
medium | 769 M | medium.en | medium | ~5 GB | ~2x |
large | 1550 M | N/A | large | ~10 GB | 1x |
モデルのダウンロードサイズが3GB以上あります。通信環境にご注意ください。
入力音声ファイル(音量注意):
出力テキスト:
言語:ja, テキスト:Pythonで音声ファイルから文字起こしを行う方法。
内容的には昨年Whisperが出た頃に試した内容で目新しいものではありませんが、別のエントリ「Pythonで日本語と英語のテキストを音声ファイルに変換する方法」にてテキストから音声ファイルを作成する方法を紹介したので、併せて記事にしてみました。
以上です。