Spaces:
Running
Running
File size: 1,294 Bytes
309b067 fafa615 309b067 0fe9a40 309b067 fafa615 0fe9a40 fafa615 0fe9a40 fafa615 309b067 0fe9a40 |
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 |
import gradio as gr
import speech_recognition as sr
from io import BytesIO
def transcribe_audio(audio_input):
recognizer = sr.Recognizer()
# Ensure the input is a tuple and get the audio data bytes
if isinstance(audio_input, tuple) and len(audio_input) == 2:
audio_data_bytes = audio_input[1]
else:
raise ValueError("Expected audio_input to be a tuple with audio data bytes.")
# Use BytesIO to create a file-like object from the audio bytes
audio_file = BytesIO(audio_data_bytes)
# Load the audio file from the file-like object
with sr.AudioFile(audio_file) as source:
audio_data = recognizer.record(source)
try:
# Transcribe the audio data
text = recognizer.recognize_google(audio_data)
return text
except sr.UnknownValueError:
return "Google Speech Recognition could not understand audio"
except sr.RequestError as e:
return f"Could not request results from Google Speech Recognition service; {e}"
# Create the Gradio interface
iface = gr.Interface(
fn=transcribe_audio,
inputs="audio",
outputs="text",
title="Voice to Text Converter",
description="Upload an audio file and get the transcribed text."
)
# Launch the interface
iface.launch()
|