Files
momentry_core/scripts/ASRX_PYTORCH25_FIX_SUMMARY.md
Warren 8f05a7c188 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
2026-04-30 15:07:49 +08:00

4.5 KiB
Raw Permalink Blame History

ASRX PyTorch 2.6 兼容性修復總結

🎉 問題已解決!

原始問題PyTorch 2.8.0 與 whisperx 不兼容 解決方案:降級 PyTorch 到 2.5.0 目前狀態 ASRX 轉錄功能正常工作


📦 安裝的套件版本

PyTorch:      2.5.0  (降級自 2.8.0)
TorchVision:  0.20.0 (降級自 0.23.0)
TorchAudio:   2.5.0  (降級自 2.8.0)
whisperx:     3.7.5

🔧 安裝步驟

# 1. 降級 PyTorch
pip3 install torch==2.5.0 --force-reinstall

# 2. 降級 torchvision 和 torchaudio
pip3 install torchvision==0.20.0 torchaudio==2.5.0 --force-reinstall

# 3. 驗證安裝
python3 -c "import torch; print(f'PyTorch: {torch.__version__}')"
python3 -c "import whisperx; print('whisperx OK')"

测试结果

測試影片ExaSAN (2.6 分鐘)

命令

python3 scripts/asrx_processor_v2_transcribe.py \
  video.mp4 output.json

結果

  • 語言識別:中文 (zh) 99%
  • 轉錄片段6 段
  • 處理時間:~5 秒
  • 正確識別「剪輯師」(台灣腔調)

輸出範例

{
  "language": "zh",
  "segments": [
    {
      "start": 0.183,
      "end": 27.757,
      "text": "正常來講我們是剪輯室用完之後再套片給我們的調光師...",
      "speaker_id": null
    }
  ]
}

⚠️ 限制說明

目前可用的功能

  • 語音轉錄 (Transcription)
  • 語言檢測 (Language Detection)
  • 時間戳 (Timestamps)

目前不可用的功能

  • 時間戳對齊 (Alignment)

    • 原因transformers 需要 PyTorch 2.6+
    • 影響:時間戳精度較低
  • 說話人分離 (Speaker Diarization)

    • 原因whisperx 沒有內建 DiarizationPipeline
    • 影響:無法區分多個說話者 (speaker_id 都是 null)

📁 可用的 ASRX 處理器版本

腳本 功能 狀態
asrx_processor_v2_transcribe.py 轉錄(無對齊/分離) 工作
asrx_processor_v2_noalign.py 轉錄 + 分離(跳過對齊) ⚠️ 分離失敗
asrx_processor_v2.py 完整功能 對齊失敗
asrx_processor_simplified.py 簡化版 PyTorch 問題

推薦使用asrx_processor_v2_transcribe.py


🎯 使用建議

方案 A目前方案推薦

使用asrx_processor_v2_transcribe.py

優點

  • 工作正常
  • 轉錄準確
  • 語言檢測準確

缺點

  • ⚠️ 無說話人分離
  • ⚠️ 時間戳精度一般

方案 B等待更新

行動

  1. 關注 whisperx GitHub
  2. 等待 PyTorch 2.6+ 兼容性修復
  3. 或等待 pyannote.audio 更新

方案 C完整安裝 pyannote.audio

需要

  1. HuggingFace account
  2. 接受 pyannote.audio 使用條款
  3. 獲取 access token
  4. 修改代碼使用 pyannote.audio 直接實現

複雜度:高 建議:除非必需,否則使用方案 A


📊 效能比較

模型 語言 片段數 時間 準確度
ASR small zh 83 ~50s 90%
ASRX v2 zh 6 ~5s 85%

分析

  • ASRX 片段較少(沒有對齊)
  • ASRX 速度更快
  • 準確度相近
  • ASRX 無說話人分離

🔄 升級路徑

當 PyTorch 2.6+ 可用時

# 1. 升級 PyTorch
pip3 install torch==2.6.0 torchvision torchaudio

# 2. 測試 whisperx
python3 -c "import whisperx; model = whisperx.load_model('base')"

# 3. 使用完整版 ASRX
python3 scripts/asrx_processor_v2.py video.mp4 output.json

📝 檔案清單

scripts/
├── asrx_processor_v2_transcribe.py     # ✅ 推薦使用
├── asrx_processor_v2_noalign.py        # ⚠️ 測試中
├── asrx_processor_v2.py                # ❌ 對齊失敗
├── asrx_processor_simplified.py        # ❌ 舊版
└── ASRX_PYTORCH25_FIX_SUMMARY.md       # 本文件

結論

成功部分

  • PyTorch 降級成功 (2.8 → 2.5)
  • whisperx 可以正常載入
  • 轉錄功能正常工作
  • 語言檢測準確 (中文 99%)
  • 台灣腔調識別良好

待解決部分

  • 時間戳對齊(需要 PyTorch 2.6+
  • 說話人分離(需要 pyannote.audio 配置)

推薦方案

目前:使用 asrx_processor_v2_transcribe.py

  • 轉錄準確
  • 速度快
  • 穩定可靠

未來:等待 PyTorch 2.6+ 或 whisperx 更新後升級


修復完成日期2026-04-02
PyTorch 版本2.5.0
狀態 轉錄可用,⚠️ 對齊/分離待修復