-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
Che Cheng edited this page Jul 17, 2026
·
3 revisions
-
v0.14.0:把 #100(
--hallucination-filter full,confidence-gated)與 #101(WhisperKit decode knobs:--no-speech-threshold/--compression-ratio-threshold/--logprob-threshold)從 [Unreleased] 切版出貨。CHANGELOG [0.14.0] 段落為準。 -
release-mcp.sh 0.14.0:notarizedbestasr-mcp(MCPhallucination_filter參數自此吃得到full)→ GitHub Release v0.14.0 -
release-app.sh:簽章 + notarize + staple 的bestASR-0.14.0.zip上傳同一 release -
/plugin-update bestasr:plugin 0.13.0 → 0.14.0
-
Sources/BestASRKit/Models/DataModels.swift—BestASRVersion.current→ 0.14.0 -
plugins/bestasr/.claude-plugin/plugin.json— 0.14.0
-
--hallucination-filter full(#100):denylist 之上加 confidence gating—— openai-whisper 語意的聯合靜音規則(noSpeechProb > 0.6且avgLogprob < -1.0) 與重複規則(compressionRatio > 2.4)。RawSegment/TranscriptSegment新增 optionalnoSpeechProb/compressionRatio(WhisperKit 填入;其他 backend 留 nil, nil 永不觸發門檻 →full對該 backend 自動退化為denylist,零分支)。 輸出格式不變(訊號僅供 filter 內部使用)。MCPhallucination_filter參數自動可用full。 -
WhisperKit decode-param knobs(#101):
--no-speech-threshold/--compression-ratio-threshold/--logprob-threshold(WhisperKit 限定; 未設 = 原廠預設 byte-for-byte)。verify 抓到真 HIGH:ArgumentParser 拒收前導 dash 值,而 log-prob 定義域恆為負——文件化的空格寫法在整個有意義範圍不可用; 以parsing: .unconditional修復 + 以真實Transcribe命令的空格形式回歸測試 (test target 因此連結 executable target)。chunkingStrategy依 issue 原文 「possibly」明文緩議(residue)。
-
Sources/BestASRKit/Output/HallucinationFilter.swift—.full模式 + 具名門檻常數 -
Sources/BestASRKit/{Engines/Engine,Engines/WhisperKitEngine,Models/DataModels}.swift— 訊號 plumbing + knobs -
Sources/BestASRKit/CommandCore.swift、Sources/bestasr/BestASRCommand.swift— 三 knob 貫穿 CLI -
Tests/BestASRKitTests/{HallucinationFullModeTests,DecodeKnobsTests}.swift— 10 個新測試 -
Package.swift— test target 連結 executable(CLI parse 回歸測試) -
README.md— full 模式 + knobs + deterministic 交互 + CLI-only scope
- #100 / #101 已以完整 closing summaries 手動關閉(cluster close);backlog 歸零。
-
MCP async job mode(#86,PR #89):
transcribe增加 opt-inasync參數 → 立即回job_id;新增唯讀工具transcribe_status/transcribe_result(bounded long-poll,25 s cap)。JobRegistryactor:TTL 逐出 + 每次 start 全域 sweep(registry 有界)、與同步路徑共用 SingleFlight 序列化。 -
macOS GUI dual-track bundle(#87,PR #93):SwiftUI
bestasr-gui(BestASRGUICore可測 session 狀態機 + thin views;拖放/檔案選擇、 語言/effort/格式選項持久化、stage+elapsed 誠實進度、結果預覽 + Finder 顯示)。scripts/release-app.sh:universal build → bundle 組裝 → Developer ID nested-first 簽章 → notarize → staple + validate → zip。CLI 在 bundle 內 改名bestasr-cli(預設 APFS 不分大小寫,bestasr會覆寫 GUIbestASR—— smoke test 首跑即抓到,issue 原佈局不可行)。 -
LibriSpeech 英文標準語料(#88,PR #90):test-clean + dev-clean 各 4 組
×6 utterances(8 corpora / 48 utterances),來源 tarball 與轉檔產物全程
SHA-256 pin;
references/asr-benchmark-landscape.md收錄 cited survey (license/access 矩陣、WER/CER 方法論)。 -
ExternalProcessEngine watchdog 修正(#91,PR #95):
Process.isRunning啟動期 race 會讓 watchdog 零迭代跳過 → 無界waitUntilExit()(CI 上掛滿 stub 的 3600 s)。改用terminationHandler驅動的ExitLatch(run() 前掛好) 作為迴圈條件——迴圈只能經「真的退出」或 deadline kill 離開;hung-adapter 測試 stub 3600 s → 15 s(regress 成本從 1 小時壓到秒級)。
-
Sources/BestASRKit/Engines/ExternalProcessEngine.swift— ExitLatch watchdog -
Tests/BestASRKitTests/ExternalEngineTests.swift— stub 降 15 s -
Sources/BestASRKit/Models/DataModels.swift—BestASRVersion.current→ 0.12.0 -
scripts/release-app.sh/scripts/release-mcp.sh/scripts/install.sh— bash 3.2 空陣列set -uguard(${arr[@]+...};verify #87 HIGH,三處同款潛伏 bug 一次掃除) 與 enum-scoped + semver-asserted 版本 parse
-
release-mcp.sh 0.12.0:notarize Accepted → Release v0.12.0(bestasr-mcp+ sha256) -
release-app.sh:notarize Accepted → staple 驗證通過(首顆離線可驗證 artifact) →bestASR-0.12.0.zip+ sha256 上傳同一 release -
/plugin-update bestasr:marketplace + plugin 0.11.0 → 0.12.0
- Spectra changes
mcp-surface/mcp-transcribe-async/add-librispeech-corpus/gui-app-dual-track歸檔(PR #92、#94),living specs 同步(新mcp-surface、gui-appcapability spec;corpora 增 LibriSpeech requirement)。 - Issues #86 / #87 / #88 / #91 均以完整 closing summary 手動關閉;backlog 歸零。