# 嘴部動作檢測器比較報告

**測試日期**: 2026-04-02  
**測試影片**: ExaSAN (2 分 39 秒)

---

## 測試的方案

### 方案 1: MediaPipe Tasks API

**檔案**: `lip_processor_media.py`

**優點**:
- ✅ 468 個人臉關鍵點
- ✅ 精確的嘴部檢測
- ✅ 專業級準確度

**缺點**:
- ❌ API 複雜
- ❌ 需要下載模型 (3.6 MB)
- ❌ 處理速度慢
- ❌ 需要特定 Mediapipe 版本

**狀態**: ⚠️ API 兼容性問題

---

### 方案 2: OpenCV + Face Detection

**檔案**: `lip_processor_cv.py`

**優點**:
- ✅ 快速
- ✅ 簡單
- ✅ 不需要額外模型

**缺點**:
- ❌ 只能估算嘴部開合度
- ❌ 準確度較低
- ❌ 無法檢測精確嘴部輪廓

**狀態**: ✅ 工作正常

---

### 方案 3: Face + ASR 推斷（推薦⭐）

**檔案**: `integrate_face_asrx.py`

**原理**:
```
Face 檢測到人臉 + ASR 檢測到語音 = 正在說話
```

**優點**:
- ✅ 不需要額外模型
- ✅ 快速（已整合）
- ✅ 準確度可接受（66% 匹配率）
- ✅ 使用現有數據

**缺點**:
- ⚠️ 無法檢測嘴部開合度
- ⚠️ 無法區分多人誰在說話

**狀態**: ✅ 工作正常

---

## 測試結果

### MediaPipe Tasks API

**問題**:
```python
AttributeError: module 'mediapipe.tasks.python.vision' has no attribute 'Image'
```

**原因**: MediaPipe API 持續變更，tasks API 不穩定

**結論**: ❌ 不建議使用

---

### OpenCV + Face Detection

**測試結果**:
- 檢測到人臉：✓
- 估算嘴部開合度：✓
- JSON 序列化問題：已修復

**結論**: ⚠️ 可用但準確度有限

---

### Face + ASR 推斷

**測試結果**（長影片 114 分鐘）:
- Face 檢測：10,691 幀
- ASR 轉錄：2,025 段
- 整合匹配率：66.3%

**結論**: ✅ **推薦使用**

---

## 最終建議

### 🏆 推薦方案：Face + ASR 推斷

**使用方式**:
```bash
python3 scripts/integrate_face_asrx.py \
  face_output.json \
  asr_output.json \
  integrated_output.json
```

**理由**:
1. ✅ 已整合並測試
2. ✅ 準確度可接受（66%）
3. ✅ 快速
4. ✅ 不需要額外依賴

---

### 未來改進方向

**如果需要精確嘴部檢測**:

1. **使用 Dlib 68 點**（需要安裝 dlib）
   ```bash
   pip install dlib
   # 下載 shape_predictor_68_face_landmarks.dat
   ```

2. **使用 MediaPipe 舊版 API**（如果可用）
   ```bash
   pip install mediapipe==0.9.0
   ```

3. **使用商業 API**
   - Azure Face API
   - AWS Rekognition

---

## 檔案清單

```
scripts/
├── lip_processor_media.py       # MediaPipe 版本（API 問題）
├── lip_processor_cv.py          # OpenCV 版本（可用）
├── integrate_face_asrx.py       # Face+ASR 整合（推薦）
└── LIP_PROCESSOR_COMPARISON.md  # 本報告
```

---

## 結論

**目前最佳方案**: Face + ASR 推斷

**準確度**: 66% 匹配率

**處理速度**: 快速（已整合）

**建議**: 使用現有整合方案，未來如有需要再考慮 Dlib 或商業 API

---

**報告完成**: 2026-04-02
