CoolFace
Apppublic

ivanusto/taiwanese-hakka-asr-vosk

sourceHugging Faceapache-2.0updated 10mo agoView on Hugging Face
0likes
App README

臺灣客語語音辨識系統(VOSK)

使用 Vosk 離線語音辨識引擎的台灣客語 ASR 系統,支援六大腔調。

功能特色

  • —🎙️ 支援麥克風即時錄音辨識
  • —📁 支援上傳音檔辨識(WAV、MP3、M4A、FLAC、MP4 等)
  • —🗣️ 六大客語腔調:四縣、海陸、大埔、饒平、詔安、南四縣
  • —✏️ 自動標點符號插入(根據詞間停頓自動加入逗號、句號、分段)
  • —🔇 可選的音訊抗噪處理(DeepFilterNet)
  • —📝 自動生成 SRT 字幕檔
  • —🐳 Docker 容器化,跨平台支援

線上使用

直接在 Hugging Face Space 上使用:

👉 [https://huggingface.co/spaces/formospeech/taiwanese-hakka-asr-vosk](https://huggingface.co/spaces/formospeech/taiwanese-hakka-asr-vosk)

本地安裝與執行

使用 Docker(推薦)

適用於所有平台,包括 Apple Silicon Mac:

bash
git clone https://huggingface.co/spaces/formospeech/taiwanese-hakka-asr-vosk
cd taiwanese-hakka-asr-vosk

# 建置並啟動
docker compose up --build

# 或背景執行
docker compose up -d --build

啟動後開啟瀏覽器訪問 http://localhost:7860

停止服務:

bash
docker compose down
💡 首次執行時,系統會自動從 Hugging Face 下載所需的語音辨識模型。

使用方式

  1. 1.從選項中選擇要辨識的客語腔調
  2. 2.調整標點符號間隔設定(可選):
  3. 3.逗號間隔:詞間隔 ≥ 此值加逗號「,」(預設 0.1 秒)
  4. 4.句號間隔:詞間隔 ≥ 此值加句號「。」(預設 0.5 秒)
  5. 5.分段間隔:詞間隔 ≥ 此值加句號並換行(預設 2.0 秒)
  6. 6.選擇是否啟用抗噪處理(可選)
  7. 7.選擇音訊來源:
  8. 8.上傳音檔:點擊上傳區域選擇音檔
  9. 9.麥克風錄音:點擊麥克風按鈕開始錄音
  10. 10.點擊對應的「辨識」按鈕
  11. 11.等待辨識完成,結果顯示在右側文字框

自動標點符號功能

系統會根據詞與詞之間的時間間隔,自動插入適當的標點符號:

詞間停頓時間插入標點
< 逗號間隔(預設 0.1 秒)空格(保留斷詞)
< 句號間隔(預設 0.5 秒)逗號「,」
< 分段間隔(預設 2.0 秒)句號「。」
≥ 分段間隔句號「。」+ 分段(兩個換行)

模型來源

模型會自動從 Hugging Face 下載(如果本地不存在):

檔案說明

檔案說明
app.py主程式,包含 Gradio Web 介面與語音辨識邏輯
test_vosk_output.py測試腳本,用於檢查 Vosk 輸出的詞彙時間戳記格式
DockerfileDocker 映像檔定義(適用於本地與 HF Space)
Dockerfile.local本地專用 Docker 映像檔定義(簡化版)
docker-compose.ymlDocker Compose 設定檔
requirements.txtPython 相依套件

六大腔調分布

腔調主要分布區域
四縣腔苗栗、屏東六堆
海陸腔新竹縣
大埔腔臺中東勢、石岡、新社
饒平腔桃園中壢、新竹芎林、苗栗卓蘭
詔安腔雲林崙背、二崙、西螺
南四縣腔屏東六堆

技術說明

  • —語音辨識:Vosk(基於 Kaldi)
  • —音訊抗噪:DeepFilterNet
  • —音訊處理:pydub + FFmpeg
  • —Web 介面:Gradio
  • —容器化:Docker

部署到 Hugging Face Space

如果你想將此專案部署到自己的 HF Space:

bash
# 1. Clone 專案(如果還沒有)
git clone https://huggingface.co/spaces/formospeech/taiwanese-hakka-asr-vosk
cd taiwanese-hakka-asr-vosk

# 或者從本地專案開始:
cd /path/to/your/vosk-asr-space

# 2. 初始化 Git(如果還沒有)
git init
git branch -M main

# 3. 確認 .gitignore 包含以下內容(排除大型檔案):
#    vosk/
#    wav/

# 4. 加入所有檔案
git add .
git commit -m "Deploy to HF Space"

# 5. 建立你的 HF Space(SDK 選擇 Docker)
#    https://huggingface.co/new-space

# 6. 加入 HF remote(將 YOUR_USERNAME 和 YOUR_SPACE 換成你的)
git remote add hf https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE

# 7. 推送(如果需要認證,使用帶 token 的 URL)
git push hf main --force

# 帶 token 的方式:
git remote set-url hf https://YOUR_USERNAME:YOUR_HF_TOKEN@huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE
git push hf main --force
⚠️ 注意:HF Space 不允許上傳二進位檔案(如 .wav),請確保 .gitignore 已排除 vosk/ 和 wav/ 資料夾。

研發團隊

  • —[李鴻欣 Hung-Shin Lee](mailto:hungshinlee@gmail.com)
  • —[陳力瑋 Li-Wei Chen](mailto:wayne900619@gmail.com)

合作單位

  • —[國立聯合大學智慧客家實驗室](https://www.gohakka.org)

授權

Apache License 2.0