
把演講影片變成真的會回去看的筆記:lecture-to-notes 開源了
前陣子在臉書分享過用 AI 整理課程影片的成果,收到超乎想像的迴響,也一直有人問工具什麼時候放出來。整理了一陣子,今天正式開源:lecture-to-notes。 這篇的重點 為什麼課程錄影大家都在錄,卻沒有人回去看完 筆記不必是「文字+圖」的形狀:影片、逐字稿、總整理同步在一頁 手上有什麼就帶什麼來:錄影、錄音、投影片、照片,全部接上同一條時間軸 技術上堅持的幾件事:逐字稿永不自動改字、對時用證據不用猜 為什麼只有 OCR 不夠:沒有字的流程圖與超音波,怎麼判斷它重不重要 沒有 NVIDIA 顯卡也能跑的退階方案 教室後面的腳架森林 從以前就覺得復健科的課程很難做筆記。徒手治療、超音波掃描這種課,知識藏在「動作」裡,文字怎麼抄都抄不起來。所以現場永遠是滿滿的腳架,大家都在錄影,打算回去配飯複習。 但幾小時的影片,實際上根本不會回去看完。 想通的一個轉折:筆記不必是「文字+圖」的形狀 有了 AI 之後,我原本的思路是教它精準截圖,把影片塞回傳統「文字+圖片」的筆記形式。後來想通了:筆記不必拘泥於那個形狀。 直接做一個網頁,把影片跟逐字稿對上,想看哪段就跳到哪段。畢竟真正想知道的,是那個動作到底怎麼做——那只存在於影片裡。 所以最後的成品是三個層次疊在同一頁: 總整理拿來讀:結構化的重點筆記,配上當時的投影片 逐字稿拿來驗證:每句話都有時間戳 影片永遠在一鍵之外:影片播到哪,筆記自動高亮;點筆記的時間戳,影片直接跳過去 同一份內容還會輸出 markdown 進 Obsidian 筆記庫(之後語意搜尋找得到),以及 PDF 給不用這些工具的人。一堂課,三種耐久形態。 (截圖是一場頸椎超音波工作坊的實際輸出,日期與講者已馬賽克。) 手上有什麼就帶什麼來 真實的課程從來不會只有一支乾淨的錄影:有的講題錄了影、有的只錄到音、有的只用手機拍了投影片,會後主辦單位又補發一份 PDF 講義。 這個工具把資料夾原樣吃進去,自動判斷每個檔案扮演什麼角色,再把所有來源接上同一條時間軸——就算某張投影片從頭到尾沒出現在影片畫面裡,筆記引用到它的那一刻仍然指得回正確的時間點。 技術上堅持的幾件事 這個工具的設計目標不是「摘要一支影片」,而是可回溯(traceability):筆記裡每句話都要能指回逐字稿的某個時間點、以及當下螢幕上那張投影片。幾個為此堅持的設計: 貴的事情全部在本機跑 Whisper 轉錄、抽幀、OCR、投影片語意判讀,全部在自己的 GPU 上跑完,零 API 費用。大型語言模型只在最後一步負責「寫」,而且只能根據前面各階段已經組好的證據寫。就算不跑最後一步,你也已經拿到逐字稿、去重後的投影片集、和兩者的對應關係。 逐字稿永遠不自動改字 自動改錯字聽起來很誘人,我們實際做了兩版、量測、然後全部退役。現在可疑的詞只會被「標記」出來,逐字稿本身一個 byte 都不動。每個標記是一個問題,不是一個替換——因為改錯了你永遠不會發現。 對時:檔案時間是假說,交叉比對才是證據 一場演講常常不只一個裝置在錄:主錄影、手機片段、照片。要拼回同一條時間軸,最直覺的做法是相信每個檔案自己的拍攝時間——而手機時鐘會漂移、有些檔案只剩修改時間、按過暫停的錄影會謊報自己的開始時間。 所以管線把兩件事分開:拍攝時間當「主張」,重疊音訊的交叉比對當「證據」。兩者差超過 5 秒,就標記衝突並停下來問人,絕不自動修正。這擋掉的是「44 分鐘對錯位、但每一頁輸出看起來都很正常」的災難。 缺工具就大聲說,不悄悄降級 選用的模型都經過自己資料的評測(repo 裡附了 OCR 引擎的 A/B 測試架)。可選的套件沒裝,功能會關掉並明講你少了什麼——絕不悄悄換一個比較差的方法。悄悄降級產生的是「錯的輸出」而不是「少的輸出」,那是最貴的一類 bug。 那張投影片上沒有半個字,怎麼辦? 貼文發出來之後,有位朋友留言問:「請問您是把螢幕上的 PPT 以 OCR 方式彙整進入資料庫嗎?」這個問題剛好戳中我卡最久的一段,值得展開講。 ...