End-to-end pipeline to translate videos with speaker diarization, subtitle generation, and voice cloning for natural voice dubbing — enhanced by LLMs for improved contextual awareness and translation quality.
2
stars
8
commits
Python
primary language
Jul 8, 2025
updated
AI-Powered Video Dubbing OmniPlay Vision: The Future of Media Consumption for all Platforms
OmniPlay aims to revolutionize how global audiences consume video content by eliminating language barriers through real-time AI dubbing, while providing creators and platforms with advanced media protection and analytics capabilities.

What we have now:
A complete automated solution for dubbing videos using advanced AI technologies. Transform videos with original language audio into professionally dubbed versions with background music preservation and multi-track audio support.
Future Vision: OmniPlay aims to become a web-based embeddable player that performs real-time dubbing with advanced media protection features, revolutionizing how content is consumed across languages and platforms.
OmniPlay aims to revolutionize how global audiences consume video content by eliminating language barriers through real-time AI dubbing, while providing creators and platforms with advanced media protection and analytics capabilities.
What we have now:
Target: Q4 2025
<!-- Simple embed example -->
<omniplay-player
src="https://example.com/video.mp4"
target-language="es"
enable-dubbing="true"
enable-subtitles="true">
</omniplay-player>
Enterprise-Grade Security Features:
Scalable Infrastructure:
# Windows - Download from python.org (install 3.8, 3.9, and 3.10)
# macOS
brew install python@3.8 python@3.9 python@3.10
# Ubuntu/Debian
sudo apt update
sudo apt install python3.8 python3.9 python3.10
sudo apt install python3.8-venv python3.9-venv python3.10-venv
# Windows - Download from ffmpeg.org or use chocolatey
choco install ffmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
pip install PyQt5
The project uses 4 separate Python environments for optimal isolation:
Multi-environment architecture ensuring dependency isolation
python -m venv envf
# Windows
envf\Scripts\activate
# macOS/Linux
source envf/bin/activate
pip install moviepy==1.0.3 pysrt numpy
cd VideoSplitter
python3.8 -m venv env388
# Windows
env388\Scripts\activate
# macOS/Linux
source env388/bin/activate
pip install -r requirements_splitter.txt
cd VoiceTranscriber
python3.9 -m venv env309
# Windows
env309\Scripts\activate
# macOS/Linux
source env309/bin/activate
pip install -r requirements_transcriber.txt
cd VoiceCloner
python3.10 -m venv env310
# Windows
env310\Scripts\activate
# macOS/Linux
source env310/bin/activate
pip install -r requirements_cloner.txt
Input: video.mp4
Process: VideoSplitter/extract_v0.py (Python 3.8)
Output: temp/step1/
├── input_raw_audio.wav # Original full audio
├── input_vocals.wav # Extracted vocals only
└── input_background.wav # Background music/ambiance
Technologies Used:
Input: temp/step1/input_vocals.wav
Process: VoiceTranscriber/v4.py (Python 3.9)
Output: temp/step2/
├── output.json # Transcription with timestamps & speakers
└── samples/ # Individual speaker voice samples
├── speakerSPEAKER_00_sample.wav
└── speakerSPEAKER_01_sample.wav
Features:
Input: temp/step2/output.json + speaker samples
Process: VoiceCloner/v7.py (Python 3.10)
Output: temp/step3/
├── final_mix.wav # Complete dubbed audio track
└── output_clips/ # Individual translated segments
├── clip_00_SPEAKER_00.wav
├── clip_01_SPEAKER_01.wav
└── ...
Input: Original video + temp/step3/final_mix.wav + temp/step1/input_background.wav
Process: mixer.py (Python 3.10)
Output: C:/Dubbed/video_TIMESTAMP/
├── video_multi_audio.mp4 # Final video with 2 audio tracks
└── subtitles.srt # Generated subtitles
Multi-Track Features:
OmniPlay/ # Main project directory
├── run.py # Main dubbing pipeline orchestrator
├── gui_launcher.py # PyQt5 GUI interface
├── mixer.py # Final video assembly
├── README.md # This comprehensive guide
├── envf/ # Root Python environment (3.10)
│
├── VideoSplitter/ # Audio extraction module
│ ├── extract_v0.py # Multi-algorithm vocal separation
│ ├── requirements_splitter.txt
│ └── env388/ # Python 3.8 environment
│
├── VoiceTranscriber/ # Speech-to-text module
│ ├── v1.py - v5.py # Various transcription approaches
│ ├── v4.py # Production transcriber (pipeline default)
│ ├── requirements_transcriber.txt
│ └── env309/ # Python 3.9 environment
│
├── VoiceCloner/ # Voice synthesis module
│ ├── v7.py # Production voice cloner
│ ├── requirements_cloner.txt
│ ├── voice_cloner_model.pkl # Pre-trained AI model
│ └── env310/ # Python 3.10 environment
│
└── 📂 temp/ # Pipeline processing data
├── step1/ # Audio extraction outputs
├── step2/ # Transcription outputs
└── step3/ # Voice cloning outputs
Edit mixer.py for custom audio balance:
# Audio volume controls
background_volume = 0.3 # Background music (0.0-1.0)
tts_volume = 0.9 # Dubbed voices (0.0-1.0)
# Audio quality settings
audio_bitrate = '192k' # Output audio bitrate
sample_rate = 44100 # Audio sample rate
Supported languages (ISO 639-1 codes):
SUPPORTED_LANGUAGES = {
'en': 'English', 'es': 'Spanish', 'fr': 'French',
'de': 'German', 'zh': 'Chinese', 'ja': 'Japanese',
'ko': 'Korean', 'hi': 'Hindi', 'ar': 'Arabic',
'ru': 'Russian', 'pt': 'Portuguese', 'it': 'Italian',
'nl': 'Dutch', 'sv': 'Swedish', 'no': 'Norwegian',
'da': 'Danish', 'fi': 'Finnish', 'pl': 'Polish',
# ... 80+ more languages supported
}
Customize in VoiceCloner/v7.py:
# Voice similarity threshold (0.0-1.0)
SIMILARITY_THRESHOLD = 0.85
# Speaking rate adjustment
SPEECH_RATE = 1.0 # 1.0 = normal, 0.8 = slower, 1.2 = faster
# Voice characteristics preservation
PRESERVE_PITCH = True
PRESERVE_TONE = True
PRESERVE_ACCENT = False # Set True to maintain original accent
# Enable GPU acceleration (if available)
export CUDA_VISIBLE_DEVICES=0 # Use first GPU
export TORCH_CUDA_ARCH_LIST="7.5;8.0;8.6" # Your GPU architecture
# For CPU-only processing
export CUDA_VISIBLE_DEVICES=""
| Video Length | Hardware Tier | Processing Time |
|---|---|---|
| 1 minute | High-end GPU | 2-3 minutes |
| 1 minute | Mid-range CPU | 4-6 minutes |
| 10 minutes | High-end GPU | 15-25 minutes |
| 10 minutes | Mid-range CPU | 30-45 minutes |
| 1 hour | High-end GPU | 1.5-2.5 hours |
| 1 hour | Mid-range CPU | 3-5 hours |
git checkout -b feature/amazing-feature)python -m pytest)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Include in your bug report:
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to all contributors who have helped improve OmniPlay:
If OmniPlay helps you, please:
# GUI Mode (Recommended for beginners)
python gui_launcher.py
# CLI Mode (For advanced users)
python run.py "path/to/your/video.mp4"
C:/Dubbed/video_20250709_123456/
├── video_multi_audio.mp4 # Final video with dual audio tracks
└── subtitles.srt # Generated subtitles
Congratulations! You're now ready to transform videos with OmniPlay's AI-powered dubbing!
Transform any video into a professionally dubbed, multi-language experience while preserving the original audio quality and background music. The future of video localization is here!
8 commits
Python
100.0%
End-to-end pipeline to translate videos with speaker diarization, subtitle generation, and voice cloning for natural voice dubbing — enhanced by LLMs for improved contextual awareness and translation quality.
2
stars
8
commits
Python
primary language
Jul 8, 2025
updated
AI-Powered Video Dubbing OmniPlay Vision: The Future of Media Consumption for all Platforms
OmniPlay aims to revolutionize how global audiences consume video content by eliminating language barriers through real-time AI dubbing, while providing creators and platforms with advanced media protection and analytics capabilities.

