Spaces:
Sleeping
Sleeping
# This Gradio app allows users to upload an audio file and get a transcription. | |
import gradio as gr | |
# Define the function to transcribe the audio file. | |
def transcribe_audio(audio_file): | |
# Check if the file exists and is not too large | |
if not os.path.exists(audio_file): | |
raise gr.Error(f"Error: File {audio_file} not found") | |
file_size = os.path.getsize(audio_file) / (1024 * 1024) # Convert to MB | |
print(f"Processing file: {audio_file} ({file_size:.2f} MB)") | |
try: | |
start_time = time.time() | |
with open(audio_file, "rb") as file: | |
# Simulate the transcription process | |
transcription = { | |
"text": "This is a simulated transcription of the uploaded audio file." | |
} | |
elapsed = time.time() - start_time | |
print(f"Transcription completed in {elapsed:.2f} seconds") | |
print("\nTranscribed text:") | |
print(transcription["text"]) | |
return transcription["text"] | |
except Exception as e: | |
raise gr.Error(f"Error during transcription: {str(e)}") | |
# Create a Gradio interface that takes an audio file as input and returns the transcription as output. | |
with gr.Blocks() as demo: | |
audio_input = gr.Audio(label="Upload Audio File", type="filepath") | |
transcription_output = gr.Textbox(label="Transcribed Text") | |
transcribe_button = gr.Button("Transcribe") | |
# Attach the transcribe_audio function to the button click event. | |
transcribe_button.click(fn=transcribe_audio, inputs=audio_input, outputs=transcription_output) | |
# Launch the interface. | |
demo.launch(show_error=True) |