Skip to content

Repository files navigation

聽我 TingWo

讓每一句話,都被聽懂。

CI License Python

TingWo(聽我) 是一個為「非典型語音」打造的開源語音辨識工具箱,目標是幫助說話不清楚的人——例如因中風、腦性麻痺、帕金森氏症而構音障礙的朋友——先被機器聽懂,進而被人聽懂。以台灣華語(zh-TW)為第一優先。

靈感來自 Google 的 Project Relate:它證明了「個人化語音辨識」可行,但只支援英文、未在台灣提供、且已停止接受新使用者。說中文的朋友需要一個開放的替代品,這就是 TingWo 存在的原因。

現在能做什麼(Phase 0)

目前提供 baseline 評測工具:把錄音交給多個開源 ASR 模型,量出字元錯誤率(CER),回答兩個關鍵問題——

  1. 現成模型「開箱」能聽懂多少?
  2. 需不需要走個人化微調?要做到多深?

支援模型

key 模型 用途
breeze-asr-25 MediaTek-Research/Breeze-ASR-25 台灣華語+中英夾雜(預設)
breeze-asr-26 MediaTek-Research/Breeze-ASR-26 台語 Taigi
whisper-large-v3 openai/whisper-large-v3 對照組 baseline
whisper-large-v3-turbo openai/whisper-large-v3-turbo 較快的對照組
whisper-tiny openai/whisper-tiny 煙霧測試用,勿用於正式評估

快速開始

需求:uvffmpeg(解碼 m4a/mp3 用)、NVIDIA GPU(建議但非必要;純 CPU 也能跑,只是慢)。

git clone https://github.com/harry18456/TingWo.git
cd TingWo

# 模型快取會佔數 GB,建議指到空間充足的磁碟(選擇性):
$env:HF_HOME = "D:\hf-cache"

uv sync --extra asr    # Windows/Linux 自動安裝 CUDA 12.6 版 torch

接著三步:

  1. 依照錄音指引錄 30–50 句(樣句在 assets/phrases/phase0-zh-tw.txt),放進 data/

  2. 建立 manifest(CSV、UTF-8,audio 路徑相對於 manifest 所在位置):

    audio,text
    recordings/u001.m4a,我想要一杯溫開水
    recordings/u002.m4a,麻煩幫我叫一台計程車
  3. 跑評測:

    uv run tingwo bench --manifest data/manifest.csv --models breeze-asr-25,whisper-large-v3

報告輸出到 reports/(已被 .gitignore 排除)。結果解讀見 Phase 0 指南

其他指令:

uv run tingwo models                                   # 列出支援模型
uv run tingwo transcribe 錄音.m4a                      # 快速轉錄單檔
uv run tingwo bench --manifest data/manifest.csv --validate-only   # 只驗證 manifest

評測方法

  • 指標為 CER(字元錯誤率),採混合分詞:中文逐字、英文與數字逐詞——符合台灣中英夾雜的語言現實。
  • 評分前參考文本與辨識結果會經過相同的正規化:NFKC 全形折疊、簡→繁(OpenCC s2twp;對 vanilla Whisper 常輸出簡體的情況才公平)、阿拉伯數字→中文數字、統一小寫。
  • 已知限制(多位數字寫法、台華夾雜句)詳見 Phase 0 指南

隱私原則

語音是敏感的生物特徵資料。本專案的三條鐵律:

  1. 一切都在本機——模型下載後,推論不需要網路;錄音不離開你的電腦。
  2. data/reports/ 永不進入版本控制(.gitignore 強制)。
  3. 先取得同意——替他人錄音前,請確認對方理解用途並同意。

Roadmap

  • Phase 0(現在):baseline 評測工具
  • Phase 1:引導式錄音收集工具 + LoRA 個人化微調管線
  • Phase 2:Android App(sherpa-onnx 離線推論)+ 清晰複述(TTS)
  • Phase 3:台語/客語支援、社群自架文件

細節與技術選型理由見 docs/roadmap.md

貢獻

歡迎任何形式的參與——程式、文件、語言治療專業意見、測試回饋。請先讀 CONTRIBUTING.md行為準則

uv sync --dev            # 開發環境(不含重型 ASR 依賴)
uv run pytest            # 單元測試
uv run ruff check .      # lint
uv run ruff format .     # 格式化

聲明

TingWo 是溝通輔助工具,不是醫療器材,不提供診斷或治療建議。名稱「聽我」取自「聽我說」——每個人都值得被聽懂。

授權與致謝

Apache License 2.0。本專案站在這些工作的肩膀上:


English Summary

TingWo (聽我, "listen to me" in Mandarin) is an open-source toolkit for speech recognition of non-standard speech (dysarthria), Taiwanese Mandarin (zh-TW) first. It is inspired by Google's Project Relate, which supports English only and is currently closed to new users.

Phase 0 ships a baseline benchmark CLI: run open ASR models (MediaTek Breeze-ASR-25/26, OpenAI Whisper) over your own recordings and measure CER with fair zh normalization — Simplified→Traditional conversion, digit folding, and mixed CJK-character / Latin-word tokenization. The roadmap covers personalized LoRA fine-tuning, an offline Android app built on sherpa-onnx, and Taigi/Hakka support.

Privacy by design: everything runs locally, and recordings/reports are excluded from version control. Licensed under Apache-2.0. Documentation is currently zh-TW first; English contributions are welcome.

About

聽我 TingWo — 為非典型語音(構音障礙)打造的 zh-TW 開源語音辨識工具箱 | Open-source personalized ASR toolkit for non-standard Taiwanese Mandarin speech

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages