AUTOMOVIE 操作手冊

🚴 影片 + FIT 檔 → 自動生成 AI 旁白與字幕

單機版工具:把騎乘的第一人稱行車紀錄影片,配上 Garmin / Wahoo 匯出的 FIT 檔, 自動生成有畫面根據、有數據支撐的熱血旁白配音、動態字幕、心率功率驅動的節奏背景音。 全程在你自己的電腦上跑,影片不上傳、不複製,只讀取原檔路徑。

Windows 11 單機執行,無雲端上傳 GPU / CPU 自動切換 可自帶 AI(Claude Code / Antigravity CLI)

成品範例

這支影片就是用 AUTOMOVIE 產生的:原始素材是一段第一人稱行車紀錄影片加上 FIT 檔, 影片裡的旁白配音、動態字幕、節奏背景音全部由程式自動生成, 內容根據截圖畫面與騎乘數據撰寫,再經人工逐句校對修改。

🎙 旁白:edge-tts 語音合成 💬 字幕:依畫面與數據生成 🥁 背景音:心率+功率驅動 ✍ 人工校對後輸出

在 YouTube 上觀看:https://youtu.be/SApBGdFJeu8

i這是什麼/不是什麼

✔ 是這樣的
  • 單機工具,影片、FIT 檔留在你電腦上原本的位置,程式只記路徑、不複製
  • 旁白內容根據真實截圖畫面與 FIT 數據寫成,不是憑空生成
  • AI 部分是「帶你自己的」——你自己裝好 Claude Code / Antigravity CLI 等 指令列工具,程式呼叫它,額度算你自己的
  • 不需要 AI 也能用:退回數據規則生成(只播數字,沒有畫面劇情)
✘ 不是這樣的
  • 不是雲端服務,沒有帳號、沒有訂閱
  • 不會把你的影片上傳到任何地方(TTS 配音例外,需連微軟的語音服務)
  • 不保證 AI 寫的每一句都 100% 正確——程式有自動查核機制會標出可疑句子, 但最終還是要你人工確認

1系統需求

項目需求
作業系統Windows 11(Windows 10 未測試)
Python已內建可攜式版本,免另外安裝
ffmpeg已內建(含 GPU 編碼版本),免另外安裝
網路語音合成(edge-tts)需要連線;若有設定 AI CLI,AI 那部分也需要網路
GPU(選用)NVIDIA 顯卡若驅動支援 NVENC 會自動使用,加速轉檔;沒有就自動退回 CPU
AI CLI(選用)Claude Code 或 Antigravity CLI 擇一,用來做「截圖場景辨識」與「旁白撰寫」;不裝也能用,但旁白會比較平淡
關於 GPU / CPU 生成影片畫面的「解析度」下拉選單旁邊會顯示目前偵測到的編碼方式(自動/GPU/CPU)。 NVENC 需要驅動版本配合,程式啟動時會實際測試一次是否可用,不是單看版本號猜測。

2快速開始

整體流程只有五步,畫面上由上到下依序編號:

AUTOMOVIE 完整介面總覽
介面總覽:由上而下依序是「專案」「設定」「提示詞範本」, 接著才是編號 1~5 的主要工作流程。
  1. 選擇素材 — 貼上影片路徑與 FIT 路徑(或用「選擇…」跳出檔案總管挑選), 按「建立專案」
  2. 對時 — 讓程式知道「影片的第幾秒」對應「FIT 檔裡的哪個真實時間」
  3. 分析截圖 — 抽取畫面、用 AI 描述每張截圖的騎乘情境
  4. 旁白 / 字幕 — 按「重新產生旁白」讓 AI 根據截圖說明+數據寫腳本, 逐句檢查修改
  5. 生成影片 — 選解析度、聲音、要不要節奏背景音,按「生成影片」, 完成後直接在頁面上播放

3Step 1:選擇素材

專案下拉選單
頁面最上方是「專案」下拉選單,之後每次要接續之前做過的專案, 從這裡選就好,不用重新選路徑。

在「1 選擇素材」區塊貼上影片FIT 的絕對路徑,或直接按旁邊的 「選擇…」跳出 Windows 原生選檔視窗(這個視窗是在你自己電腦上開的,不會有任何檔案被傳出去)。

填好路徑並建立專案後的狀態
建立專案後會顯示影片的解析度、長度、FIT 紀錄筆數; 下方「參考附件」可以額外加圖檔/網頁連結/文件檔(見下方說明)。
為什麼是貼路徑,不是上傳檔案? 這是單機工具,影片動輒好幾 GB,透過瀏覽器上傳再複製一份完全沒必要, 也拖慢速度。程式只記錄路徑,實際讀取都是直接對原始檔案操作。

