用 AI 快速將錄音與影片轉錄成逐字稿

在日常工作或學習中,我們常需要處理大量的會議錄音或影片,並將其轉換成文字紀錄。手打逐字稿不僅耗時,還容易讓人感到疲倦。為了解決這個需求,我開發了 audio-transcriber skill 這款工具。它能讀取音訊(如 .mp3)與影音檔(如 .mp4),並透過 AI 輔助自動轉錄為逐字稿,大幅提升工作效率。

雙引擎架構

為了適應不同的轉錄情境,audio-transcriber 採用了雙引擎設計,使用者可以依據需求無縫切換:

引擎一:Gemini API(預設)

  • 優勢:能夠應付長達 4.5 小時的長音訊與影片。此外,它原生支援多國語言,轉錄時能直接輸出原始語言,避免產生多餘的翻譯誤差。
  • 適用場景與成本:非常適合日常一般的轉錄需求。只要使用免費版的 Gemini API 額度即可輕鬆應付。(註:若您重視資料隱私,不希望語音資料被 Google 用於模型訓練,建議配置付費版 API 金鑰)。

引擎二:AssemblyAI API

  • 優勢:專精於「高精度說話者分離(Speaker Diarization)」,能精準分辨出對話中「是誰說了哪句話」。
  • 適用場景與成本:特別針對 3 人以上的多人會議設計。AssemblyAI 提供新用戶 50 美元的初始免費額度,這筆額度大約足以免費處理數百小時的音訊。
  • 隱私與安全性:AssemblyAI 在其條款中明確承諾,不會使用客戶的 API 輸入或輸出資料來訓練他們的基礎 AI 模型。您可以前往他們的 Protecting your data is our priority 網頁查閱。
  • 🎉 專屬註冊推薦:如果您還沒有 AssemblyAI 帳號,歡迎透過我的專屬推薦連結註冊。

自動音訊壓縮機制

遇到體積龐大的錄音或影片檔怎麼辦?不用擔心,當上傳的檔案超過 20MB 時,系統會在背景自動透過 FFmpeg 將其壓縮為 32kbps 的 .ogg (Opus) 格式。

這樣做能解決幾個常見的痛點:

  • 提升穩定性:檔案體積大幅縮小後,不僅上傳速度翻倍,還能極大程度地避免 API 傳輸時發生網路超時(Timeout)的問題。
  • 維持辨識品質:Opus 格式專為人類語音最佳化,即使在極致壓縮的情況下,仍能完美保留轉錄所需的聲學特徵,不會影響 AI 語音辨識的精準度。
  • 處理速度快:實際測試中,一段約一個半小時(90分鐘)的錄音檔,大約可在 10 分鐘內完成逐字稿輸出。不過,轉錄速度會因音訊內容的「語音密集度」而有所不同。例如單人發言密集的演講,因為字數多,輸出速度會慢一些;若是多人討論且對話常有停頓間隔的會議,轉錄速度則會更為迅速。

怎麼用

audio-transcriber 並不是一個獨立執行的應用程式,而是一個用來擴充 AI Agent 能力的 Skill(技能)。安裝這個技能,你的 AI 助手就能直接在聊天視窗中具備處理音訊與影片轉錄的能力。

這款技能的程式碼已經開源,您可以前往 GitHub 取得專案: 👉 GitHub 專案網址:audio-transcriber

1. 技能安裝位置

請將從 GitHub 下載下來的 audio-transcriber 整個資料夾,放置到您 AI Agent 專屬的 skills 目錄下。

2. 金鑰與配置設定 (.env)

為了讓技能順利呼叫 API 進行轉錄,您需要配置對應的 API 金鑰:

  1. 進入 audio-transcriber 技能資料夾中。
  2. 找到名為 .env.example 的檔案,將其複製並重新命名為 .env(請注意檔案名稱前面有一個小數點)。
  3. 使用文字編輯器打開 .env 檔案,填入您的 API Key:
    • 如果您主要使用 Gemini,請填寫 GEMINI_API_KEY
    • 如果您需要使用多人會議的高精度分離,請填寫 ASSEMBLYAI_API_KEY
    • (兩者擇一填寫即可運作;若兩者皆填寫,則可依據指令靈活切換雙引擎)。

