← all repositories
shang-zhu/violin

Automated Dubbing for Developers Who Hate Video Editing

Violin wires Whisper, an LLM, and a TTS engine into a single pipeline so you can dub videos into 33 languages without touching a timeline editor.

violin
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

What it does Violin ingests a video, extracts the audio, and runs it through a chain of cloud models: Whisper Large v3 for word-level transcription, an LLM for translation, and a TTS engine for the new voice-over. It then speed-aligns the original footage to the synthetic audio and spits out a remuxed MP4 with optional SRT subtitles. The whole thing is packaged as a CLI, a FastAPI web app, and a Claude Code skill.

The interesting bit The clever part is not just the pipeline, but the tuning: six experimental style profiles rewrite both the translation prompt and the synthetic voice’s speed and emotion, so a “storyteller” dub sounds enthusiastic and slower while a “kids” dub uses plain language and an excited tone. There is also an in-video Q&A mode that answers questions about specific moments by reading nearby subtitles and sampled frames.

Key highlights

  • 33 target languages, with handpicked native-speaker voices for the 16 largest populations across Cartesia Sonic 3 and ElevenLabs.
  • Provider-agnostic stack: swap Together, OpenAI, or ElevenLabs for transcription, translation, TTS, and chat in one YAML file.
  • Natural-language voice picker: describe the voice you want and an LLM selects from the catalog.
  • Six style profiles—standard, kids, academic, casual, storyteller, news—that adjust both translation register and vocal delivery.
  • Dockerfile and Docker Compose setup included for self-hosting; the live demo runs on the same stack.

Caveats

  • Voice cloning and lip-sync generation are explicitly on the to-do list, so expect mismatched lip movement for now.
  • Every stage defaults to cloud APIs, so you will need external keys; this is not an offline tool.
  • The in-video Q&A chat stage uses a reasoning model by default and can return empty answers if max_tokens is set too low.

Verdict Educators, content creators, and prototype-happy developers who need fast, automated dubbing into dozens of languages will find Violin immediately useful. If you need broadcast-grade lip sync or an air-gapped pipeline, this is not there yet.

Frequently asked

What is shang-zhu/violin?
Violin wires Whisper, an LLM, and a TTS engine into a single pipeline so you can dub videos into 33 languages without touching a timeline editor.
Is violin open source?
Yes — shang-zhu/violin is open source, released under the MIT license.
What language is violin written in?
shang-zhu/violin is primarily written in Python.
How popular is violin?
shang-zhu/violin has 1.1k stars on GitHub.
Where can I find violin?
shang-zhu/violin is on GitHub at https://github.com/shang-zhu/violin.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.