ORALION JOURNAL

產品技術

從即時片段到可搜尋摘要:一套對話記憶系統如何運作

逐字稿真正的難題不是保存,而是幾週後仍能找回重點。本文從 IndexedDB、帳戶同步、搜尋索引與非同步摘要,拆解 Oralion 如何把對話整理成可追溯、可搜尋、可行動的記憶。

一份逐字稿真正的價值,不在「會議結束後多了一個文字檔」,而在幾週後仍能回答:那天談了什麼、誰答應了什麼、最後做了哪個決定。

這兩件事需要的系統完全不同。文字檔只要把句子依序寫下來;可搜尋的記憶則需要資料來源、時間順序、儲存邊界、索引與摘要彼此配合。Oralion 的逐字稿功能採用後者:保留原文作為可追溯的底稿,再另外建立方便尋找與行動的摘要層。

本文拆開這套機制,說明資料實際放在哪裡、摘要怎麼產生,以及什麼情況值得開啟帳戶儲存。

逐字稿的最小單位不是文件,而是片段

即時字幕持續修正、翻譯,也可能在同一時間出現多種語言。如果一開始就把所有內容串成一大段文字,後面會失去許多無法補回的資訊。

因此 Oralion 保存的是有結構的字幕片段。除了文字,每個片段還帶有場次、順序、語言、說話者、時間位置與修訂狀態。人工改過的文字會留下標記;額外翻譯也能和原始語言區分。這些欄位讓系統可以:

  • 按真正的說話順序重建全文,而不是依網路封包抵達順序拼接;
  • 將原文與各語言翻譯分開閱讀或下載;
  • 保留人工修正,不讓後續自動處理把它覆蓋;
  • 讓同一場對話在裝置副本與帳戶副本之間維持同一個身分。

逐字稿從即時片段、裝置端紀錄、帳戶儲存走向搜尋與摘要的資料流程

圖一:儲存不是單一步驟。預設先形成裝置端紀錄;只有使用者主動開啟帳戶儲存,場次才會建立可跨裝置使用的副本。

先留在瀏覽器,再決定是否跨越帳戶邊界

講者端會把完整場次寫入瀏覽器的 IndexedDB。這和畫面上的字幕歷史不同:畫面只需保留最近內容,逐字稿則要保留完整場次,才能在結束後重新閱讀與匯出。

裝置端目前保留最近 50 場,避免瀏覽器儲存空間無限增長,最後反而讓正在進行的場次寫入失敗。這個選擇有明確取捨:本機模式不需要建立伺服器副本,但清除網站資料、換瀏覽器或更換裝置,都可能讓紀錄消失。

開啟「把我的逐字稿存到帳號」後,廣播結束時才會把完整片段送到帳戶。這條上傳路徑不會阻塞結束廣播;若分頁關閉或網路暫時中斷,待同步場次會留在重試佇列,下次開啟頁面再嘗試。即使 IndexedDB 寫入異常,進行中的場次還有一份記憶體副本可作為最後的上傳來源。

這種設計的優先順序是:先確保字幕與廣播正常,再處理保存;保存失敗時要可見、可重試,不能假裝成功。

關閉與開啟帳戶儲存時,逐字稿資料所在位置與能力的差異

圖二:開關只決定新場次是否建立帳戶副本。關閉後,已經保存的內容不會偷偷消失;使用者可以刪除單場,也可以一次刪除全部。

一個列表,同時合併三種來源

逐字稿頁面不是單純讀一張資料表。它會合併:

  1. 目前瀏覽器 IndexedDB 裡的直播場次;
  2. 已同步到帳戶的直播場次;
  3. 「錄音轉文字」產生的離線轉錄。

同一場直播若同時存在裝置與帳戶,不會重複列成兩場,而是合併成一列並標示兩種位置。這很重要:兩份副本代表保存狀態,不代表發生過兩次會議。

搜尋也採取分層策略。房號、檔名、語言、日期,以及摘要裡的標題、參與者、主題、決定與待辦,都會進入快速索引。若完整文字仍在這台裝置,搜尋還會涵蓋逐字稿原文;若文字只存在帳戶端,頁面不會為了搜尋而一次下載所有全文,避免進入頁面就搬運大量私人內容。

這也解釋了為什麼摘要不是裝飾:對只在帳戶端保存的長場次,結構化欄位就是低成本、可快速掃描的搜尋入口。

摘要是索引層,不是原文的替代品

場次保存後,摘要工作會另外排入非同步佇列。儲存逐字稿不需要等待模型完成;摘要暫時失敗,也不會影響原文閱讀或下載。這避免了常見的耦合問題:模型服務一慢,使用者連自己的逐字稿都存不下來。

摘要結果不是一段籠統短文,而是五組欄位:

  • 標題:讓日期與房號以外,多一個能辨認場次的名稱;
  • 參與者:用來快速篩選「我和某人談過的場次」;
  • 主題:建立概念索引;
  • 決定:抽出已經定案的事項;
  • 待辦:把責任與下一步從討論中分離出來。

原始逐字稿經過語意整理後,形成標題、參與者、主題、決定與待辦等可搜尋欄位

圖三:摘要與原文並存。原始片段負責可追溯性,摘要欄位負責辨認、搜尋與採取行動。

每場摘要以「帳戶+場次」作為唯一身分。裝置紀錄稍後同步到帳戶時,既有摘要會沿用,不會重新生成另一份;使用者手動修改過的標題或待辦也不會因此失去。摘要欄位可直接編輯,因為模型能降低整理成本,卻不應被當成會議事實的最終裁判。

隱私控制不能藏在實作細節裡

帳戶儲存預設關閉。未開啟時,直播字幕仍可正常工作,完整逐字稿保留在講者使用的瀏覽器,不會因為系統「覺得摘要很好用」就自行上傳。

開啟後,帳戶副本與其摘要都屬於該帳戶。刪除一場逐字稿時,相關摘要也一併刪除;刪除帳戶時,逐字稿隨帳戶移除。Oralion 不會拿保存的逐字稿訓練模型。這些不是頁面上的附註,而是資料模型與刪除流程必須共同遵守的邊界。

哪些人適合開啟逐字稿儲存?

如果你經常進行專案會議、訪談、課程、社群討論或跨語言協作,建議開啟帳戶儲存。真正節省時間的不是「不用做筆記」,而是幾週後可以用人名、主題或決定找回那一場,並直接從摘要回到原文確認上下文。

若內容高度敏感、只需當下字幕,或你希望資料只停留在單一裝置,維持預設關閉更合適;需要保留時仍可以手動下載。這不是功能等級的高低,而是不同的資料策略。

實際使用只需三步:

  1. 到帳戶設定開啟「把我的逐字稿存到帳號」;
  2. 正常使用 Oralion 即時字幕,結束後讓場次完成同步與摘要;
  3. 到逐字稿頁面用標題、人名、主題、決定或待辦搜尋,必要時再編輯摘要。

逐字稿儲存和摘要的目標,不是把每一句話永久堆積起來,而是讓重要對話在需要時找得回來、看得懂,也能繼續行動。