字幕與逐字稿
OpenScreen 會完全在你的裝置上轉錄錄影中的音訊:你的音訊從不上傳,而且模型下載到磁碟之後,就能離線運作。這份逐字稿接著會成為兩樣東西的來源:燒錄進影片的字幕,以及一個可以用來剪輯錄影的文字檢視。
轉錄
每個片段都有自己的逐字稿。有兩種方式可以產生:
- 在媒體畫面中,選取素材卡片並按下重新產生。你也可以在這裡的以此語言重新產生底下強制指定 Whisper 的 100 種語言之一,而不是讓它維持自動偵測;各素材的狀態也顯示在這裡(等待轉錄、轉錄中、逐字稿已就緒、轉錄失敗,以及媒體庫中列出的其他狀態)。
- 在編輯器檢查器的逐字稿面板中,立即產生逐字稿會對目前的媒體執行同樣的處理流程。
whisper.cpp 引擎內建在應用程式中,模型則沒有。第一次執行時會從 huggingface.co 下載模型(約 264 MB,經過 SHA-256 驗證,並以原子方式寫入,所以下載到一半的檔案絕不會被拿來使用),這是轉錄唯一需要網路的時候。之後就完全離線,並在執行時自動選擇後端:Apple Silicon 上用 Metal,Windows 與 Linux 上用 Vulkan 並以 CPU 作為備援,Intel Mac 上則用 CPU。
字詞的時間點來自 Whisper 本身的 DTW token 時間戳記,接著會再依據音訊本身重新校準:每個邊界都會往前拉到它之前最安靜的那一刻。正因如此,根據逐字稿進行的剪輯,才會落在字詞真正開始的地方,而不是晚了一個音節。
字幕
字幕是逐字稿的即時檢視,而不是產生之後還得自己維護的文字。修改逐字稿、變更字幕設定,或在時間軸上移動片段,字幕都會在下一個影格跟著更新:不需要重新產生,也沒有過時的副本需要對齊。
在檢查器的逐字稿面板中,點擊字幕:
| 區塊 | 控制項 |
|---|---|
| 顯示字幕 | 預覽與匯出共用的總開關。 |
| 語言 | 「原文(逐字稿)」,或你已產生的任何翻譯層。 |
| 文字 | 字型、大小、粗體、文字顏色。 |
| 背景 | 文字後方底板的開關、顏色與不透明度。 |
| 位置 | 下或上,以及與該邊緣的距離(畫面的 0–50%);靠左、置中或靠右,以及與該側的距離(0–25%,置中時沒有此項)。 |
| 行長 | 每行最少與最多字數(1–12)。每一行會在這個範圍內排入字詞。 |
位置中的所有設定,都是以匯出的畫面為基準,而不是以其中的影片為基準。你變更內邊距時,字幕會留在你放的位置,而且可以放在內邊距區域中:將垂直距離設為 0,文字就會緊貼畫面的上緣或下緣。較長的字幕會朝遠離固定邊緣的方向延伸,所以放在下方的字幕會向上延伸,放在上方的字幕則會向下延伸。
大小是以 1080 像素高的畫面中的像素數來表示,並會隨實際輸出等比例縮放,所以在 720p、1080p 或 Source 下,字幕看起來都一樣。預覽與匯出使用相同的版面配置程式碼:你看到什麼,燒錄進去的就是什麼。燒錄是字幕唯一的形式:OpenScreen 不會另外寫出 .srt 或 .vtt 檔,所以觀看影片的人無法關閉字幕。會寫出字幕檔的錄影軟體,請見本機字幕功能比較。
翻譯
選擇目標語言,然後按下翻譯。下拉選單內建 15 種目標語言:英文、法文、西班牙文、德文、義大利文、葡萄牙文、荷蘭文、波蘭文、土耳其文、俄文、阿拉伯文、印地文、日文、韓文與中文。
翻譯會透過你已連接的 LLM 提供者進行(請參閱 AI 剪輯),這是字幕功能中唯一需要網路的一項。翻譯會存放在逐字稿旁邊,絕不寫入逐字稿之中:原文與它的時間點都不會被更動,你隨時可以切換回「原文」,刪除某個翻譯也會讓錄影維持原本的樣子。加入新素材後重新執行翻譯,只需為新增的內容付出成本;模型沒有傳回的部分,會退回使用原文,而不會憑空編造。
以舊版「產生字幕」流程製作的專案,會將字幕文字存成真正的標註,而這些標註會繪製在即時字幕層之上。字幕窗格會偵測到它們並提議移除;由於這會刪除資料,它會先詢問你。
逐字稿編輯
逐字稿面板會顯示時間軸上所有片段彙整而成的逐字稿。它是你錄影的即時文字檢視:
- 選取一個字詞或一段字詞範圍,按下
Backspace/Delete,即可將該範圍標記為略過:它會從播放與匯出中移除,效果和時間軸上的剪輯區域完全相同,只是改由文字來操作。 - 被略過的範圍會以紅色刪除線顯示。將滑鼠移到上面即可還原。
- 靜音會在文字中以標記顯示,也可以用同樣的方式修剪或還原。
不需上傳,也不經過雲端:這一切都在專案中已有的逐字稿上執行。