feat: update Python processors and add utility scripts

- Update ASR, face, OCR, pose processors
- Add release pre-flight check script
- Add synonym generation, chunk processing scripts
- Add face recognition, stamp search utilities
This commit is contained in:
Warren
2026-04-30 15:07:49 +08:00
parent f4697396e4
commit 8f05a7c188
256 changed files with 60505 additions and 299 deletions

View File

@@ -0,0 +1,204 @@
# ASR + Lip 對應統計分析報告
**測試日期**: 2026-04-02
**測試影片**: ExaSAN PCIe series (2 分 39 秒)
**分析方法**: ASR 轉錄段 vs Lip 嘴部檢測幀
---
## 📊 基本統計
| 指標 | 數值 | 百分比 |
|------|------|--------|
| **ASR 總段數** | 83 段 | 100% |
| **有 Lip 檢測** | 83 段 | 100% |
| **檢測到說話** | 48 段 | 57.8% ✅ |
| **未檢測說話** | 35 段 | 42.2% ⚠️ |
---
## 🎯 匹配率分析
**定義**:
- **ASR 有語音**: ASR 轉錄到的語音段
- **Lip 檢測到說話**: 嘴部開合度 > 0.3
**匹配率**: 57.8% (48/83)
**解讀**:
- ✅ 57.8% 的 ASR 語音段同時檢測到嘴部動作
- ⚠️ 42.2% 的 ASR 語音段未檢測到明顯嘴部動作
**可能原因**:
1. 側臉或低頭(嘴部未被檢測)
2. 說話聲音小(嘴部開合度低)
3. 採樣間隔錯過(每 10 幀採樣)
4. ASR 檢測到背景語音
---
## 📈 嘴部開合度分佈
| 開合度範圍 | 段數 | 百分比 | 說明 |
|-----------|------|--------|------|
| **0.0-0.2** | 33 段 | 39.8% | 閉合/輕微 |
| **0.2-0.3** | 2 段 | 2.4% | 微張 |
| **0.3-0.4** | 31 段 | 37.3% | 正常說話 ✅ |
| **0.4-0.5** | 14 段 | 16.9% | 張大嘴巴 |
| **>0.5** | 3 段 | 3.6% | 非常大聲 |
**觀察**:
- 正常說話 (0.3-0.4) 佔 37.3%
- 張大嘴巴 (0.4+) 佔 20.5%
- 閉合/輕微 (0.0-0.2) 佔 39.8% ← 可能是未說話或側臉
---
## 📋 詳細對應(前 30 段)
| 段 | 時間 | 文字 | Lip 幀 | 說話 | 開合度 |
|----|------|------|-------|------|--------|
| 1 | 0.0-2.0s | 正常來講我們就剪輯師用完之後 | 4 | ✅ 2/4 | 0.365 |
| 2 | 2.0-4.0s | 再套片給我們的調光師 | 4 | ✅ 4/4 | 0.307 |
| 3 | 4.0-6.0s | 或者是要再去找我們的錄音室 | 5 | ✅ 4/5 | 0.305 |
| 4 | 6.0-8.0s | 重新用聲音的部分 | 4 | ❌ 0/4 | 0.296 |
| 5 | 8.0-9.0s | 檔案的傳輸啊 | 2 | ✅ 1/2 | 0.307 |
| 6 | 9.0-10.0s | 共同工作上 | 3 | ✅ 1/3 | 0.300 |
| 7 | 10.0-12.0s | 不是很順的地方 | 4 | ❌ 0/4 | 0.292 |
| 8 | 12.0-15.0s | 不知道大家有沒有遇過很急的案子 | 7 | ✅ 7/7 | 0.408 |
| 9 | 15.0-16.0s | 風哨感的剪接 | 2 | ✅ 2/2 | 0.393 |
| 10 | 16.0-17.0s | 調光 | 2 | ✅ 2/2 | 0.415 |
| 11 | 17.0-18.0s | 特效 | 2 | ✅ 2/2 | 0.407 |
| 12 | 18.0-19.0s | 聲音 | 2 | ✅ 1/2 | 0.405 |
| 13 | 19.0-20.0s | 還有每個部門使用 | 3 | ❌ 0/3 | 0.000 |
| 14 | 20.0-21.0s | 不同的軟體處理檔案 | 2 | ❌ 0/2 | 0.000 |
| 15 | 21.0-24.0s | 整合作業變得相當複雜 | 6 | ✅ 2/6 | 0.508 |
| 16 | 24.0-26.0s | 或是硬碟足足空間不夠大 | 5 | ✅ 5/5 | 0.409 |
| 17 | 26.0-28.0s | 傳輸速度不夠快 | 4 | ❌ 0/4 | 0.000 |
| 18 | 28.0-30.0s | 硬碟攜帶造成循環 | 5 | ❌ 0/5 | 0.000 |
| 19 | 30.0-32.0s | 看起來相當方便的工作流程 | 4 | ✅ 4/4 | 0.436 |
| 20 | 32.0-35.0s | 要怎麼樣建置硬碟設備呢 | 7 | ✅ 7/7 | 0.429 |
---
## 🔍 未檢測到說話的段分析
**35 段未檢測到說話**,可能原因:
### 原因 1: 側臉或低頭(開合度 0.0
**範例**:
- 段 13 (19.0-20.0s): "還有每個部門使用" - 開合度 0.0
- 段 14 (20.0-21.0s): "不同的軟體處理檔案" - 開合度 0.0
- 段 17 (26.0-28.0s): "傳輸速度不夠快" - 開合度 0.0
**特徵**: 開合度 = 0.0,可能是臉部轉向
---
### 原因 2: 輕聲說話(開合度 < 0.3
**範例**:
- 段 4 (6.0-8.0s): "重新用聲音的部分" - 開合度 0.296
- 段 7 (10.0-12.0s): "不是很順的地方" - 開合度 0.292
**特徵**: 開合度 0.29-0.30,接近閾值
---
## ✅ 檢測到說話的段分析
**48 段檢測到說話**,特徵:
### 高置信度(開合度 > 0.4
**範例**:
- 段 8 (12.0-15.0s): "不知道大家有沒有遇過很急的案子" - 0.408 ✅
- 段 10 (16.0-17.0s): "調光" - 0.415 ✅
- 段 15 (21.0-24.0s): "整合作業變得相當複雜" - 0.508 ✅✅
- 段 19 (30.0-32.0s): "看起來相當方便的工作流程" - 0.436 ✅
**特徵**: 開合度 > 0.4,說話清晰
---
## 📊 時間序列分析
### 說話強度變化
```
時間 (s) 開合度 說話狀態
0-10 0.30-0.37 ✅ 正常說話
10-20 0.00-0.42 ⚠️ 混合(有側臉)
20-30 0.00-0.51 ⚠️ 混合(音量變化大)
30-40 0.39-0.44 ✅ 正常說話
40-50 0.39-0.42 ✅ 正常說話
50-60 0.00-0.41 ⚠️ 混合
```
**觀察**:
- 開頭 10 秒:穩定說話
- 10-30 秒:側臉或音量變化
- 30-50 秒:穩定說話
- 50-60 秒:又有側臉
---
## 🎬 使用建議
### 整合策略
**高置信度匹配** (開合度 > 0.4):
- ✅ 可直接用於說話者識別
- ✅ 約佔 20.5%
**中等置信度** (開合度 0.3-0.4):
- ⚠️ 可參考,需交叉驗證
- ✅ 約佔 37.3%
**低置信度** (開合度 < 0.3):
- ❌ 不建議單獨使用
- ⚠️ 需結合 Face + ASR
---
## 📁 輸出檔案
**分析腳本**: `scripts/analyze_asr_lip.py`
**使用方式**:
```bash
python3 scripts/analyze_asr_lip.py \
/tmp/asr_small.json \
/tmp/lip_cv_test.json
```
---
## ✅ 結論
### 匹配率
**57.8%** (48/83) 的 ASR 語音段同時檢測到嘴部動作
### 準確度評估
| 指標 | 數值 | 評分 |
|------|------|------|
| **總匹配率** | 57.8% | ⭐⭐⭐ |
| **高置信度** | 20.5% | ⭐⭐⭐⭐ |
| **中等置信度** | 37.3% | ⭐⭐⭐ |
| **低置信度** | 42.2% | ⭐⭐ |
### 建議
1. **使用 Face + ASR 整合**66.3% 匹配率)
2. **Lip 檢測作為輔助**57.8% 匹配率)
3. **改進方向**:
- 提高採樣率(從 10 幀改為 5 幀)
- 使用更精確的嘴部檢測Dlib/MediaPipe
- 結合多種證據Face + ASR + Lip
---
**報告完成**: 2026-04-02