QwenASRMiniTool turns a PC into an offline subtitle machine
基於OpenVino-int8權重,精簡的QwenASR小工具,用於即時辨識以及字幕轉換使用
At a glance
- What is it?
- QwenASRMiniTool is a Windows desktop tool that transcribes audio and video into SRT subtitles with Qwen3-ASR and Whisper models running locally through OpenVINO, CrispASR or chatllm backends. It suits people who need subtitles without sending audio to a hosted service.
- Who is it for?
- Adopt QwenASRMiniTool if you need subtitles or meeting transcripts generated on your own machine, in Simplified or Traditional Chinese, Japanese or English, and you have a Windows machine that can run the bundled cores. Do not adopt it if you need a headless service, a clean command line interface without a window, or a model tuned for music, because the specialised Traditional Chinese model can produce no output for music heavy audio.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 46 days 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 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Local transcription with a WebView shell and a closed API
QwenASRMiniTool is a local speech recognition and subtitle generation tool whose stated goal is that your colleagues, your classmates and your grandmother can all do speech recognition for free, offline, on their own computer. The interface is a native WebView2 window with a light teal style, and the underlying engines are Qwen3-ASR and Whisper in the Breeze-ASR-26 flavour. Files, videos and microphone recordings all become SRT subtitles, and the data does not leave your computer. What matters structurally is that from version 2.0.0 the WebView version is the only maintained one, with the older CustomTkinter desktop version frozen at 1.0.9 and no longer updated. The two can coexist in separate folders sharing the same model files, and the old version's check for updates shows a migration notice that does not overwrite an existing installation, so you are told to extract to a new folder and run it from there. The older documentation moved to a separate file in the repository. The repository layout shows a lot of separate concerns at the root, with app_webview.py, webview_server.py, webview_backend.py and a webview/ directory for the interface, and separate engine modules crisp_engine.py and chatllm_engine.py, plus audio_io.py, diarize.py, fa_aligner.py, ffmpeg_utils.py and downloader.py.
Four inference cores, and the model decides the backend
The tool describes itself as model driven, meaning that choosing a model on the models page automatically selects the matching inference backend, and the four core cards reflect that. There is CrispASR for GPU work, which is a multi-backend runtime from the whisper.cpp family, using ggml C++ acceleration, and the current build is CrispASR v0.8.32. There is Qwen over OpenVINO for pure CPU execution with no GPU and no driver, offered in a 0.6B lightweight version that works out of the box and a 1.7B INT8 KV-Cache version that is more accurate and downloaded on demand. There is Qwen over chatllm, kept for backward compatibility, and its core binary is not bundled with the installation package, appearing in the list only when the machine actually has libchatllm.dll present. The fourth is shared components for FFmpeg and speaker separation. The models offered cover a spread of needs. Qwen3-ASR-1.7B in Q4 or Q8 is the general purpose high accuracy choice with good Traditional Chinese sentence breaking, there is a Japanese anime specialised Qwen3-ASR-1.7B variant tuned for Japanese and anime speech, TEA-ASR-1.1 is a specialised Taiwanese Mandarin model that outputs Traditional characters natively, Whisper Breeze-ASR-26 comes in Q4, Q5 and Q8 and is specialised for Traditional Chinese and Taiwanese speech, and a qwen3 ForcedAligner GGUF model handles character level timeline alignment for karaoke style word by word subtitles.
The acceleration build is a separate download you choose by hardware
The GPU path is not a single binary but a menu of acceleration builds, and the program picks a recommendation for you. It detects the graphics card, on Windows using Win32_VideoController and nvidia-smi, and then offers a choice. Vulkan is the default and the recommended one, at roughly 34 MB, and it works with NVIDIA, AMD and Intel without requiring CUDA or ROCm, falling back to CPU automatically when there is no discrete GPU. CUDA 13 is NVIDIA only at roughly 484 MB and needs a 580 or later driver with its own CUDA runtime, and CUDA 12 is the older driver option at roughly 690 MB. A plain CPU build is around 8 MB and touches no GPU at all, and there is a CPU compatible build for processors without AVX2, needed only when the normal CPU build crashes. The reason Vulkan is the default is stated plainly. The Windows build of CrispASR has no ROCm and no SYCL, so Vulkan is the best option for AMD and Intel cards, and on an RTX 5090 the measured Vulkan and CUDA speeds are close, which is why the smaller Vulkan build is preferred. Switching the acceleration build means switching the core and needs a restart, but the model files do not have to be downloaded again.
A recording mode that only transcribes when you pause
The microphone tab is the most interesting design decision in the tool, because it changes what you transcribe. You pick a microphone and press the central microphone button, and the system only runs recognition when it detects a pause in speech, so a short pause mid sentence does not break the segment, and the results appear as live subtitles below. There is an option to save as you go, or you can press save subtitles when you are finished, and pressing the microphone button again ends the recording and completes the last segment. That segmentation behaviour is the practical point. A streaming recogniser that transcribes everything produces a wall of text with no structure, and the pause detection gives you one segment per thought, which is what you want for subtitles and for anything you will read afterwards. The recording mode is not word by word streaming, and the project says so. The other two input paths are file based. Audio and video go in through the main screen, with MP3, WAV, FLAC, M4A and OGG audio and MP4, MKV and MOV video, where the audio track is extracted automatically with ffmpeg. A batch tab takes many files at once and processes them in order, showing per file status as pending, in progress, done or failed, and you can add more files while the batch runs.
A headless mode for agents, with a deliberate split for editing
The executable has a command line mode that is headless when a subcommand is given, meaning no window opens, it exits when finished, stdout carries only the result and progress goes to stderr, which makes it suitable for being called directly by an AI agent or a batch script. Without a subcommand it opens the graphical interface as usual. The documented subcommands are:
QwenASR-WebView.exe apply fixed.json --base work.json -o final.srtThe common options are a language flag such as -l Chinese, a profile flag of zh, tea, ja or twmix that switches the model by use case and affects only that run without changing the interface settings, a hint option for names and terminology, a diarization flag with an optional speaker count, and output flags for the path and the format, srt, txt or json. The exit codes are 0 for success, 1 for a failed transcription and 2 for a bad argument. The apply subcommand exists for a specific reason, and it is a good one. When an agent fixes subtitles, it is only allowed to change the text field. Handing a whole SRT file to a language model to rewrite risks the timestamps being quietly damaged in a way that is hard to spot, so the correct flow is three steps, and the first is to transcribe to JSON with the output format flag, the second is to have the agent edit only the text in that JSON, and the third is to apply the corrected file back onto the base file to produce the final SRT.
The endpoint service and the model choices have sharp edges
The endpoint tab turns the tool into a small service. It offers an OpenAI compatible transcription API at POST /v1/audio/transcriptions that scripts and tools like OpenWebUI can connect to, a QR code or URL for phones on the same network to upload audio or video for recognition, an access key that works like a password and can be shown or reset to protect your compute, and a temporary public address through Cloudflare for devices outside the same network, which downloads cloudflared at about 25 MB the first time. The project prints a warning about that public address, because it contains the key and anyone with the full URL can upload work and consume your CPU or GPU, so it should be closed as soon as you are done. The second sharp edge is the specialised Traditional Chinese model, TEA-ASR-1.1. The documentation describes it as a light fine tune with a frozen audio encoder and a small decoder LoRA trained on less than ten hours of public data, and reports that on clean human voice, meaning interviews, questioning sessions and lectures, it is the most accurate and outputs Traditional characters natively. But for passages with heavier background music, or for songs, it may produce no output for the whole segment because the model ends generation early, and the project states that this behaviour also appears in the unquantised F16 version, so it is not caused by quantisation. The advice is to use Qwen3-ASR-1.7B or Whisper Breeze for music audio, and the program shows the same reminder next to the model dropdown.
What this tool is not built for
The scope is clear from the boundaries, and they matter when you pick a tool. It is a Windows desktop application, since the WebView2 window, the Win32_VideoController hardware detection, the libchatllm.dll check and the .bat build scripts all point at Windows, and the project documentation is written in Traditional Chinese with a Simplified Chinese interface option and English. It is a transcription tool, not a general speech platform, so there is no speaker diarization model of the kind a meeting platform would have, only a speaker count you specify so the SRT can be tagged with speaker 1, speaker 2 and so on. There is also a quality limit implied by the model list, since the specialised models are for Chinese, Japanese and Taiwanese speech, and a European language audio would fall to the general Whisper path. The reference text feature is worth knowing about too. You can paste lyrics, keywords or background notes into a recognition hint field, or load a text file, and the project states this improves recognition accuracy, which is a real and often missed capability when a proper noun appears once in a recording. The fact that the tool keeps a hint and a reference text separate from the transcript, and that the CLI exposes the same hint as an option, means the reference text is a first class input rather than a workaround.
Editorial conclusion
Adopt QwenASRMiniTool if you need subtitles or meeting transcripts generated on your own machine, in Simplified or Traditional Chinese, Japanese or English, and you have a Windows machine that can run the bundled cores. Do not adopt it if you need a headless service, a clean command line interface without a window, or a model tuned for music, because the specialised Traditional Chinese model can produce no output for music heavy audio. Before you start, check that the model you pick suits your audio, and set the diarization speaker count to the number of people actually talking.
Frequently asked questions
What does QwenASRMiniTool do and what does it need?
It transcribes audio, video and microphone recordings into SRT subtitles locally, using Qwen3-ASR and Whisper models over CrispASR, OpenVINO or chatllm backends. The WebView version needs no GPU, since the OpenVINO path runs on CPU alone, and the data stays on your own machine.
How do I install the QwenASRMiniTool dependencies?
The requirements file installs the runtime dependencies for the tool. The documented install command is `pip install -r requirements.txt`, and the list covers the interface, the inference engines, the audio handling and the Chinese conversion library.
Which inference core should I pick in QwenASRMiniTool?
The program detects your graphics card and recommends a build. Vulkan is the default and works with NVIDIA, AMD and Intel without CUDA or ROCm, and there are NVIDIA only CUDA 13 and CUDA 12 builds, plus a plain CPU build and a CPU compatible build for processors without AVX2. Switching build means switching core and requires a restart.
Does the TEA-ASR-1.1 Traditional Chinese model work on music?
Not reliably. The project reports that on clean human voice it is the most accurate and outputs Traditional characters natively, but for passages with heavier background music, or for songs, it may produce no output for a whole segment because the model ends generation early. The same behaviour appears in the unquantised version, so it is not caused by quantisation, and the advice is to use Qwen3-ASR-1.7B or Whisper Breeze instead.
Can I use QwenASRMiniTool from a script or an AI agent?
Yes. The executable is a headless command line tool when a subcommand is given, with no window, results on stdout and progress on stderr. It offers status, profiles, transcribe and apply subcommands, exit codes 0 for success, 1 for a failed transcription and 2 for a bad argument.
Official sources
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.
[](https://hysenlabs.com/projects/dseditor-qwenasrminitool)Was this useful?