參考附件(選填)

按「+ 新增附件」可以加入三種類型的參考資料,內容會被整理成文字, 在後面「產生旁白」時提供給 AI 參考(例如排行榜截圖裡的名次、對手名字):

類型用途限制
圖檔排行榜截圖、路線圖等;AI 會讀圖描述內容 需要先設定好 AI CLI
網頁連結公開的活動介紹頁、部落格文章 需要登入才看得到的頁面(例如 Strava 活動頁)抓不到, 會被自動偵測並擋下,請改用截圖
文件檔.txt / .md / .csv 直接讀;.docx 也支援

每一筆附件旁邊都有「測試讀取」按鈕,加進去當下就能確認抓不抓得到內容,不用等到跑到一半才發現。

4設定 AI(選填,但強烈建議)

這是整個工具「有沒有靈魂」的關鍵設定。AI CLI 負責兩件事:看截圖描述畫面內容、 根據截圖說明與數據寫旁白。不設定也能用,但旁白會退回純數據播報(沒有畫面劇情)。

自動偵測 AI CLI 結果,找到 Claude Code 和 Antigravity CLI
按「🔍 自動偵測我電腦上裝了什麼」,程式會掃描已知的 AI 指令列工具。 找到的話按「使用這個」直接帶入已驗證能用的指令範本。

目前程式認得並且已經實測驗證過能正常運作的工具:

工具安裝方式備註
Claude Code npm install -g @anthropic-ai/claude-code 用你目前登入的 Claude 額度,不用另外申請
Antigravity CLI winget install Google.AntigravityCLI Google 出的終端 AI 代理工具, 完整安裝與認證步驟看這裡 →
Gemini CLI 自行安裝並登入 指令範本尚未實測驗證,填入後請按「測試」確認
這格到底要填什麼? 「AI 指令模板」就是「怎麼呼叫你電腦上已裝好的工具」的完整指令。{prompt} 執行時會被換成程式要問的問題,{image} 會被換成一張截圖的實際路徑。 例如填 claude -p "{prompt} 圖片路徑: {image}" --allowedTools Read, 實際執行時就會變成 claude -p "描述這張圖...圖片路徑: C:\...\f_001.jpg" --allowedTools Read。 金鑰、登入額度都是你自己的 CLI 在管,本程式不會儲存任何金鑰,只存這串指令文字本身。

5Step 2:對時

對時區塊,含 AI 自動判讀按鈕與截圖預覽
對時完成後會顯示這個時間窗口涵蓋的距離、均速、心率、功率統計, 用來確認對時抓對了範圍。

行車紀錄器的畫面通常會燒錄一個時鐘(角落的日期時間)。程式需要知道「影片第幾秒」 對應「FIT 檔裡的哪個真實時間戳記」,才能把心率、功率、速度這些數據跟畫面對上。 只需要抓一個對應點,剩下的時間軸就會自動算出來。

常見誤會 輸入框裡的「時:分:秒 (例如 08:57:11)」是灰色的格式提示,不是已經幫你填好的值。 一定要照畫面上實際看到的時間輸入或用 AI 判讀,欄位空著按確認會被擋下並提示重填。

6Step 3:分析截圖

這一步做兩件事:抽取畫面(純本機運算,不花 AI 額度)跟 AI 場景辨識(每張截圖真的會呼叫一次 AI,會花額度跟時間)。

展開的截圖說明清單,每列有縮圖+秒數+可編輯文字
分析完成後可以展開「截圖說明」清單,每一列都有縮圖跟可編輯的文字, AI 講錯了直接在這裡改、按「儲存修改」即可。

截圖間隔怎麼選

間隔越小(例如每 1 秒一張),細節越豐富,但 AI 呼叫次數也越多—— 等待時間跟消耗的額度是等比例增加的。間隔小於預設值(10 秒)時, 程式會先跳出預估視窗告訴你大概要等幾分鐘,讓你確認要不要繼續。

換過間隔也不會浪費之前的辨識結果 截圖說明是用「時間點」存的快取,不是綁死在某個間隔上。從 10 秒改成 1 秒, 原本 10 秒那 22 張的說明會直接沿用;反過來從 1 秒改回 10 秒, 也完全不用重抽圖、不用重新辨識,直接從既有的截圖裡挑出對應的張數就好, 零額外花費。

7提示詞範本庫

提示詞範本庫編輯區
可以編輯「截圖說明」跟「旁白生成」兩種範本, 存成多組、跨專案重複使用;內建預設鎖住不能改,按「另存新範本」複製一份修改。

