Spaces:
Running
Running
File size: 1,830 Bytes
25ca65d d2d0553 6e17754 a9f1ad5 6e17754 25ca65d 39a9210 6e17754 7fb76d7 6e17754 d2d0553 b36a0c9 6e17754 d2d0553 b36a0c9 ee7da9b d2d0553 7fb76d7 a9f1ad5 7fb76d7 8178007 eee74a0 740b1dd 8178007 d2d0553 |
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 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import gradio as gr
import requests
import os
import time
# Retrieve ASR API URL and Authorization Token from environment variables
ASR_API_URL = os.getenv('ASR_API_URL')
AUTH_TOKEN = os.getenv('AUTH_TOKEN')
def transcribe_audio(file_path):
if not ASR_API_URL or not AUTH_TOKEN:
return "Error: Missing ASR_API_URL or AUTH_TOKEN.", None
headers = {
'Accept': 'application/json',
'Authorization': f'Bearer {AUTH_TOKEN}',
}
try:
with open(file_path, 'rb') as audio_file:
files = {'file': (file_path, audio_file, 'audio/mpeg')}
start_time = time.time()
response = requests.post(ASR_API_URL, headers=headers, files=files)
elapsed_time = time.time() - start_time
if response.ok:
data = response.json()
transcription = data.get('transcription', 'No transcription returned.')
inference_time = f"{data.get('time', round(elapsed_time, 2))} seconds"
return transcription, inference_time
else:
return f"Error: {response.status_code}, {response.text}", None
except Exception as e:
return f"Exception occurred: {str(e)}", None
# Set up the Gradio interface
gr.Interface(
fn=transcribe_audio,
inputs=gr.Audio(type="filepath"),
outputs=[
gr.Textbox(label="Transcription"),
gr.Textbox(label="Inference Time")
],
title="Gooya v1.4 Persian ASR",
description="""
The Gooya Persian ASR model is crazy fast and super [powerful](https://huggingface.co/spaces/navidved/open_persian_asr_leaderboard) when it comes to Persian ASR!
\nJust drop in a Persian audio file, and boom—we’ll hit you with the best transcription you can get! 🚀🔥
\n(The maximum time allowed for testing is 30 seconds.)
"""
).launch()
|