AI-Dub / app.py
imseldrith's picture
Create app.py
aaeaaa3
import streamlit as st
import requests
from bs4 import BeautifulSoup
import moviepy.editor as mp
import os
st.title("Automatic Video Dubbing App")
# Function to extract the audio from video
def extract_audio(video):
audio = video.audio
audio.write_audiofile("input_audio.mp3")
return audio
# Function to dub the audio
def dub_audio(audio, language):
# Using Google Text-to-Speech API to convert the audio to the desired language
tts = gTTS(audio.get_wav_data(), lang=language)
tts.save("output_audio.mp3")
return tts
# Function to add the dubbed audio to the video
def add_dubbed_audio(video, audio):
video.audio = mp.AudioFileClip("output_audio.mp3")
video.write_videofile("output_video.mp4")
return video
# User interface for video input
video_type = st.selectbox("Choose video source:", ["URL", "Upload"])
if video_type == "URL":
url = st.text_input("Enter video URL:")
video = mp.VideoFileClip(requests.get(url, stream=True).raw)
elif video_type == "Upload":
file = st.file_uploader("Upload video file:", type=["mp4"])
if file:
video = mp.VideoFileClip(file)
# User interface for language selection
language = st.selectbox("Choose language for dubbing:", ["Hindi"])
if st.button("Dub Video"):
st.write("Extracting audio from video...")
audio = extract_audio(video)
st.write("Dubbing audio...")
dubbed_audio = dub_audio(audio, language)
st.write("Adding dubbed audio to video...")
dubbed_video = add_dubbed_audio(video, dubbed_audio)
st.write("Dubbing process complete! Output video can be found in the project folder.")
st.video(dubbed_video)