Newsletter
Sed ut perspiciatis unde.
Subscribe
import sieve
@sieve.function(name="video_dubbing", system_packages=["ffmpeg"])
def video_dubbing(source_video: sieve.Video, language: str):
transcriber = sieve.function.get("sieve/speech_transcriber")
translator = sieve.function.get("sieve/seamless_text2text")
tts = sieve.function.get("sieve/xtts-v1")
lipsyncer = sieve.function.get("sieve/video_retalking")
import subprocess
audio_path = 'temp.wav'
subprocess.run(
["ffmpeg", "-i", source_video.path, audio_path, "-y"]
)
transcript = list(transcriber.run(sieve.Audio(path=audio_path)))
text = transcript_to_text(transcript)
translated_text = translator.run(text, "eng", language)
target_audio = tts.run(source_audio, language, translated_text)
return lipsyncer.run(source_video, target_audio)
Read More