File size: 1,130 Bytes
bbfb0cc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import requests
from io import BytesIO
from typing import Optional
import openai
from . import APIProvider, register
@register("openai")
class OpenAIProvider(APIProvider):
def transcribe(
self,
model_variant: str,
audio_file_path: Optional[str],
sample: dict,
use_url: bool = False,
language: str = "en",
) -> str:
if use_url:
response = requests.get(sample["row"]["audio"][0]["src"])
audio_data = BytesIO(response.content)
response = openai.Audio.transcribe(
model=model_variant,
file=audio_data,
response_format="text",
language=language,
temperature=0.0,
)
else:
with open(audio_file_path, "rb") as audio_file:
response = openai.Audio.transcribe(
model=model_variant,
file=audio_file,
response_format="text",
language=language,
temperature=0.0,
)
return response.strip()
|