Open-source project
cyberofficial/Synthalingua avatar
cyberofficial/Synthalingua

Synthalingua: self-hosted live translation with three transcription backends and a browser video player

Synthalingua - Real Time Translation

415 stars29 forksPythonAGPL-3.0

At a glance

What is it?
Synthalingua transcribes and translates audio into English on your own machine, using Whisper, FasterWhisper or OpenVINO on CPU, CUDA or Intel hardware. It ships as a Python tree with pinned dependencies, and the README still calls it beta.
Who is it for?
Synthalingua fits someone who wants live translation of a foreign stream or meeting audio running entirely on their own machine, and it does not fit a workflow that needs a transcript someone else can rely on, since the project itself says not to use it for legal, medical or business communication. Check three things first.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 2, 2026, and from our analysis. They are not legal advice.

Editorial analysis

English is the pivot, and the input can be a stream, a mic or a file

Synthalingua transcribes audio in various languages, translates it into English in near real time, and offers multilingual output on top of that. Transcription and translation share the same machine: the project states that it uses both GPU and CPU resources so transcription and translation do not queue behind each other.

Input is not limited to a file. The feature list names three sources, stream, microphone and file, and streaming and captions cover HLS, YouTube and Twitch. Results can be pushed to Discord or viewed in a browser. A `remote_microphone.py` module and a matching `remote_microphone.spec` at the top of the tree are the remote capture path, and `yt-dlp` plus `m3u8` in the dependency list are what make stream capture and HLS segment handling work.

The blocklist is the quieter feature. Repeated or unwanted phrases are filtered automatically, and `blacklist.txt` sits at the repository root as the file behind it. Without that filter, a looping game soundtrack or a repeated catchphrase becomes the caption.

The video player is the newest surface, and it exports SRT and VTT

The web video player is marked new in the README and is the only part with commands shown:

bash
# Launch the video UI
python synthalingua.py --portnumber 8000 --launchui

# Preload a video
python synthalingua.py --portnumber 8000 --video_input c:\path\to\file.mp4

Open http://localhost:8000/video_player.html and you get real-time playback with synchronized captions, live translation to any supported language, and caption styling for font, size, color and position. Processing is buffered so playback stays smooth.

Supported formats are MP4, MKV, AVI, MOV, WebM, FLV, WMV and M4V. Subtitles export as SRT or VTT, which is the part that makes the tool useful outside the browser: you can watch a video once, export the file, and use it anywhere else. Keyboard control covers Space for play and pause, F for fullscreen, the arrow keys to seek five seconds at a time, and M to mute.

The flow is drag and drop, choose source and target language, pick model and device, style the captions, then start processing.

Three model backends and four device targets decide what runs on your hardware

Model support is Whisper, FasterWhisper and OpenVINO, and device selection covers CPU, CUDA, and Intel iGPU, dGPU and NPU. Both choices are made per run rather than at build time, so the same install can do CPU-only transcription on a laptop and CUDA transcription on a workstation.

The pinned dependency list explains why. `openvino==2025.1.0`, `optimum==1.26.1`, `optimum-intel` and `nncf` are there for the Intel path, `faster-whisper==1.1.1` for the accelerated transcription path, and `openai-whisper==20240930` for the reference implementation. `transformers==4.52.4` sits under both.

Audio work is a first-class part of the tree rather than an afterthought: `librosa`, `soundfile==0.12.1`, `sounddevice==0.4.7`, `PyAudio==0.2.14`, `SpeechRecognition==3.10.1`, `demucs==4.0.1` for source separation, and `simpleaudio`. Demucs is the interesting one, since separating a voice from a background track is what lets transcription work on a game stream at all.

Pinned AI versions and PyInstaller plus Nuitka are the packaging story

This is a Python application, not a library, and the tree shows it. `synthalingua.py` is the entry point, `modules/` holds the implementation, and `information/`, `misc/` and `html_data/` hold the web assets the browser surface needs.

Setup is scripted per platform: `set_up_env.py`, `setup.bat`, `setup.sh` and `setup.bash`, with `SourceSetUp.py` beside them. Packaging uses several `.spec` files, including `set_up_env.spec`, `synthalingua.spec` and `remote_microphone.spec`, plus `rthook.py` for runtime hooks and a build script per target in `build.bat`, `build_linux.sh` and `build_remote.bat`. The build toolchain carries both `pyinstaller==6.5.0` and `Nuitka`, with `Cython` and `setuptools-rust` as compile-time support.

