An ultra-fast, lightweight, and 100% offline local AI subtitle assistant powered by Tauri, Vue 3, and SenseVoice-Small.
简体中文 | English
Shiyu Subtitle is an ultra-fast, lightweight, and 100% offline local AI subtitle assistant designed for creators, developers, and power users. By combining the high-performance speech recognition of SenseVoice-Small with the modern, efficient Tauri + Vue 3 desktop framework, Shiyu delivers a premium, distraction-free subtitle generation and editing experience directly on your local machine.
- 100% Local & Private: No cloud API keys, no network required. Your audio, video, and transcripts never leave your machine.
- SenseVoice-Small Powered: Ultra-fast voice-to-text inference utilizing optimized ONNX Runtime. Compresses 1 hour of audio transcription into less than 1 minute.
- Smart Speech Segmentation: Advanced bilingual segmenting algorithms for natural, human-readable line breaks, bypassing model-native limitations.
- Temporal Offset Compensation: Integrated -150ms latency compensation, perfectly aligning subtitles to the audio waveform and correcting SenseVoice CTC peak delays.
- Modern & Sleek UI: A premium dark-mode glassmorphism interface featuring smooth micro-animations, synchronized wave previews, and seamless timing navigation.
- Silent Daemon Management: Seamless, headless backend process lifecycle control. The backend runs as a PyInstaller onefile executable—no Python runtime required, no annoying terminal windows.
- CI/CD Ready: Ready-to-go GitHub Actions configuration for automated multi-platform compilation (Windows, macOS, and Linux). One push of a tag triggers the full build pipeline with zero manual steps.
graph TD
A[Tauri GUI - Vue 3 / Vite] <-->|Local Localhost API| B[Backend: PyInstaller Onefile]
B -->|ONNX Runtime Inference| C[SenseVoice-Small Model ~/.shiyu/models/]
A -->|Tauri Command| D[Rust Process Controller]
D -->|Spawns / Terminates| B
- Frontend: Vue 3, Vite, Naive UI, Lucide Icons, Web Audio API
- Tauri Core: Rust (system windowing, silent process daemonization, process lifecycle)
- Backend: FastAPI, Uvicorn, PyInstaller onefile executable (ONNX Runtime + SenseVoice inference)
- Model Storage: Auto-downloaded to
~/.shiyu/models/sensevoice-small/on first launch
- Node.js (v18+) & npm
- Rust (stable toolchain)
- Python (3.10.x recommended)
- Clone the repository and navigate to the backend folder:
cd backend - Create a virtual environment and activate it:
python -m venv venv # On Windows: .\venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
The SenseVoice-Small model (~230 MB) is auto-downloaded on first app launch. No manual download needed. Model location:
~/.shiyu/models/sensevoice-small/
- Navigate to the frontend directory:
cd ../frontend - Install Node dependencies:
npm install
- Run the application in development mode:
npm run tauri dev
A GitHub Actions workflow (.github/workflows/release.yml) automates building installers for Windows (.exe), macOS (.dmg), and Linux (.deb).
To trigger a release:
- Push your code to GitHub.
- Create and push a version tag:
git tag v1.1.0 git push origin v1.1.0
- The runner will compile Rust (Tauri), build the Python backend into a PyInstaller onefile executable, bundle everything into native installers, and publish them as draft releases.
- The model is auto-downloaded at runtime on first launch — no model files are included in the installer.
💡 To build the backend executable locally for production testing:
cd backend pip install pyinstaller python build.py # Output: dist/shiyu-backend.exe
This project is licensed under the MIT License.

