語者辨識是什麼?逐字稿如何區分說話者(Speaker Diarization)
語者辨識(speaker diarization)白話解說:AI 如何在逐字稿中區分說話者、和聲紋辨識有何不同、哪些情況容易出錯,以及如何得到更準確的說話者標籤。

其他語言版本: English, Русский, Українська, Dansk, Deutsch, Español, Français, Italiano, Magyar, Nederlands, Norsk bokmål, Polski, Português (Brasil), Suomi, Svenska, Türkçe, Ελληνικά, עברית, العربية, 한국어, 日本語, 中文(中国), Indonesia, Tiếng Việt
語者辨識(speaker diarization,學術上也稱「語者分離」或「語者自動分段標記」)是自動轉錄中回答「誰在什麼時候說話」的步驟:它把錄音切成片段,把聽起來是同一個聲音的片段歸成一組,再標上說話者 1、說話者 2 等標籤。它不知道任何人的名字,名字要由你,或由早已知道參與者是誰的系統事後補上。在錄音清楚、只有幾個明顯不同聲音的情況下效果很好;遇到多人同時說話、聲音相似、電話音訊和大型團體時就比較吃力。
本文用白話說明語者辨識是什麼、它和聲紋辨識的差別、背後的運作原理、哪些情況會讓它出錯,以及如何取得可以信賴的說話者標籤。
什麼是語者辨識(speaker diarization)?
沒有分段的逐字稿只是一大片文字。語者辨識能把它變成一段對話:
說話者 1 00:00:03 謝謝大家參加。我們先從預算開始好嗎?
說話者 2 00:00:07 好。差旅費大概超支了一成。
說話者 1 00:00:12 了解,主要是什麼原因?
Diarization 這個英文詞來自 diary(日誌):系統會記錄每一個時間點是哪個聲音在說話。在大多數轉錄工具裡,語者辨識和語音辨識是並行的。語音模型產出附有時間戳記的文字,語者辨識模型產出附有時間戳記的說話者片段,兩者再對齊,讓每個字或每句話都得到一個說話者標籤。
如果你轉錄的是訪談、會議或 Podcast,這些標籤正是讓文字派得上用場的關鍵:你可以引述對的人、統計誰說得最多,也能依說話者快速瀏覽一場很長的通話。
語者分離和聲紋辨識的差別
這兩者常被搞混,很多產品頁面也把「語者辨識」「說話者識別」籠統地用在兩種功能上。
| 語者分離(speaker diarization) | 聲紋辨識(speaker recognition) | |
|---|---|---|
| 回答的問題 | 誰在什麼時候說話? | 這個人是誰? |
| 需要事先提供聲音樣本 | 不需要 | 需要,登錄過的聲紋或參考片段 |
| 輸出 | 匿名標籤(說話者 1、說話者 2) | 姓名或身分比對結果 |
| 常見用途 | 訪談、會議、Podcast 的逐字稿 | 語音登入、客服中心身分驗證、比對已知說話者 |
| 細分類型 | 離線(整個檔案)或串流 | 辨識(從多人中找出是誰)與驗證(真的是你嗎?) |
有些工具會把兩者結合。會議平台知道是哪位已登入的參與者麥克風在作用,所以不必分析聲音就能顯示名字。有些應用程式讓你標記一次某個聲音,之後在其他錄音裡試著認出它。例如根據 OpenAI 的文件,它的語者分離轉錄模型可以接受已知說話者的簡短參考片段。至於大多數轉錄服務對上傳檔案所做的單純語者分離,最後得到的是需要你自己改名的通用標籤。
語者辨識的運作原理
現代系統的細節各有不同,但大多依循相同的幾個大階段。開源工具 pyannote.audio 是最廣為使用的語者分離函式庫之一,Hervé Bredin 在 Interspeech 2023 的論文「pyannote.audio 2.1 speaker diarization pipeline: principle, benchmark, and recipe」中,把它的流程描述為三個主要階段:在短滑動視窗上做局部切分、產生語者嵌入向量,以及全域分群。
1. 找出哪裡有語音
語音活動偵測(VAD)會標記錄音中哪些部分有人聲,並排除靜音、音樂和噪音。這一步的錯誤會一路影響下去:漏掉的語音不會有標籤,被誤認成語音的噪音則可能憑空多出一個說話者。
2. 切分語音
語音被切成一小段一小段,理想上每段只有一個人在說話。較新的神經網路模型一次看幾秒鐘,估計每一幀有哪些說話者在發聲,因此也能標示出重疊的語音。
3. 把每個片段轉成聲音嵌入向量
神經網路把每個片段轉換成嵌入向量(embedding):一串數字,描述的是聲音聽起來的樣子(音高、音色、說話風格),而不是說話的內容。同一個人的片段,產生的嵌入向量應該彼此靠近。
4. 將嵌入向量分群
分群演算法把相似的嵌入向量歸在一起,每一群就是一位說話者。困難的地方在於決定到底有幾群:群數太少,兩個人會被合併成同一個標籤;群數太多,一個人會被拆成好幾個標籤。有些服務讓你預先告訴它大概有幾位說話者,以幫助判斷。
5. 和文字對齊
最後,說話者片段會和語音辨識產出的文字時間戳記配對,讓逐字稿的每一行都得到標籤。邊界處出錯很常見:回答的第一個字可能被算到前一位說話者身上。
研究者用語者分離錯誤率(DER)衡量品質,它綜合了漏掉的語音、誤報和說話者混淆三種錯誤。不同資料集公布的數字差異極大,從乾淨的廣播音訊到吵雜的多人會議都有,所以單一的「準確率」數字,很難說明你自己的錄音會有什麼表現。
哪些情況會讓說話者分不清楚
- 多人同時說話。 兩個人同時開口時,通常只有一個聲音拿到標籤,另一個人的話可能遺失或被算到別人頭上。
- 聲音相似。 年齡、性別和口音相近的兩個人,產生的嵌入向量會很靠近,可能被合併。
- 電話與壓縮音訊。 窄頻電話線路和高度壓縮的語音訊息(例如 LINE 語音訊息),會去掉許多嵌入向量所依賴的細節。
- 說話者太多。 每多一個聲音,分群就更困難,特別是有些人只講了幾句話時。
- 發言太短。 「對」「嗯嗯」「是喔」這類一兩個字的插話太短,無法產生可靠的嵌入向量。
- 只有一支距離很遠的麥克風。 放在會議室中央的筆電會收到回音和忽大忽小的音量;同一個人會因為座位不同而聽起來不一樣。
- 條件改變。 說話者走動、從耳機切換成擴音,或開始壓低聲音說話,都可能被拆成兩個標籤。
- 背景噪音與音樂。 兩者都可能被誤認成語音,或讓聲音特徵變得模糊。
如何在逐字稿中更準確地區分說話者
大部分的改善來自錄音本身,而不是軟體。我們的提升轉錄準確度技巧說明了一般的音質問題;針對說話者,可以這樣做:
- 盡可能讓每個人有自己的麥克風,至少讓每個人和共用麥克風的距離差不多。
- 如果能把每個人錄在獨立音軌上(例如 Podcast 的錄音設備,或左右聲道各錄一方的立體聲通話錄音),就把各音軌分開轉錄。獨立聲道比任何聲音分群都更可靠。
- 在需要完整記錄的段落,請大家不要搶話,回答前先停半拍。
- 能直接錄音時,避免使用擴音電話,或經由會議室喇叭播放的視訊會議音訊。
- 請每位參與者在開頭說一次自己的名字。這不會訓練模型,但能讓你很快把標籤改成名字。
- 盡量把同一段對話放在同一個檔案裡。如果分成幾段轉錄,標籤會對不上:第一段的說話者 1,在第二段可能變成說話者 2。
- 先檢查逐字稿的前幾分鐘。如果有兩個人被合併,這個問題通常會持續整個檔案。
訪談方面,我們的訪談逐字稿指南說明了麥克風擺放和取得同意的方式;通話方面,請參考 Google Meet、Zoom 和 Teams 會議轉錄指南。
在 Audiotexta 中重新命名與修正說話者
在 Audiotexta 上傳檔案、貼上連結或用麥克風錄音後,產出的逐字稿會附有說話者標籤和時間戳記。要把說話者 1、說話者 2 改成真實姓名,只要在編輯器中重新命名說話者,新名字就會套用到該說話者在整份逐字稿中的所有段落。編輯器在播放時會標亮正在念的字,點任何一個字就能跳到音訊中的那個時間點,有疑問的段落可以很快用耳朵確認並修正。
請在匯出前完成改名和修正,這樣名字就會帶進 TXT、SRT 和 VTT(免費方案都能下載),或 Pro 方案的 DOCX、PDF、CSV 和 JSON。在字幕檔裡,說話者名字能幫助觀眾跟上對話;在 CSV 或 JSON 裡,則可以用來分析誰說了什麼。
和所有語者辨識系統一樣,Audiotexta 在音訊清楚、聲音差異明顯時效果最好,而且不會把說話者名字從一個檔案帶到下一個檔案:每段錄音都從全新的匿名標籤開始。
可以標示說話者的轉錄工具
現在說話者標籤已經很普遍,但各家的做法不同。以下是根據各廠商文件,或在註明處根據第三方說明整理的簡要比較(2026 年 10 月查核;功能隨時會變,請以廠商官網為準)。
| 工具 | 類型 | 說話者標籤 | 備註 |
|---|---|---|---|
| Audiotexta | 網頁版、擴充功能、API | 有,自動 | 在編輯器中重新命名說話者;標籤以檔案為單位。 |
| Otter.ai | 會議與轉錄應用程式 | 有 | 教學說明可以標記說話者,讓 Otter 在之後的錄音中認出聲音。 |
| Descript | 音訊與影片剪輯軟體 | 有,自動偵測說話者 | 說明中心列出自動偵測的檔案長度限制;你可以從聲音樣本標記說話者。 |
| TurboScribe | 網頁轉錄服務 | 有 | 廠商描述為自動偵測並標示說話者。 |
| Zoom、Teams、Google Meet 逐字稿 | 會議平台內建 | 名字來自參與者帳號 | 依據登入者而非聲音分析;共用同一台會議室設備的人可能顯示為同一位說話者。 |
| OpenAI API(gpt-4o-transcribe-diarize) | 開發者 API | 有 | 回傳附說話者標籤的片段;可選擇提供已知說話者的參考片段。 |
| AssemblyAI | 開發者 API | 有(speaker_labels) | 可設定預期的說話者人數或範圍。 |
| Deepgram | 開發者 API | 有(diarization 選項) | 在每個字上回傳說話者編號。 |
| Whisper(開源) | 本機模型 | 無 | 需搭配 pyannote.audio 等語者分離模型。 |
| pyannote.audio | 開源函式庫 | 只做語者分離 | 不會轉錄;需搭配語音辨識模型。 |
會議平台在這方面有明顯優勢:每個人都用自己的帳號加入時,平台不必靠聲音猜就知道名字。會記住聲紋的應用程式(例如 Otter),在你經常錄同一群人時能省下改名的時間。至於訪談、電話或 Podcast 這類上傳的錄音,只能靠聲音做語者分離,因此在編輯器裡快速檢查並改名,本來就是工作的一部分。
常見問題
用簡單的話說,語者辨識(speaker diarization)是什麼?
語者辨識就是找出一段錄音中「誰在什麼時候說話」。系統把音訊切成片段,把聽起來是同一個聲音的片段歸成一組,再標上說話者 1、說話者 2 等標籤,過程中並不知道任何人的名字。
語者分離和聲紋辨識有什麼不同?
語者分離(diarization)是把不同的聲音彼此區分開來,給它們匿名標籤。聲紋辨識則是把聲音對應到一個已知的人,需要事先登錄的聲音樣本或其他身分來源,例如會議平台知道是誰登入。
Whisper 可以區分說話者嗎?
開源的 Whisper 模型會轉錄語音,但本身不會標示說話者。開發者通常會把 Whisper 搭配 pyannote.audio 等獨立的語者分離模型使用,許多線上服務也會替你完成這一步。
為什麼我的逐字稿會把說話者搞混?
最常見的原因是多人同時說話、聲音相似、很短的插話、品質不佳的電話或壓縮音訊、背景噪音,以及一段錄音裡人數太多。改善錄音方式通常比調整任何設定更有效。
怎麼把說話者標籤改成真實姓名?
大多數逐字稿編輯器都能讓你把「說話者 1」這類標籤改名一次,所有帶這個標籤的段落就會一起更新。在 Audiotexta,你可以在匯出前於逐字稿編輯器中重新命名說話者。
免費試用 Audiotexta
上傳檔案或貼上連結,幾分鐘內取得逐字稿。