aliyaasif's picture
Update app.py
acb5575 verified
Raw
History Blame Contribute Delete
1.05 kB
import spaces
import gradio as gr
from transformers import pipeline
from pydub import AudioSegment
import tempfile
import os
pipe = pipeline(
"automatic-speech-recognition",
model="openai/whisper-large-v3",
device_map="auto"
)
CHUNK_LENGTH_MS = 30 * 1000 # 30 seconds
@spaces.GPU
def transcribe(audio_path):
audio = AudioSegment.from_file(audio_path)
transcript = []
for i in range(0, len(audio), CHUNK_LENGTH_MS):
chunk = audio[i:i + CHUNK_LENGTH_MS]
temp_file = tempfile.NamedTemporaryFile(
suffix=".wav",
delete=False
)
chunk.export(temp_file.name, format="wav")
result = pipe(temp_file.name)
transcript.append(result["text"])
os.remove(temp_file.name)
return "\n".join(transcript)
demo = gr.Interface(
fn=transcribe,
inputs=gr.Audio(type="filepath"),
outputs=gr.Textbox(lines=20),
title="Whisper Large V3 - Long Audio Support",
description="Upload long audio files for transcription."
)
demo.launch()