この記事では、Open AIが開発したWhisperを使用して、音声データをテキスト形式に変換する方法について説明します。
必要なツールのインストール
以下の手順で必要なツールの準備をします。
# Whisperのインストール
pip install git+https://github.com/openai/whisper.git
# ffmpegのインストールが必要です
apt install ffmpeg
コードの実行
Python環境で以下のコードを実行します。
import whisper # Whisperのインポート
model = whisper.load_model('large') # 利用するモデルを指定(ここでは最も精度の高い'large'を指定)
result = model.transcribe('音声データ.mp3') # resultに文字起こししたテキストデータを格納
with open("書き起こしテキスト.txt", "w") as f:
print(result['text'], file=f) # テキストデータを書き出し
モデルのサイズは、'tiny'、'base'、'small'、'medium'、'large'の順で大きくなり、各モデルのサイズが大きくなるほど文字起こしの精度が上がります。モデルが大きければ大きいほど、実行時間が長くなり、文字起こしの精度は高くなります。一般的な会議やレコーダーの場合には、'large'モデルを使用することで、「なんとか使えるレベル」の精度が得られると感じました。
1時間40分の会議のテキスト化には、私の環境では約6時間かかりました。
まとめ
WhisperにはGitHubバージョンとAPIバージョンがあり、さらにGitHubバージョンにはPythonバージョンとコマンドラインバージョンがあります。今回紹介したのはPythonバージョンで、コマンドラインバージョンも動作することを確認しています。
APIバージョンはGitHubバージョンよりも高性能とされていますが、有料であること(それほど高額ではありませんが)や、最長25分の音声ファイルしか受け付けないため、ファイル分割が必要となる等、少々手間と費用が必要です。