会議の録音やインタビュー音声、動画のナレーションなど、音声データをテキストに変換(文字起こし)したい場面は多くあります。Pythonでは音声認識ライブラリ「SpeechRecognition」や、OpenAIの高精度モデル「Whisper」を使って、音声→文字変換を実現できます。
この記事では、それぞれの使い方と精度・柔軟性の違いを比較しながら、音声認識処理の実装方法を紹介します。
方法①:SpeechRecognitionの使い方
SpeechRecognitionはPythonで最も手軽に使える音声認識ライブラリです。Google Web Speech APIやSphinxなど複数のバックエンドに対応しています。
インストール
pip install SpeechRecognition pydub
MP3ファイルを使う場合はpydub
とffmpeg
の導入が必要です。
基本スクリプト(WAVファイル)
import speech_recognition as sr
r = sr.Recognizer()
with sr.AudioFile("audio.wav") as source:
audio = r.record(source)
try:
text = r.recognize_google(audio, language="ja-JP")
print("認識結果:", text)
except sr.UnknownValueError:
print("認識できませんでした。")
except sr.RequestError as e:
print("APIエラー:", e)
メリット・デメリット
- メリット:導入が簡単、Googleの音声認識が使える
- デメリット:ネット接続必須、長時間音声に不向き
方法②:Whisper(OpenAI)の使い方
WhisperはOpenAIが公開した高精度の音声認識モデルです。日本語も非常に自然に認識でき、ノイズ耐性にも優れています。ローカルで動作するため、機密性の高いデータにも適しています。
インストール
pip install openai-whisper
ffmpeg
も事前にインストールしておく必要があります。
基本スクリプト
import whisper
model = whisper.load_model("base") # or "small", "medium", "large"
result = model.transcribe("audio.mp3", language="ja")
print(result["text"])
モデルサイズの選び方
tiny
:高速・低精度base
:標準的な用途large
:高精度・高負荷
メリット・デメリット
- メリット:高精度、日本語対応、ローカル実行可
- デメリット:処理に時間がかかる、GPUがあると望ましい
SpeechRecognitionとWhisperの比較
項目 | SpeechRecognition | Whisper |
---|---|---|
日本語精度 | ○ | ◎ |
オフライン動作 | ×(API接続) | ○ |
長時間音声 | △ | ◎ |
導入の容易さ | ◎ | ○ |
リアルタイム用途 | ○ | △ |
まとめ
音声をテキスト化するには、軽量な処理ならSpeechRecognition
、高精度で本格的な用途ならWhisper
が最適です。用途や環境に応じて使い分けることで、会議録、議事録、字幕生成などの作業を効率化できます。
Whisperは音声ファイルを翻訳する機能(英語への変換)にも対応しているため、グローバル対応の業務にも活用できます。ぜひ自社のワークフローに取り入れてみてください。