OpenAI APIによる音声文字起こしの実装
この記事では、OpenAIが提供するAPIを使って、リアルタイムの音声入力と音声ファイルからの文字起こしを実装する方法について、章立て形式で説明します。
第1章:リアルタイム音声の文字起こし
リアルタイム音声入力は、マイクから直接取得した音声を即座に文字に変換する技術です。
必要なライブラリ
- openai
- sounddevice
- numpy
- scipy
pip install openai sounddevice numpy scipy
サンプルコード
import openai
import sounddevice as sd
import numpy as np
from scipy.io.wavfile import write
import io
openai.api_key = "YOUR_API_KEY"
sample_rate = 44100
duration = 5
def record_audio(duration, sample_rate):
audio_data = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=1, dtype=np.int16)
sd.wait()
return audio_data
def audio_to_bytes(audio_data, sample_rate):
buffer = io.BytesIO()
write(buffer, sample_rate, audio_data)
buffer.seek(0)
return buffer
def transcribe_audio(audio_buffer):
response = openai.Audio.transcribe(
model="whisper-1",
file=audio_buffer,
language="ja"
)
return response['text']
if __name__ == "__main__":
audio = record_audio(duration, sample_rate)
audio_buffer = audio_to_bytes(audio, sample_rate)
transcript = transcribe_audio(audio_buffer)
print("文字起こし結果:", transcript)
第2章:音声ファイルの文字起こし
音声ファイルからの文字起こしは、事前に録音された音声ファイル(mp3, wavなど)を文字データに変換します。
サンプルコード
import openai
openai.api_key = "YOUR_API_KEY"
def transcribe_audio_file(filepath):
with open(filepath, "rb") as audio_file:
response = openai.Audio.transcribe(
model="whisper-1",
file=audio_file,
language="ja"
)
return response['text']
if __name__ == "__main__":
filepath = "example.wav"
transcript = transcribe_audio_file(filepath)
print("ファイルからの文字起こし結果:", transcript)
サポートされる形式
- WAV, MP3, M4Aなど(最大サイズ:25MB)
第3章:リアルタイムと音声ファイルの使い分け
リアルタイム音声の利点
- 即時性が高く、オンライン会議や対話型AIアプリに最適
- インタラクティブな用途に対応
音声ファイルの利点
- 長時間の録音やオフラインデータ分析に向いている
- 既存の録音済みデータの処理が容易
第4章:実用上の注意点
- API利用時の料金確認
- 音声データの機密性とセキュリティへの配慮
- 通信環境による遅延や音声品質の影響
第5章:まとめ
OpenAIのAPIを利用すると、リアルタイム音声入力と音声ファイルからの効率的で高精度な文字起こしが実現できます。用途に応じて適切に使い分けることが重要です。


コメント