Local-first AI multilingual communication platform.
SubtitleTong 2 was built with OpenAI Codex powered by GPT-5.6 as an active development partner. We used it to turn a non-programmer product vision into a working Windows application: shaping the architecture, implementing and debugging the PySide6 interface, stabilizing simultaneous system-audio and microphone capture, connecting GPU-accelerated Whisper, adding local translation and OBS text outputs, writing tests, and preparing the project for public release.
Codex also helped us test the experience from the user's point of view. That included finding unreadable color combinations, preventing forced scrolling while a subtitle is being edited, making the newest conversation easy to find, and keeping private conversation data and local models out of the public repository.
Runtime transparency: the released app is local-first and does not require the OpenAI API to transcribe or translate audio. Codex and GPT-5.6 were used in the product-development workflow, while live transcription runs locally with Faster Whisper and translation uses local providers.
Windows では Launch SubtitleTong 2.bat をダブルクリックしてください。
初回だけ必要な環境とライブラリを自動で準備し、その後アプリを起動します。
2 回目以降も同じファイルをダブルクリックするだけです。
Before first launch, place a local faster-whisper large-v3-turbo model at
models\faster-whisper-large-v3-turbo, or set SUBTITLETONG_WHISPER_MODEL to
the model directory. Models and conversation data are intentionally excluded
from the repository.
- Workspace/session creation
- SQLite persistence
- Speaker-aware transcript segments
- Provider adapter interfaces
- Mock streaming ASR and translation pipeline
- Main control window
- Independent always-on-top subtitle overlay
The source selector is not complete until it changes the audio that is actually captured. Implement and verify all of the following after the first live Whisper quality pass:
- All system audio (current fallback)
- Specific application/process audio: Discord, browser, game, or custom app
- Windows output-device selection
- Microphone-device selection as an independent right-side speaker source
- Include/exclude process-tree capture with a visible active-source indicator
- Automatic fallback to all-system loopback when per-process capture is unavailable
The mock providers intentionally make the first executable build independent of model downloads. They will be replaced by Faster Whisper and a local translation provider without changing the UI or storage contracts.
py -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python main.pyRun tests:
python -m unittest discover -s tests -vData is stored at %LOCALAPPDATA%\SubtitleTong2\subtitletong.db on Windows.
Set SUBTITLETONG_DATA_DIR to override it during development.
SubtitleTong continuously writes UTF-8 files to data\obs_output:
original.txtzh-TW.txt,ja.txt,en.txt,ko.txt,es.txtspeaker.txtcombined.txt
In OBS, add a Text (GDI+) source, enable Read from file, and select the language file you want to show. Language buttons on the OBS page control which files are updated.
UI -> Application Service -> Pipeline -> Provider Adapters
\----> SQLite Repository
Provider code may depend on vendor libraries. Domain models, storage, and UI must not depend on a specific AI provider.