Transcriber / app.py
ZinebSN's picture
Update app.py
69491b5
raw
history blame contribute delete
No virus
1.26 kB
from pytube import YouTube
from transformers import pipeline
import gradio as gr
import os
pipe = pipeline(model="ZinebSN/whisper-small-swedish-Test-3000") # change to "your-username/the-name-you-picked"
def get_audio(url):
yt = YouTube(url)
stream = yt.streams.filter(only_audio=True).first()
out_file=stream.download(output_path=".")
base, ext = os.path.splitext(out_file)
new_file = base+'.mp3'
os.rename(out_file, new_file)
audio = new_file
return audio
def transcribe(audio=None, file=None, youtube=None):
if (audio is None) and (file is None) and (youtube is None):
return "No audio provided!"
elif audio is not None:
input=audio
elif file is not None:
input=file
elif youtube is not None:
input=get_audio(youtube)
text = pipe(input)["text"]
return text
iface = gr.Interface(
fn=transcribe,
inputs=[
gr.Audio(source="microphone", type="filepath", interactive=True),
gr.Audio(source="upload", type="filepath", interactive=True),
gr.Text(label="URL (YouTube, etc.)")],
outputs="text",
title="Whisper Small Swedish",
description="Realtime demo for Swedish speech recognition using a fine-tuned Whisper small model.",
)
iface.launch()