使用時機
用戶想從一張人像照片和一段音訊檔案創建口播 / 數位人影片(口播視頻, 数字人生成, photo talk)。觸發詞:"生成口播视频"、"make this photo talk"、"照片說話"、"数字人視頻"、"sadtalker"、"talking head"、"avatar video from photo"。僅適用於 macOS(Apple Silicon 或 Intel)。
步驟
- 定位腳本:它們位於此 SKILL.md 的同一目錄中。使用以下指令找到它們:
ls "$(dirname <path-to-this-SKILL.md>)"— 你會看到 setup.sh 和 generate.sh 與此檔案並列。 - 檢查先決條件:ffmpeg、conda 環境 sadtalker、~/SadTalker/checkpoints/。若缺少任何項目,請執行 setup.sh(僅首次需要,約需 15 分鐘,下載約 2.5GB)。
- 確認用戶已提供人像照片(.jpg/.png)和語音音訊檔案(.wav/.mp3)。如果音訊為其他格式,請先使用 ffmpeg 轉換。
- 執行生成:
bash generate.sh <照片> <音訊> [--enhancer gfpgan] [--still] [--preprocess full|resize|crop]。此命令會在後台調用conda run -n sadtalker python inference.py。 - 輸出 .mp4 檔案會出現在 ~/SadTalker/results/<時間戳>/ 中。可使用
open <路徑>(macOS)打開。將路徑回報給用戶。
注意事項
- Python 在 conda 環境內必須是 3.10。3.8 缺少 Apple Silicon 的 wheel 套件,3.11+ 則沒有 scikit-image==0.19.3 的 wheel。
- 8GB RAM:執行前請關閉 Chrome/IDE。SadTalker 在 Mac 上完全使用 CPU — 沒有 GPU 路徑可用。
- dlib 必須在 Mac 上單獨安裝:
conda run -n sadtalker pip install dlib— 這是 M1 最常見的錯誤。 - 安裝 torch 時請勿加上 CUDA 後綴:使用純
pip install torch torchvision torchaudio。如果 torch.version 包含 '+cu',請重新安裝。 - ffmpeg 請使用 brew 安裝,不要用 conda。conda 版本的 ffmpeg 有時會缺少所需的 codec。
- 首次執行會下載約 2GB 的 checkpoints。在中國境內,請先設定 HF_ENDPOINT=https://hf-mirror.com。
- GFPGAN 增強器(
--enhancer gfpgan)大約會使處理時間加倍。快速預覽時可跳過。 - --still 模式在搭配 --preprocess full 時,需要全身照片來源。
- 音訊必須是 .wav 或 .mp3。其他格式會出現 'Header missing' 錯誤。可使用 ffmpeg 轉換:
ffmpeg -i input.m4a output.wav。
驗證
- conda run -n sadtalker python -c 'import torch; print(torch.version)' — 結果不可包含 '+cu'
- ls ~/SadTalker/checkpoints/ — 必須包含 auido2exp_00300-model.pth, auido2pose_00140-model.pth, epoch_20.pth 及其他 .pth 檔案
- conda run -n sadtalker python -c 'import dlib; print("ok")' — 必須輸出 'ok'(沒有 Illegal Hardware Instruction)
- 煙霧測試:cd ~/SadTalker && conda run -n sadtalker python inference.py --driven_audio examples/driven_audio/bus_chinese.wav --source_image examples/source_image/full_body_1.png — 應在 results/ 目錄下產生輸出