whisper-ru / app.py
saad177's picture
youtube links
1ffba96
raw
history blame
No virus
1.39 kB
from transformers import pipeline
import gradio as gr
from youtube_dl import YoutubeDL
# Function to download audio from YouTube link
def download_audio(youtube_link, output_path):
ydl_opts = {
"format": "bestaudio/best",
"outtmpl": output_path,
"postprocessors": [
{
"key": "FFmpegExtractAudio",
"preferredcodec": "mp3",
"preferredquality": "192",
}
],
}
with YoutubeDL(ydl_opts) as ydl:
ydl.download([youtube_link])
# Function to transcribe audio
def transcribe_audio(audio_path):
model = pipeline(model="SofiaK/checkpoints")
return model(audio_path)["text"]
interface = gr.Interface(
fn=lambda input_type, audio_or_link: transcribe_audio(audio_or_link)
if input_type == "audio"
else transcribe_audio(download_audio(audio_or_link, "temp.mp3")),
inputs=[
gr.Radio(["audio", "youtube"], label="Select Input Type"),
gr.Audio(
sources=["upload", "microphone"],
type="filepath",
label="Upload Audio, or speak in the microphone",
),
gr.Textbox(default="https://www.youtube.com/", label="Youtube Link"),
],
outputs=gr.Text(label="Model output"),
title="Whisper-RU",
description="Fine-tuned Whisper for Russian language",
)
interface.launch(share=True)