Spaces:
Sleeping
Sleeping
import os | |
import requests | |
import openai | |
from smolagents import Tool | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
class AudioTranscriptionTool(Tool): | |
name = "audio_transcriber" | |
description = "Transcribe a given audio file in mp3 or wav format to text using Whisper." | |
inputs = { | |
"url": { | |
"type": "string", | |
"description": "URL to the audio file (.mp3 or .wav)" | |
} | |
} | |
output_type = "string" | |
def forward(self, url: str) -> str: | |
try: | |
# Download audio | |
filename = "/tmp/audio_input.mp3" | |
response = requests.get(url) | |
with open(filename, "wb") as f: | |
f.write(response.content) | |
# Transcribe with Whisper | |
with open(filename, "rb") as audio_file: | |
transcript = openai.audio.transcriptions.create( | |
model="whisper-1", | |
file=audio_file | |
) | |
return transcript.text.strip() | |
except Exception as e: | |
return f"Error transcribing audio: {e}" | |