Every AI dependency is pinned to an exact version, and the file says why: core dependencies are pinned for stability. `numpy==1.26.4` and `diffq==0.2.4` are called out separately for the same reason. That discipline is what makes a packaged Windows build reproducible, and it is also why an install takes longer than a plain `pip install` of a few libraries.

Beta status, a 2025 release list, and wrapper code that moved out

Two things sit awkwardly against each other. The README says Synthalingua is currently in beta and actively being developed with regular updates, while the release list ends at 1.2.6 from 2025-12-06, after 1.2.5 from 2025-10-21 and 1.2.4 from 2025-09-23. The last push to the repository is 2026-06-09 on the `Master` branch, and no release has been tagged since December.

The project also tells you, at the top, that the Synthalingua Wrapper code has moved to a separate Synthalingua_Wrapper repository. Anyone following an old tutorial is working against code that is no longer here.

Detail lives elsewhere. The README points at the GitHub wiki for guides, setup, usage, troubleshooting and advanced options, and its own table of contents lists Installation, Command-Line Arguments, Blocklist and Filtering, Web and Discord Integration and Troubleshooting, none of which is visible on the repository page because the text stops after the legal disclaimer. Treat the wiki as part of the install instructions rather than as optional reading.

What the project says it is not for

The legal section is unusually direct for a hobby project, and it defines the use case more precisely than the feature list does. Synthalingua is a tool, not a service: you run it on your own computer and you are in control. It is not a replacement for professional translators or interpreters. It is for fun, learning and curiosity, aimed at hobbyists, students and anyone curious about language technology.

The line to read twice is the exclusion: do not rely on it for legal, medical, business or other important communications, and consult a qualified human for anything serious. There is also an instruction to only process audio or video you have the right to use, which matters most for the streaming path where a URL is easier to paste than a file to check.

There is a scam warning at the top of the page stating that the author does not create or endorse crypto coins or NFTs. The project is licensed AGPL-3.0 and also appears as a paid Steam entry, an itch.io build and a Product Hunt post, with a Ko-fi link for sponsorship.

Editorial conclusion

Synthalingua fits someone who wants live translation of a foreign stream or meeting audio running entirely on their own machine, and it does not fit a workflow that needs a transcript someone else can rely on, since the project itself says not to use it for legal, medical or business communication. Check three things first. The installation and command-line sections exist only in the GitHub wiki, because the README on the repository page stops after the legal disclaimer, so you are installing from documentation you have to fetch separately. The wrapper code has moved to a separate Synthalingua_Wrapper repository. And the version in the tree is not the version in the release list: the last tagged release is 1.2.6 from 2025-12-06 while the last push is 2026-06-09, so check which one a tutorial assumes. Under AGPL-3.0, read what you are shipping before you wrap it.

Frequently asked questions

how to use synthalingua

The README shows two commands for the web video player: `python synthalingua.py --portnumber 8000 --launchui` starts it, and adding `--video_input` with a file path preloads a video. You then open http://localhost:8000/video_player.html. Installation and the full command-line arguments are documented in the GitHub wiki rather than on the repository page.

Which transcription models does Synthalingua support?

Whisper, FasterWhisper and OpenVINO, selectable per run alongside a device choice of CPU, CUDA or Intel iGPU, dGPU and NPU. The pinned dependencies include openai-whisper, faster-whisper, openvino, optimum-intel and nncf.

Can Synthalingua export subtitles?

Yes. The web video player exports subtitles as SRT or VTT, and captions can be styled for font, size, color and position before processing starts. Supported video formats are MP4, MKV, AVI, MOV, WebM, FLV, WMV and M4V.

What kinds of audio can Synthalingua translate?

A stream, a microphone or a file. Streaming and captions cover HLS, YouTube and Twitch, the tree carries a remote_microphone.py module for remote capture, and results can be sent to Discord or viewed in a browser. A root-level blacklist.txt filters repeated or unwanted phrases.

What license is Synthalingua released under?

AGPL-3.0. The implementation lives in synthalingua.py and modules/, with setup scripts for Windows and Linux, PyInstaller spec files for packaging, and a requirements.txt that pins transformers, faster-whisper, openvino, librosa and Flask at exact versions.

Official sources

  1. cyberofficial/Synthalingua on GitHub
  2. License: AGPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/cyberofficial-synthalingua.svg)](https://hysenlabs.com/projects/cyberofficial-synthalingua)