驗證工作室的輸出
專案黃金法則:在親眼看過結果之前,絕不能說「完成了」。 自動測試只能確認功能正常;唯有親眼看過,才能確認外觀是否正確(在此專案中,hyperframes check 通過時文字已被弧線穿越,而檢視器測試無法偵測到其中任何一個視覺瑕疵)。
步驟
- 影片或有
seek(t)的場景:拍攝 6–8 張分散時間點的幀(不只是第一張)製作聯絡表並用 Read 檢視:node scripts/capture.mjs <scene.html> 1,4,7,10,13,16,19 out/frames/sheet.png 4對於已算圖完成的 MP4:ffmpeg -i out/x.mp4 -vf "fps=1/3,scale=640:-1,tile=3x3" -frames:v 1 out/frames/sheet.png。 檢查:文字是否被截斷或重疊、元素出框、對比度不足、空白或凍結的幀。 - 格式:
ffprobe -v error -show_streams -show_format -of json <file>→ 1920x1080、30 fps、H.264yuv420p、預期長度、AAC 48 kHz 音訊軌。 - 音訊:
ffmpeg -i <file> -vn -af ebur128=peak=true -f null -→ 整合響度 −16 LUFS(±1)、真實峰值 ≤ −1 dBFS。 你不能用聽的:請使用頻譜圖(showspectrumpic)、測量值以及 Whisper large-v3 的回推轉錄(audio/verify_voice.py)。 絕對不要使用小型 Whisper:它會在靜音處虛構文字,導致 49–160% 的錯誤率。 - 全部一起檢查:
make verify(或audio/.venv/bin/python scripts/verify_output.py)。必須以ALL CORRECT結束。 - 誠實報告:你檢查了什麼、你測量了什麼、你 無法 判斷的項目(語音的自然度、設計品味),以及即使已修正仍出現的失敗項目。
已知陷阱
- 「完全相同」的結果必須透過實證(
cmp、使用ffmpeg -f framemd5計算幀雜湊)來證明,不能僅憑假設。Kokoro 若未指定種子則不具確定性。 - 低於 0.4 秒時間視窗的響度測量會得到 −65 LUFS(垃圾值):這類測量會被跳過。
- 在複雜場景中,PNG 的處理速度可能比 JPEG 慢 10 倍(210 秒對比 20 秒),而在平坦場景中則更快。