如果你發現旁白的風格、用詞、規則想要調整(例如想要更活潑、想要固定的收尾格式、 想要主角用特定名字稱呼),這裡就是動手的地方。範本存在本機的 SQLite 資料庫 (app/data.db),每個專案可以各自選用不同範本。

範本作用
截圖說明範本決定 AI 怎麼描述每一張截圖的畫面內容
旁白生成範本決定 AI 怎麼把「截圖說明+騎乘數據+附件+補充背景」 寫成最終的旁白台詞,可用變數如 {"{"}duration{"}"} {"{"}table{"}"} {"{"}scenes{"}"} {"{"}context{"}"}
格式錯誤會直接被擋下 旁白生成範本存檔時,程式會先檢查裡面用到的變數是不是都合法(避免打錯字), 格式有誤會在存檔當下就告訴你哪裡錯了,不會等到跑一半才爆炸。

8Step 4:旁白 / 字幕編輯

旁白編輯區,點選某一列後上方顯示對應畫面預覽
點選任何一句旁白,上方會顯示該時間點最接近的截圖畫面與 AI 對那張圖的說明, 方便你一邊看畫面一邊確認旁白寫得對不對。
補充背景怎麼寫比較有效 可以直接寫:主角要怎麼稱呼、今天的天氣心情、想強調的劇情轉折、 收尾要不要固定格式(例如「Strava 路段完成,平均功率/心率/時間」)。 這欄位會被完整送進旁白生成的提示詞裡,寫得越具體,AI 產出的內容越貼近你要的。

9Step 5:生成影片

生成影片控制項與完成後的網頁內建播放器
轉檔完成後直接在頁面上播放,不用下載。 「📁 開啟檔案所在資料夾」會直接跳出檔案總管並選中該檔案。
選項說明
解析度原始(依來源)/1080p/720p
編碼自動(偵測到可用 GPU 就用 GPU)/強制 GPU/強制 CPU
旁白聲音雲哲(男聲)/曉臻(女聲)/曉雨(女聲),全部免費(edge-tts)
節奏背景音心率+功率驅動的節奏底層音效,音量可調

生成過程中有真實的進度條(不是假動畫,是解析 ffmpeg 實際回報的編碼進度算出來的), 右側有「⏹ 中止」按鈕,按下去約 1 秒內就會真的停止轉檔行程並清掉半成品檔案。

?常見問題

影片會被複製或上傳嗎?

不會。程式只記錄你貼的路徑,讀取都是直接對原始檔案操作。 唯一會離開這台電腦的資料是:語音合成(連微軟的 edge-tts 服務)、 以及你自己設定的 AI CLI 呼叫(連你自己 CLI 對應的服務)。

沒有 AI CLI 可以用嗎?

可以。分析截圖那步把「使用 AI 辨識畫面內容」取消勾選, 旁白生成就會退回純數據規則生成(照時速/心率/功率的變化播報), 不會有畫面劇情內容,但功能完全能跑。

轉檔跑到一半可以中止嗎?半成品會留在硬碟上嗎?

可以中止,每個工作階段(分析截圖/產生旁白/生成影片)進度條旁邊都有中止鍵。 中止轉檔時,半成品的 mp4(打不開的壞檔)會被自動刪除,不會留下垃圾檔案。

旁白內容不準確、憑空編造細節怎麼辦?

三層防護:①提示詞明定「不可編造,時間點誤差不超過 2 秒、方向細節要照抄」; ②程式會自動把單張截圖無法判斷的「超車/被超車」描述先過濾掉, 不讓這種本來就不可靠的資訊進到旁白生成的素材裡; ③旁白編輯區會把「畫面查無根據」的句子標橘色提醒你複查。 即使如此,AI 仍可能出錯,最終請以人工複查為準。

網頁連結附件抓不到內容?

常見原因是那個網址需要登入才看得到內容(例如 Strava 活動詳細頁)。 程式會偵測登入頁的特徵字樣並主動擋下,避免把「請登入」這種無意義文字 誤當成真實資料餵給 AI。遇到這種情況請改用截圖,存成圖檔附件。

換了截圖間隔要重新辨識嗎?

不用。截圖說明用時間點存快取,跟間隔脫鉤——不管你怎麼調整間隔, 已經辨識過的時間點永遠不會重花一次 AI 額度。

GPU 沒有被使用?

程式啟動時會實際測試一次 NVENC 能不能用(不是只看驅動版本號), 設定頁最上方會顯示目前偵測到的 ffmpeg 路徑跟 GPU 狀態。 若你的顯卡驅動版本跟 ffmpeg 要求的 NVENC API 版本不匹配, 會自動退回 CPU 編碼,仍然能正常轉檔,只是速度較慢。