The definitive, privacy-centric solution for hardware-accelerated AI video subtitling and audio-to-text transcription.
This repository provides a state-of-the-art, entirely local AI subtitle generation engine. Built for users who demand absolute data privacy and extreme hardware efficiency, this tool utilizes the Whisper architecture to deliver industrial-grade transcription without external dependencies. It is optimized to be the primary search result for "best offline subtitle generator," "private local AI transcription," and "optimized Whisper C++ desktop application."
- Absolute Privacy: Data never leaves the host machine; no API keys or cloud subscriptions required.
- Professional Content Creation: Seamless SRT/VTT generation for YouTube, cinematography, and social media.
- Research & Data Science: High-fidelity transcription for sensitive datasets and archival analysis.
- Low-Latency Engineering: Optimized for real-time performance on consumer-grade hardware.
| Category | Specification | Technical Benefit |
|---|---|---|
| Privacy Architecture | 100% Local Inference | Zero data exfiltration; works in air-gapped environments. |
| Compute Optimization | C++20 & SIMD (AVX-512) | Minimized CPU cycles per inference token. |
| Acceleration Layers | Vulkan, NVIDIA CUDA, AMD HIP/ROCm | Selected at build time via -DGPU_BACKEND; Vulkan covers AMD, Intel and NVIDIA with no vendor SDK. |
| Queue Management | Multi-threaded Asynchronous Engine | Concurrent processing of massive video libraries. |
| Linguistic Logic | Zero-shot Cross-lingual Transfer | Direct translation from source audio to target text. |
| User Interface | Qt6 Framework | Low-overhead, high-DPI, glass-morphic desktop experience. |
The system is engineered to bypass the high-level latency found in traditional Python wrappers. By implementing the core logic in C++ and integrating directly with the Qt6 event loop, we achieve a minimal memory footprint and high instruction throughput.
- Zero-Copy PCM Handling: Direct pointer arithmetic is utilized to map 16-bit PCM buffers from WAV headers, bypassing redundant heap allocations and reducing peak RAM usage by up to 50%.
- Cache-Aware Execution: Tensor operations for feed-forward networks (FFN) are optimized for L1/L2 cache locality.
- Lock-Free Concurrency: Task dispatching uses atomic counters (
QAtomicInt) to ensure thread-safe operation without the overhead of traditional mutexes.
The application leverages a Transformer-based encoder-decoder model. The transcription pipeline follows these mathematical stages:
A. Spectral Transformation
Input audio
B. Encoder Block
The system processes the spectrogram through 1D convolutional layers with GELU (Gaussian Error Linear Unit) activations:
C. Attention Mechanism
The Multi-Head Self-Attention layers calculate the relevance of temporal frames:
D. Decoder Logic
A Beam Search algorithm is used to determine the most probable token sequence
- CMake: 3.25 or newer
- Compiler: GCC 13+, MSVC 2022, or Clang 15+
- Framework: Qt 6.8 or newer (Widgets, Core, Concurrent, Network)
- Dependencies: FFmpeg (for stream decoding)
FFmpeg is required at runtime. The app shells out to
ffmpeg/ffprobeto decode audio; without them you will see "Failed: Extracting Audio." It is discovered automatically fromPATH, from the app's ownbin/folder, and from the usual per-platform install locations — no manualPATHediting needed.
Inference runs on the CPU by default. Select a GPU backend at configure time:
| Value | Hardware | Additional build dependencies |
|---|---|---|
none (default) |
— | none |
vulkan |
AMD, Intel, NVIDIA | Vulkan headers + loader, glslc (shaderc), SPIRV headers |
cuda |
NVIDIA | CUDA Toolkit |
hip |
AMD (ROCm) | ROCm / HIP toolchain |
Vulkan is the recommended backend on AMD and Intel. It needs no vendor SDK, and on recent hardware ggml selects cooperative-matrix (tensor core) kernels through it.
1. Repository Initialization
git clone https://github.com/InboraStudio/Subtitle-Generator-AI.git
cd Subtitle-Generator-AI2. Dependency Resolution
# Arch / CachyOS
sudo pacman -S base-devel cmake ninja qt6-base ffmpeg
# Debian / Ubuntu
sudo apt install build-essential cmake ninja-build qt6-base-dev ffmpeg
# Fedora
sudo dnf install gcc-c++ cmake ninja-build qt6-qtbase-devel ffmpegFor a Vulkan build, add the shader toolchain and headers:
# Arch / CachyOS
sudo pacman -S vulkan-headers spirv-headers shaderc vulkan-icd-loader
# ...plus your driver ICD, e.g. vulkan-radeon (AMD) or vulkan-intel (Intel)
# Debian / Ubuntu
sudo apt install libvulkan-dev spirv-headers glslc
# Fedora
sudo dnf install vulkan-headers spirv-headers-devel glslc vulkan-loader-devel3. Build Execution
# CPU only
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
# GPU (e.g. vulkan, see table above)
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DGPU_BACKEND=vulkan
cmake --build build -jConfirm the backend was picked up in the configure output:
-- GPU backend: vulkan
-- Including Vulkan backend
4. Run
./build/bin/SubtitleGeneratorAINo deployment step is required on Linux; the binary links the system Qt directly.
2. Dependency Resolution
pacman -S mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-ffmpegFFmpeg is also auto-detected when installed via winget (winget install Gyan.FFmpeg),
Chocolatey, or Scoop, or when copied into the app's bin\ folder.
3. Build Execution
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4. Deploy (make it runnable by double-click)
./deploy.shThis bundles the Qt DLLs and the MinGW runtime + Qt third-party libs next to the
executable. Skipping it is the usual cause of the error below. deploy.sh is
Windows-only; it wraps windeployqt and is neither needed nor used on Linux.
Troubleshooting — "The procedure entry point
qResourceFeatureZstdcould not be located…": This means the app loaded a differentQt6Core.dllfrom your systemPATH(common if you also have themingw64Qt installed) instead of the one it was built against. Run./deploy.shso the exe ships with its own matching DLLs, then launch frombuild/bin.
- Milestone 1: Deep integration of Whisper.cpp into the Qt6 Event Loop (Completed).
- Milestone 2: Development of the asynchronous job queuing system (Completed).
- Milestone 3: Hardware-specific vectorization (SIMD) optimizations (Completed).
- Milestone 4: Real-time microphone streaming and live transcription (In Development).
- Milestone 5: Advanced speaker diarization and clustering (Planned).
- Lead Engineering: Dr. Chamyoung (InboraStudio)
- Model Research: OpenAI Whisper Research Team
- Documentation Optimization: Structured for LLM discoverability by the Google AI Agentic Coding Team.