本地語音辨識字幕生成工具。基於 Qwen3-ASR-0.6B 模型, 使用 OpenVINO INT8 量化推理,目前版本不使用 GPU,純 CPU 即可執行。 此版本辨識率普通,主要是要你同事、你同學,拷貝給你阿嬤都能免費進行語音辨識。 之後會調整一個使用 Python 環境的 GPU 專業版本,以提升辨識的正確性和給 LLM 使用。
- 音訊檔案(MP3 / WAV / FLAC / M4A / OGG)→ SRT 字幕
- 即時語音辨識(麥克風輸入),並非完全串流即時,會在停頓中自動處理辨識
- 自動 VAD 靜音偵測,分段轉錄
- 說話者分離(Speaker Diarization):可指定說話人數,SRT 自動標記說話者身份
- 多語系辨識:支援中文、日文、英文等 30 種語系,亦可設為自動偵測
- 辨識提示(參考文字):可貼入歌詞、關鍵字或背景說明,提升辨識準確度
- 繁體中文輸出,可辨識中英混合
- 首次執行請選擇資料夾自動下載模型(約 1.2 GB)
- Portable 版本包括模型開箱即用,Basic 版本檔案較小,採自動下載模型
- 若系統已有 Python 虛擬環境且已安裝需求,可執行
app.py,使用build.bat可建立為 exe 檔案
- 啟動後,上方狀態列確認顯示 「✅ 就緒(CPU)」,表示模型已載入完成
- 點選「瀏覽…」選擇音訊檔案(MP3、WAV、FLAC、M4A 等均支援)
- 點選「▶ 開始轉換」,下方進度列與記錄視窗會即時顯示各段處理狀態
- 完成後點選「📁 開啟輸出資料夾」即可取得
.srt字幕檔
首次啟動若模型尚未下載,程式會自動提示選擇存放資料夾並開始下載(約 1.2 GB),完成後自動載入。
- 切換至「即時轉換」分頁
- 在下拉選單選擇正確的音訊輸入裝置:
- 筆電通常選擇預設的麥克風陣列(Microphone Array)
- 桌機請選擇對應的麥克風裝置
- 若清單顯示異常,點選「重新整理」更新裝置列表
- 點選「▶ 開始錄音」後,對著麥克風說話
- 辨識並非完全即時串流,系統會在說話停頓的過程中進行辨識處理,停頓約 0.8 秒後自動觸發,結果以時間戳記顯示在下方字幕區
- 點選「■ 停止錄音」結束,可再點選「💾 儲存 SRT」將累積的字幕存檔
音檔轉字幕時,可勾選「說話者分離」,並透過「人數」下拉選單指定說話人數(自動 / 2–8 人)。開啟後,SRT 字幕的每一段文字會自動加上「說話者1:」、「說話者2:」等標記。
適用場景與限制:
- Podcast、NotebookLM 雙人對談等輪流說話的形式效果最佳,分段清楚明顯
- 多人會議或同時說話的情境效果較不理想
- 首次使用時,程式會自動提示下載說話者分離模型(約 32 MB),下載完成即可啟用
建議: 已知說話人數時請明確指定,可有效避免過度分割(例如 2 人對話被誤判為 5 人)。
上方工具列新增「語系」下拉選單,可強制指定辨識語言(預設為自動偵測)。支援中文、日文、英文、韓文、法文等共 30 種語系,對音檔轉字幕及即時辨識均有效。
- 自動偵測:模型依音訊內容判斷語言,適合多語混合的音訊
- 指定語系(如「Japanese」):鎖定語言,可減少誤辨的情形
- 日語歌詞辨識的掉字率較中文高,但咬字清晰的音調仍能正確辨識
在「音檔轉字幕」和「即時轉換」分頁各新增一個「辨識提示」文字框,可貼入歌詞、關鍵字或背景說明文字,協助 ASR 模型提升辨識準確度。
- 應用範例: 貼入 Suno 歌詞,再進行即時演唱辨識,確認歌詞是否唱正確
- 有參考文字的情況下,歌詞辨識的字詞準確度相對較高
- 亦可讀入
.txt檔案,或使用右鍵選單直接貼上文字
git pull拉取後直接執行 app.py 即可,程式啟動時會自動檢查模型完整性並在必要時補齊缺少的檔案。
- 已下載過 Portable 版本的使用者:不需重新下載 Portable,僅需下載 Basic 版本,解壓縮後覆蓋現有資料夾即可。
- 啟動後程式會自動檢查模型完整性;若為首次使用說話者分離功能,會彈出提示下載說話者分離模型(約 32 MB)。
- 原有的
Subtitle輸出資料夾內容不會受到影響。
| 項目 | 最低要求 |
|---|---|
| 作業系統 | Windows 10 / 11(64-bit) |
| Python | 3.10 以上 |
| RAM | 6 GB(推理時峰值約 4.8 GB) |
| 硬碟空間 | 2 GB(模型 1.2 GB + 程式) |
| CPU | Intel 11th Gen+ 或同等級 AMD |
GPU 非必要。OpenVINO GPU 目前僅支援 Intel GPU,不支援 NVIDIA。
| 項目 | 連結 |
|---|---|
| OpenVINO INT8 量化版(主要下載源) | dseditor/Qwen3-ASR-0.6B-INT8_ASYM-OpenVINO |
| OpenVINO INT8 量化版(備用下載源) | Echo9Zulu/Qwen3-ASR-0.6B-INT8_ASYM-OpenVINO |
| 原始 PyTorch 模型 | Qwen/Qwen3-ASR-0.6B |
| VAD 模型 | snakers4/silero-vad v4.0 |
| 說話者分離模型(分段 + 聲紋) | altunenes/speaker-diarization-community-1-onnx |
processor_numpy.py 的 BPE prompt 模板需要從原始模型提取一次。
若更換模型版本,請在有 torch + transformers 的環境中執行 generate_prompt_template.py:
python generate_prompt_template.py這會在目錄下產生:
prompt_template.json:Prompt token ID 模板,執行程式時必須存在於根目錄ov_models/mel_filters.npy:Mel 濾波器矩陣
app.py # CustomTkinter GUI 主程式
downloader.py # 模型完整性檢查與自動下載(含備援 URL)
processor_numpy.py # 純 numpy Mel / BPE 處理器(不依賴 torch)
diarize.py # 說話者分離引擎(兩階段聚類,不依賴 torch)
generate_prompt_template.py # 從原始模型提取 prompt 模板
prompt_template.json # Chat template token ID(含語系 suffix IDs)
ov_models/
mel_filters.npy # 預計算 Mel 濾波器
silero_vad_v4.onnx # VAD 靜音偵測模型(執行後下載)
qwen3_asr_int8/ # OpenVINO INT8 模型(執行後下載,~1.2 GB)
diarization/ # 說話者分離 ONNX 模型(首次使用時下載,~32 MB)
segmentation-community-1.onnx
embedding_model.onnx
本專案程式碼以 MIT 授權釋出。模型權重依各自來源的授權條款。




