voice-to-text / app.py
arshadrana's picture
Update app.py
fafa615 verified
raw
history blame
1.29 kB
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()