conformer-asr / app.py
RamAnanth1's picture
Update app.py
8963f6c
raw
history blame
1.98 kB
import gradio as gr
import os
import json
import requests
import time
# AssemblyAI transcript endpoint (where we submit the file)
transcript_endpoint = "https://api.assemblyai.com/v2/transcript"
def get_transcript_url(url, api_token):
headers={
"Authorization": api_token,
"Content-Type": "application/json"
}
# JSON that tells the API which file to trancsribe
json={"audio_url": url}
response = requests.post(
transcript_endpoint,
json=json,
headers=headers # Authorization to link this transcription with your account
)
polling_endpoint = f"https://api.assemblyai.com/v2/transcript/{response.json()['id']}"
while True:
transcription_result = requests.get(polling_endpoint, headers=headers).json()
if transcription_result['status'] == 'completed':
break
elif transcription_result['status'] == 'error':
raise RuntimeError(f"Transcription failed: {transcription_result['error']}")
else:
time.sleep(3)
return transcription_result['text']
title = """<h1 align="center">🔥Conformer-1 API </h1>"""
description = """
In this demo, you can explore the outputs of a Conformer-1 Speech Recognition Model from AssemblyAI.
"""
with gr.Blocks(css = """#col_container {width: 1000px; margin-left: auto; margin-right: auto;}
""") as demo:
gr.HTML(title)
gr.Markdown(description)
with gr.Column(elem_id = "col_container"):
assemblyai_api_key = gr.Textbox(type='password', label="Enter your AssemblyAI API key here")
inputs = gr.Textbox(label = "Enter the url for the audio file")
b1 = gr.Button()
transcript = gr.Textbox(label = "Transcript Result" )
inputs.submit(get_transcript_url, [inputs, assemblyai_api_key], [transcript])
b1.click(get_transcript_url, [inputs, assemblyai_api_key], [transcript])
demo.queue().launch(debug=True)