What we have now:
A complete automated solution for dubbing videos using advanced AI technologies. Transform videos with original language audio into professionally dubbed versions with background music preservation and multi-track audio support.
Future Vision: OmniPlay aims to become a web-based embeddable player that performs real-time dubbing with advanced media protection features, revolutionizing how content is consumed across languages and platforms.
OmniPlay aims to revolutionize how global audiences consume video content by eliminating language barriers through real-time AI dubbing, while providing creators and platforms with advanced media protection and analytics capabilities.
What we have now:
Target: Q4 2025
<!-- Simple embed example -->
<omniplay-player
src="https://example.com/video.mp4"
target-language="es"
enable-dubbing="true"
enable-subtitles="true">
</omniplay-player>
Enterprise-Grade Security Features:
Scalable Infrastructure:
# Windows - Download from python.org (install 3.8, 3.9, and 3.10)
# macOS
brew install python@3.8 python@3.9 python@3.10
# Ubuntu/Debian
sudo apt update
sudo apt install python3.8 python3.9 python3.10
sudo apt install python3.8-venv python3.9-venv python3.10-venv
# Windows - Download from ffmpeg.org or use chocolatey
choco install ffmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
pip install PyQt5
The project uses 4 separate Python environments for optimal isolation:
Multi-environment architecture ensuring dependency isolation
python -m venv envf
# Windows
envf\Scripts\activate
# macOS/Linux
source envf/bin/activate
pip install moviepy==1.0.3 pysrt numpy
cd VideoSplitter
python3.8 -m venv env388
# Windows
env388\Scripts\activate
# macOS/Linux
source env388/bin/activate
pip install -r requirements_splitter.txt
cd VoiceTranscriber
python3.9 -m venv env309
# Windows
env309\Scripts\activate
# macOS/Linux
source env309/bin/activate
pip install -r requirements_transcriber.txt
cd VoiceCloner
python3.10 -m venv env310
# Windows
env310\Scripts\activate
# macOS/Linux
source env310/bin/activate
pip install -r requirements_cloner.txt
Input: video.mp4
Process: VideoSplitter/extract_v0.py (Python 3.8)
Output: temp/step1/
├── input_raw_audio.wav # Original full audio
├── input_vocals.wav # Extracted vocals only
└── input_background.wav # Background music/ambiance
Technologies Used:
Input: temp/step1/input_vocals.wav
Process: VoiceTranscriber/v4.py (Python 3.9)
Output: temp/step2/
├── output.json # Transcription with timestamps & speakers
└── samples/ # Individual speaker voice samples
├── speakerSPEAKER_00_sample.wav
└── speakerSPEAKER_01_sample.wav
Features:
Input: temp/step2/output.json + speaker samples
Process: VoiceCloner/v7.py (Python 3.10)
Output: temp/step3/
├── final_mix.wav # Complete dubbed audio track
└── output_clips/ # Individual translated segments
├── clip_00_SPEAKER_00.wav
├── clip_01_SPEAKER_01.wav
└── ...
Input: Original video + temp/step3/final_mix.wav + temp/step1/input_background.wav
Process: mixer.py (Python 3.10)
Output: C:/Dubbed/video_TIMESTAMP/
├── video_multi_audio.mp4 # Final video with 2 audio tracks
└── subtitles.srt # Generated subtitles
Multi-Track Features:
OmniPlay/ # Main project directory
├── run.py # Main dubbing pipeline orchestrator
├── gui_launcher.py # PyQt5 GUI interface
├── mixer.py # Final video assembly
├── README.md # This comprehensive guide
├── envf/ # Root Python environment (3.10)
│
├── VideoSplitter/ # Audio extraction module
│ ├── extract_v0.py # Multi-algorithm vocal separation
│ ├── requirements_splitter.txt
│ └── env388/ # Python 3.8 environment
│
├── VoiceTranscriber/ # Speech-to-text module
│ ├── v1.py - v5.py # Various transcription approaches
│ ├── v4.py # Production transcriber (pipeline default)
│ ├── requirements_transcriber.txt
│ └── env309/ # Python 3.9 environment
│
├── VoiceCloner/ # Voice synthesis module
│ ├── v7.py # Production voice cloner
│ ├── requirements_cloner.txt
│ ├── voice_cloner_model.pkl # Pre-trained AI model
│ └── env310/ # Python 3.10 environment
│
└── 📂 temp/ # Pipeline processing data
├── step1/ # Audio extraction outputs
├── step2/ # Transcription outputs
└── step3/ # Voice cloning outputs
Edit mixer.py for custom audio balance:
# Audio volume controls
background_volume = 0.3 # Background music (0.0-1.0)
tts_volume = 0.9 # Dubbed voices (0.0-1.0)
# Audio quality settings
audio_bitrate = '192k' # Output audio bitrate
sample_rate = 44100 # Audio sample rate
Supported languages (ISO 639-1 codes):
SUPPORTED_LANGUAGES = {
'en': 'English', 'es': 'Spanish', 'fr': 'French',
'de': 'German', 'zh': 'Chinese', 'ja': 'Japanese',
'ko': 'Korean', 'hi': 'Hindi', 'ar': 'Arabic',
'ru': 'Russian', 'pt': 'Portuguese', 'it': 'Italian',
'nl': 'Dutch', 'sv': 'Swedish', 'no': 'Norwegian',
'da': 'Danish', 'fi': 'Finnish', 'pl': 'Polish',
# ... 80+ more languages supported
}
Customize in VoiceCloner/v7.py:
# Voice similarity threshold (0.0-1.0)
SIMILARITY_THRESHOLD = 0.85
# Speaking rate adjustment
SPEECH_RATE = 1.0 # 1.0 = normal, 0.8 = slower, 1.2 = faster
# Voice characteristics preservation
PRESERVE_PITCH = True
PRESERVE_TONE = True
PRESERVE_ACCENT = False # Set True to maintain original accent
# Enable GPU acceleration (if available)
export CUDA_VISIBLE_DEVICES=0 # Use first GPU
export TORCH_CUDA_ARCH_LIST="7.5;8.0;8.6" # Your GPU architecture
# For CPU-only processing
export CUDA_VISIBLE_DEVICES=""
| Video Length | Hardware Tier | Processing Time |
|---|---|---|
| 1 minute | High-end GPU | 2-3 minutes |
| 1 minute | Mid-range CPU | 4-6 minutes |
| 10 minutes | High-end GPU | 15-25 minutes |
| 10 minutes | Mid-range CPU | 30-45 minutes |
| 1 hour | High-end GPU | 1.5-2.5 hours |
| 1 hour | Mid-range CPU | 3-5 hours |
git checkout -b feature/amazing-feature)python -m pytest)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Include in your bug report:
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to all contributors who have helped improve OmniPlay:
If OmniPlay helps you, please:
# GUI Mode (Recommended for beginners)
python gui_launcher.py
# CLI Mode (For advanced users)
python run.py "path/to/your/video.mp4"
C:/Dubbed/video_20250709_123456/
├── video_multi_audio.mp4 # Final video with dual audio tracks
└── subtitles.srt # Generated subtitles
Congratulations! You're now ready to transform videos with OmniPlay's AI-powered dubbing!
Transform any video into a professionally dubbed, multi-language experience while preserving the original audio quality and background music. The future of video localization is here!
8 commits
Python
100.0%