open-asr-leaderboard-apis / providers /elevenlabs_provider.py
bezzam's picture
bezzam HF Staff
Upload 11 files
bbfb0cc verified
Raw
History Blame Contribute Delete
1.13 kB
import os
import requests
from io import BytesIO
from typing import Optional
from elevenlabs.client import ElevenLabs
from . import APIProvider, register
@register("elevenlabs")
class ElevenLabsProvider(APIProvider):
def transcribe(
self,
model_variant: str,
audio_file_path: Optional[str],
sample: dict,
use_url: bool = False,
language: str = "en",
) -> str:
client = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
if use_url:
response = requests.get(sample["row"]["audio"][0]["src"])
audio_data = BytesIO(response.content)
transcription = client.speech_to_text.convert(
file=audio_data,
model_id=model_variant,
tag_audio_events=True,
)
else:
with open(audio_file_path, "rb") as audio_file:
transcription = client.speech_to_text.convert(
file=audio_file,
model_id=model_variant,
tag_audio_events=True,
)
return transcription.text