💡 貼心提示(系統自動安裝環境機制): 雖然文件上提及需要安裝 FFmpeg 及必要的 Python 套件(如 google-genai, assemblyai),但在實際搭配 AI Agent 運行此技能時,即使您沒有預先安裝這些環境套件,系統在執行過程中若偵測到缺失,也會主動嘗試為您自動安裝。您只需要確保正確放入資料夾並設定好 .env 金鑰即可,大幅降低了使用的門檻。

3. 向 AI 下指令

要使用 audio-transcriber,操作非常直覺。在您的 AI Agent 工具中,不論是透過 @code>@</code 提及檔案、直接拖曳上傳,或是輸入含有路徑的檔案名稱,只要將要轉錄的音訊或影片檔指定給 AI,並搭配簡單的提示詞即可觸發。

指令範例展示:(以下範例中的 [錄音檔/影片檔] 代表您指定的音訊或影片檔案)

  • 一般轉錄(預設 Gemini):「請幫我把這個 [錄音.mp3] 轉錄成逐字稿。」
  • 多人會議(啟用 AssemblyAI 說話者分離):「這是一場多人會議,請幫將 [會議錄音.mp3]轉錄成逐字稿,並精準區分不同的發言者。」(若未配置 AssemblyAI 金鑰,系統會無縫降級回 Gemini 繼續處理)
  • 指定說話者名稱:可協助 AI 辨識發言者身分,例如:「請轉錄 [會議錄音.mp3]。其中第 1 位發言者是甲,第 2 位發言者是乙。」(若未指定,AI 也會自動以代號標註,事後您可輕鬆辨識與一鍵替換)
  • 可提供常用詞彙表(提升辨識精度):若音訊中包含特定的專有名詞、縮寫或冷門人名,可以事先提供給 AI 避免聽錯。例如在提示詞最後,加上:「常用詞彙包含:年中獎金、附表」

但偶爾 Gemini 也會辨識出牛頭不對馬嘴的逐字稿,或是一小段話一直重覆。此時只好再重新執行此項技能。或是配置 AssemblyAI 的 API key,並指定改用 Assemblay AI 來轉錄成逐字稿。

4. 輸出結果:產出生肉檔與熟肉檔

在轉錄完成後,您會看到系統產生了兩個 Markdown 檔案:生肉檔 (-raw.md) 與熟肉檔 (-transcript.md):

  1. Raw 檔(生肉檔):這是語音辨識 API 第一時間聽打下來的原始口語紀錄。它是一字不漏的「生數據」,包含所有的口頭贅字、發言停頓以及逐句的時間戳記。
  2. Transcript 檔(熟肉檔):這是經過 AI 重新整理後的精美排版成品。AI 會在不偏離原意的前提下,自動合併連續發言、清理重複贅字,並將格式整理得乾淨易讀。您最終可以直接閱讀並使用這份「熟肉檔」。

有必要保留生肉檔嗎? 既然熟肉檔已經是精美成品,為什麼系統不直接刪除生肉檔?這主要是基於以下考量:

  • 防 AI 幻覺與漏字的反查依據(唯一用途):AI 在「炒熟」的整理過程中(合併句子、潤飾口語),有極小機率會因為幻覺而不小心漏掉、誤解某些專業術語,甚至可能微幅改動原意。保留生肉檔能讓您在有疑問時,隨時反查最原始的語音識別文字與精確時間戳記。
  • 您也可以直接刪除它:如果您確認 AI 產出的「熟肉檔」品質符合預期,不需要進行繁複的細節核對,生肉檔在轉錄完成後是可以直接手動刪除的,完全不影響後續使用。

實際產出的「熟肉檔」格式範例:

最終的逐字稿會自動以清晰的「時間戳記」搭配「說話者標籤」呈現,無論是事後回顧、作筆記還是拷貝引用都非常方便:

[00:00:05] 說話者A:大家好,歡迎參加今天的專案啟動會議。首先我們來確認一下目前的進度。
[00:00:15] 說話者B:好的,目前第一階段的開發已經初步完成,測試方面也沒有遇到太大的問題。
[00:00:28] 說話者A:很好,那我們預計下週二可以進行第一次的內部展示嗎?
[00:00:35] 說話者B:沒問題,我會在週一前把展示用的系統環境架設好。

結語

Audio-transcriber 透過雙引擎的彈性選擇與自動壓縮機制,提供了一個穩定、高效且易於使用的轉錄解決方案。無論是個人筆記、課堂錄音還是多人的會議紀錄,它都能為您節省大量的時間。歡迎前往 GitHub 下載嘗試,也期待您的使用反饋!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料