Spaces:
Running
Running
import os | |
import requests | |
from fastapi import APIRouter | |
from pydantic import BaseModel | |
from dotenv import load_dotenv | |
from models import * | |
class WhisperX(BaseModel): | |
filename: str | |
router = APIRouter() | |
load_dotenv() | |
HUGGING_TOKEN = os.environ["HUGGING_TOKEN"] | |
async def whsiper_to_text(filename): | |
if not os.path.isfile(filename): | |
print(f"Error: File {filename} does not exist.") | |
return None | |
API_URL = "https://api-inference.huggingface.co/models/openai/whisper-large-v3" | |
headers = {"Authorization": f"Bearer {HUGGING_TOKEN}"} | |
with open(filename, "rb") as f: | |
files = {'file': f} | |
response = requests.post(API_URL, headers=headers, files=files) | |
if response.status_code != 200: | |
print(f"Error status {response.status_code}") | |
return None | |
return response.json() | |
async def whsiper_new(payload: WhisperX): | |
try: | |
response_data = await whsiper_to_text(payload.filename) | |
if response_data is None: | |
return SuccessResponse( | |
status="False", | |
randydev={"error": f"Failed to whisper the filename '{payload.filename}'"} | |
) | |
return SuccessResponse( | |
status="True", | |
randydev={"message": response_data.get("text")} | |
) | |
except Exception as e: | |
return SuccessResponse( | |
status="False", | |
randydev={"error": f"An error occurred: {str(e)}"} | |
) | |