DEV Community

ydtg1993
ydtg1993

Posted on

SWT (声文通) Local Offline Speech-to-Text Desktop Tool — Secure, Fast, No Data Upload

SWT (声文通)

SWT is a fully offline speech-to-text desktop application built on the FunASR speech recognition framework. All audio data is processed locally — no internet connection required, and nothing is uploaded to any server.

Download

baidu download

Preview

Features

Feature Description
File Transcription Import audio (MP3 / WAV / FLAC / …) or video (MP4 / MKV / …) files, auto-extract audio and output text
Batch Processing Multi-file sequential transcription, stable and reliable
Multi-Model Support 6 built-in ASR models, one-click download & switch, CPU/GPU inference supported
Multilingual Supports Chinese, English, Japanese, Korean, Cantonese, and more
Result Export Export to TXT / JSON / SRT formats, ready for subtitles
Speaker Diarization Experimental multi-speaker recognition (based on CAM++)
VAD Voice Activity Detection FSMN-VAD intelligent long audio segmentation, adjustable silence threshold and segment length
Speech Enhancement AI denoising (FRCRN / DFSMN), echo cancellation (DFSMN-AEC), speech separation (MossFormer)
Post-Processing CT-Transformer punctuation restoration, LLM AI correction of typos and grammar issues

Built-in Models

Model Size GPU Recommended CPU Description
Qwen3-ASR (0.6B) ~1.8 GB 2GB+ Smooth Lightweight multilingual, entry-level
Qwen3-ASR (1.7B) ~3.5 GB 6GB+ Runs but slow High-accuracy Chinese recognition, built-in punctuation
SenseVoiceSmall ~0.5 GB Not required Smooth Ultra-lightweight, multilingual + emotion/event detection
Whisper-large-v3 ~3.1 GB 8GB+ Not recommended OpenAI flagship multilingual model
faster-whisper-tiny ~0.2 GB Not required Smooth CTranslate2 accelerated, extremely lightweight
Fun-ASR-Nano ~1.0 GB 2GB+ Runnable FunAudioLLM lightweight ASR, Chinese optimized

System Requirements

Item Requirement
OS Windows 10 / Windows 11
Runtime Python 3.10+
Hardware CPU-capable; NVIDIA GPU acceleration supported (CUDA 12.1+)
Storage ~0.2–3.5 GB per model; 10 GB free disk space recommended
Dependencies ffmpeg (required for video transcription; optional for audio-only)

Quick Start

1. Clone and Enter Project

git clone https://gitee.com/ydtg1993/swt.git
cd swt
Enter fullscreen mode Exit fullscreen mode

2. Create Virtual Environment and Install Dependencies

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

3. Download Models

At least one ASR model must be downloaded on first run. After launching the application, go to SettingsModel Download Manager and select the desired models to download.

Models will be saved in the llm/ directory.

4. Launch Application

python main.py
Enter fullscreen mode Exit fullscreen mode

Note: Transcribing video files requires installing ffmpeg and adding it to your system PATH.


Project Structure

swt/
├── main.py                  # Application entry point
├── requirements.txt         # Python dependencies
├── LICENSE                  # MIT License
├── config/                  # Configuration (YAML + Pydantic Settings)
├── core/                    # Core engine (ASR, VAD, subtitle generation)
├── models/                  # Data models (SQLAlchemy)
├── ui/                      # GUI layer (PySide6 + QFluentWidgets)
│   ├── pages/               # Page components
│   └── widgets/             # Reusable components
├── workers/                 # Background worker threads (QRunnable)
├── utils/                   # Utility functions
├── llm/                     # Model storage directory
├── resources/               # Icons, images
├── scripts/                 # Model download helper scripts
├── tests/                   # Tests
└── logs/                    # Logs
Enter fullscreen mode Exit fullscreen mode

Tech Stack

Category Technology
GUI PySide6 + QFluentWidgets
ASR Engine FunASR (Qwen3-ASR, SenseVoiceSmall, FSMN-VAD)
Database SQLite + SQLAlchemy 2.x
Configuration YAML + QSettings
Logging loguru
Task System QThreadPool + QRunnable + Signal
File Handling pathlib
Packaging PyInstaller

Development

# Install dependencies
pip install -r requirements.txt

# Run application
python main.py

# Run tests
pytest tests/ -v

# Package as executable
pyinstaller main.spec
Enter fullscreen mode Exit fullscreen mode

Third-Party Licenses

Project License
FunASR MIT
Qwen3-ASR Apache 2.0
SenseVoice Apache 2.0
faster-whisper MIT
PySide6 LGPL
QFluentWidgets GPL / Commercial
ffmpeg LGPL / GPL
ModelScope Apache 2.0

License

SWT (声文通) is open-sourced under the MIT License.

Copyright © 2026 SWT (声文通)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files, to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.


Project Links


Made with ❤️ by ydtg1993

Top comments (0)