Python+Whisperで音声ファイルから文字起こしを行う方法

この記事は公開から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で日本語と英語のテキストを音声ファイルに変換する方法」にてテキストから音声ファイルを作成する方法を紹介したので、併せて記事にしてみました。


以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする