tel / app.py
RBM2529's picture
Create app.py
0d723b9 verified
import os
import torch
from transformers import pipeline
import librosa
import gradio as gr
import warnings
# Suppress warnings for cleaner output
warnings.filterwarnings("ignore")
# ======================
# Model Loading
# ======================
def load_model():
try:
print("⏳ Loading Telugu ASR model...")
# Using a model specifically fine-tuned for Telugu
asr_pipeline = pipeline(
"automatic-speech-recognition",
model="anuragshas/wav2vec2-large-xlsr-53-telugu",
device="cuda:0" if torch.cuda.is_available() else "cpu"
)
print("βœ… Model loaded successfully")
return asr_pipeline
except Exception as e:
print(f"❌ Model loading failed: {str(e)}")
raise
# Load the ASR model
asr_pipeline = load_model()
# ======================
# Core Functionality
# ======================
def transcribe_telugu(audio_path):
try:
# Load audio file
audio, sr = librosa.load(audio_path, sr=16000)
# Perform transcription
result = asr_pipeline(audio)
telugu_transcription = result['text']
return telugu_transcription
except Exception as e:
print(f"❌ Processing error: {str(e)}")
return "Transcription failed (try clearer audio)"
# ======================
# Gradio Interface
# ======================
def create_interface():
with gr.Blocks() as interface:
gr.Markdown("""
# 🎀 Telugu Speech Recognition
Telugu Audio Transcription System:
1. Speak in Telugu or upload an audio file
2. Get accurate Telugu transcription
Tips for best results:
- Speak clearly in a quiet environment
- Keep recordings between 5-30 seconds
""")
with gr.Row():
audio_input = gr.Audio(
type="filepath",
label="Record/Upload Telugu Audio",
sources=["microphone", "upload"]
)
with gr.Row():
output_text = gr.Textbox(label="Telugu Transcription")
submit_btn = gr.Button("Transcribe")
submit_btn.click(
fn=transcribe_telugu,
inputs=audio_input,
outputs=output_text
)
gr.Examples(
examples=[
["sample_telugu1.wav"],
["sample_telugu2.wav"]
],
inputs=audio_input
)
return interface
# ======================
# Main Execution
# ======================
if __name__ == "__main__":
print("πŸš€ Starting Telugu transcription service...")
interface = create_interface()
interface.launch(
server_name="0.0.0.0",
share=False,
debug=True
)