vocode-python/vocode/turn_based/transcriber/whisper_transcriber.py
2023-03-20 20:19:33 -07:00

22 lines
757 B
Python

from typing import Optional
from pydub import AudioSegment
import io
import os
import openai
from vocode.turn_based.transcriber.base_transcriber import BaseTranscriber
class WhisperTranscriber(BaseTranscriber):
def __init__(self, api_key: Optional[str] = None):
openai.api_key = os.getenv("OPENAI_API_KEY", api_key)
if not openai.api_key:
raise ValueError("OpenAI API key not provided")
def transcribe(self, audio_segment: AudioSegment) -> str:
in_memory_wav = io.BytesIO()
audio_segment.export(in_memory_wav, format="wav")
in_memory_wav.seek(0)
in_memory_wav.name = "whisper.wav"
transcript = openai.Audio.transcribe("whisper-1", in_memory_wav)
return transcript.text