SALMONN-omni論文閱讀

論文鏈接

項目鏈接

名詞理解:

  1. backchanneling: 指的是聽話人在不打斷說話人的情況下,用簡短的語氣詞或動作表示“我在聽”“我理解了”的反饋。

    常見示例包括:

    “嗯哼”(“uh-huh”)

    “對的”(“yeah”)

    “沒錯”(“right”)

    點頭、微笑(非語言反饋)

  2. Turn-taking: “輪流發言” 或 “話輪轉換”,是指在對話中,說話者與聽話者之間輪流控制說話權的機制,下文翻譯成"換話"。它涵蓋:

    開始說話(開始輪次)

    交出說話權(結束輪次)

    接管說話權(接話)

    中斷或插話(如 barge-in)

  3. barge-ins: 插話 / 打斷發言 / 搶話

0. 論文摘要

為了實現流暢自然的人機語音交互,目前的全雙工對話系統通常采用模塊化架構,例如語音活動檢測器、中斷檢測、對話狀態預測器或多個 LLM,但這些方案存在誤差累積問題,難以處理上下文依賴的“插話”(barge?in)和回聲消除等關鍵挑戰。

雖然像 Moshi 這樣的系統通過將音頻編解碼器編碼注入單一 LLM 的 token 空間,從而簡化了流程,但它們在處理語音輸入而非文本時仍導致顯著性能退化。

本文提出了 SALMONN?omni,這是第一個完全獨立的全雙工語音 LLM,不在其 token 空間中使用任何音頻編解碼器。它引入了一種新穎的動態“思考”(thinking)機制,讓模型學會何時該聽、何時該說。

在標準的口語問答和開放域對話任務上,SALMONN?omni 相對現有開源全雙工模型,性能提升至少 30%,并且在訓練數據遠少于它們的情況下,其性能可媲美半雙工或回合制系統。此外,它在實際對話場景中的表現強勁,包括多輪對話接續(turn?taking)、填充回應(backchanneling)、回聲消除、和上下文相關的插話能力,通過強化學習后表現更佳。

1. Introduction

大型語言模型(LLM)已經通過基于文本的交互在問題求解與任務執行方面帶來了變革。然而,語音是一種更自然、更直觀的交流方式,能夠帶來更流暢、更以人為中心的人機交互體驗。因此,研究者們正不斷探索將文本驅動的 LLM 擴展為具備語音處理能力的路徑,涉及從高級語音/音頻理解,到文本驅動的語音合成,再到交互式語音對話系統等多種方向。

盡管基于輪次的語音 LLM 已經能夠支持對話任務中的半雙工交互,但自然的人類對話本質上是全雙工的,即需要同時具備“聽、思考、說”的能力。這種對話特性包括換話、反饋(如“嗯哼”)、語音重疊以及插話,這些行為共同促進了人類交流的流暢性與互動性。因此,全雙工語音 LLM 正受到越來越多關注,被視為實現更加自然、響應更及時的人機對話的重要路徑。

最近發布的GPT-4o(GPT-4omni)展示了低延遲、情感表達的語音能力,進一步提高了全球對全雙工語音技術的興趣。在開放式研究中,Moshi、SyncLLM和OmniFlatten等模型將離散的音頻編解碼器 token 注入預訓練的LLM骨干網絡,并對其進行微調,以支持靈活的語音輸入和輸出。然而,這些方法通常需要大規模的訓練數據來彌合文本和語音之間的模態差距,并減輕對原始LLM文本知識的災難性遺忘。因此,語音合成器必須僅基于編解碼器流來推斷是產生語音還是靜音。雖然這些模型避免了對會話動態進行注釋的需要,但它們經常難以準確把握對話轉換的時間。其他方法明確預測說話和非說話狀態之間的轉換,并集成流式語音編碼器和合成器以實現實時交互。然而,這些系統通常依賴于復雜的機制而不是獨立的LLM來處理全雙工功能,從而增加了系統的復雜性和次優的上下文集成。一些方法,提出了具有語音活動檢測(VAD)和對話控制器等外部模塊的級聯系統來管理會話流,會話流會受到錯誤傳播的影響。其他一些,包括 VITA 和 Freeze Omni,遵循“模型即服務器”的范式,運行兩個相互依存的LLM進程,一個專門用于聽,另一個用于說,從而引入了額外的計算和內存開銷。

本論文提出 SALMONN?omni,這是首個不依賴 codec token 的獨立全雙工語音 LLM。我們將流式語音編碼器、無需音頻編解碼器注入的一個單一的 LLM 主體和流式語音合成器整合為一個統一框架。為了解決“何時說話、何時傾聽”的時序決策問題,我們提出了一種新穎的周期同步機制和動態的“思考”策略,賦予模型時間感知能力,從而實現連貫和響應迅速的實時語音通信。

我們的核心貢獻如下:

  • 我們提出了 SALMONN?omni,這是一個獨立的不依賴 codec 的全雙工語音 LLM。與之前的型號不同,SALMONN omni直接集成了流式語音編碼器、LLM和語音合成器,需要仔細同步才能同時處理輸入和輸出語音。模型通過生成特殊的 token(如 THINK、START、END)來控制“說話”與“思考”狀態,從而實現流暢且同步的人機交互。

  • 在廣泛使用的口語問答(QA)和對話基準測試中的實驗證明了SALMONN omni的強大性能。在全雙工模式下,SALMONN omni 取得了新的SOTA,比以前的最佳結果至少提高了30%。在半雙工評估中,與最近的回合制模型相比,它提供了極具競爭力的性能,包括在更大的數據集上訓練的模型,其中一些數據集的音頻長達1300萬小時

  • SALMONN?omni 是首個在復雜對話場景(包括換話、反饋、插話與回聲消除)中表現出強大能力的全雙工語音 LLM,并且通過強化學習進一步提升性能。

2 相關工作

2.1 全雙工語音大模型

與傳統的模塊化會話人工智能系統相比,端到端語音交互LLM因其支持流暢、富有表現力和情感豐富的口語交互的能力而受到廣泛關注。根據模型是否可以同時聽和說,這是人類交流的核心特征,最近的端到端會話人工智能系統可以大致分為兩種類型:半雙工(基于回合)和全雙工語音LLM。

半雙工(回合制)

  • GLM-4-Voice, Qwen2.5-Omni
  • miniCPM-o, Baichuan-Audio

全雙工

standalone

  • dGSLM, Moshi, SALMONN-omni

non-standalone

  • Freeze-Omni, VITA, MinMo

目前,大多數語音LLM以半雙工方式運行,包括GLM-4-Voice、Qwen2.5-Omni和Kimi Audio等型號。雖然這些模型可以進行基于回合的語音對話,但它們缺乏一種內部雙工策略來模擬對話動態,如回合轉換。相反,他們依靠外部VAD模塊在聽和說狀態之間交替。因此,他們在自然對話的關鍵方面(例如,插話 barge-ins 和反饋 backchanneling)遇到了困難,這些方面需要同時聽和說的能力。

全雙工語音LLM可以同時處理流式語音輸入和輸出,同時還可以確定何時說話以及何時停止。構建此類模型的一種直接方法是將音頻編解碼器注入LLM詞匯表中,Moshi、syncLLM和OmniFlatten采用了這種方法。盡管其概念簡單,但這種方法需要大規模的語音-文本配對數據來防止災難性的遺忘。即便經過大量訓練,這些模型在知識和推理能力上通常仍不如體量相近的純文本 LLM,并且還受到模態差異(modality gap)的影響。另一種策略,如 VITA、Freeze-Omni 和 MinMo 所采用的,是通過嵌入(embedding)方式將 LLM 主干與語音編碼器和語音合成器連接,從而避免對 LLM 性能造成顯著影響。然而,它們并不是真正的獨立全雙工系統,因為單個 LLM 實例只能“聽”或“說”其中之一;要實現同時聽說,仍需兩個獨立的 LLM 進程分別處理。相比之下,SALMONN-omni 提出了一種全新的雙工策略,使得單個 LLM 就能實現獨立的全雙工語音交互。

2.2 語音LLMs的強化學習(RL)

強化學習長期以來一直被應用于推進語音任務,例如,最大限度地減少自動語音識別(ASR)的單詞錯誤,優化面向任務的口語對話過程,并增強語音合成中的情感表達。對于語音LLM,最近的RL方法,如近端策略優化(PPO)和直接偏好優化(DPO),已被Qwen2 Audio和StepAudio等語音理解模型采用,以使語音LLM行為與人類偏好相一致。然而,在全雙工語音LLM的背景下,RL仍未得到探索。據我們所知,SALMONN omni是第一個應用強化學習來改進全雙工語音LLM對話動態建模的工作。

3. 方法

要實現一個全雙工語音大語言模型(full-duplex speech LLM),必須解決四個關鍵挑戰。為了構建 SALMONN?omni 成為一個無需 codec 注入的獨立全雙工模型,我們提出了一種新穎的 “無 codec(即 LLM 詞表中不包含音頻 codec)” 的全雙工語音對話框架。

  1. 該模型必須支持流式語音輸入和輸出。在不依賴 codec 的前提下,SALMONN?omni 通過“隱藏層嵌入”(hidden embeddings)將 LLM 主體與流式語音編碼器和流式語音合成器集成起來,從而實現了實時語音交互。
  2. 模型必須同時處理環境聲音和助手的語音。在全雙工對話中,語音 LLM 一方面要生成助手語音(即 assistant stream),另一方面還要同時處理所有輸入聲音(如背景音、用戶語音、助手回聲等),即環境流(environment stream)。SALMONN?omni 通過將文本響應 token、環境流嵌入和助手流嵌入交錯排列為一個統一序列,使得 LLM 主體可以以自回歸方式聯合建模這些信息。值得注意的是,Moshi 也對這兩個流進行了聯合建模,但其目的與設計方案與我們不同。
  3. 模型必須具備對“時間”的感知,以對齊語音模態與文本模態。SALMONN?omni 采用周期同步機制:在每個時間塊中,處理固定時長的輸入語音,同時生成對應時長的語音響應,以實現交互的平滑連續性。
  4. 模型必須能應對自然對話過程中的動態行為,例如話輪交替(turn-taking)與插話(barge-ins)。為此,模型需要具備對上下文的理解能力,從而能自主判斷何時開始說話、何時停止說話。

SALMONN?omni 通過一種新穎的 “思考(thinking)策略” 學習對話狀態的切換。我們沒有引入一個獨立的全雙工狀態預測器,而是提出一個新的觀點:你的 LLM 本身就可以作為一個“隱式的全雙工預測器”——我們通過訓練它在常規輸出中生成狀態切換 token,讓它“順便”學會聽說切換的時機。

值得注意的是,文中所提到的后三個關鍵能力(如狀態控制、流式對齊、聯合輸入輸出)正是 SALMONN?omni 與其他模型(如 VITA、Freeze?Omni 和 MinMo)之間的重要區別。這些模型的 LLM 解碼器無法同時聽和說,因此也無法以獨立方式實現真正的全雙工對話。SALMONN?omni 的整體結構如圖 1 所示,其核心組件將在接下來的子章節中詳細說明。

圖1:SALMONN?omni 的架構:系統接收兩個輸入流:環境流(environment stream) 和 助手流(assistant stream),它們共同被輸入到流式語音編碼器中進行處理。來自這兩個語音流的語音嵌入(speech embeddings),以及文本嵌入(textual embeddings),會以交錯的方式(interleaved manner)送入 LLM 主體網絡(backbone)中。當系統處于“說話狀態”時,**流式語音合成器(streaming speech synthesizer)**會將來自 LLM 主干網絡生成的文本嵌入作為輸入,進而生成語音響應。

3.1 Mamba流式語音編碼器

研究表明,可以通過來自多個非流式預訓練編碼器的知識蒸餾,有效地訓練出一個通用型流式編碼器。按照這一思路,SALMONN?omni 采用了一個流式語音編碼器,其設計目標是為了增強模型在長對話上下文中的泛化能力,其中使用 Whisper-large-v3 作為教師模型(teacher model)。具體而言:首先從音頻中提取 log-Mel 濾波器組特征,幀率為 100Hz;然后通過兩個卷積層將其下采樣到 50Hz;接著將兩個相鄰的嵌入向量拼接成一個單獨的嵌入;然后將其輸入到若干個 Mamba 語言模型塊中進行建模。最后,使用 L1 損失函數(L1 loss),將流式編碼器的輸出特征與教師模型的輸出特征進行對齊,以實現知識蒸餾。

3.2 流式語音合成器

我們的流式語音合成器是在 CosyVoice2 的基礎上構建的,并采用了其固定長度交錯語音生成策略(fixed-length interleaved speech generation strategy)。在這種方法中,輸入文本與輸出語音 token 被交錯排列:也就是說,每生成 N 個文本 token,模型就順序生成 M 個語音 token。為了實現與 LLM 的端到端集成,我們將合成器原本的文本輸入,替換為 LLM 主干網絡輸出的嵌入表示(output embeddings)。隨后,通過一系列線性變換(linear transformations),將這些 LLM 嵌入對齊到流式語音合成器所需的輸入空間。

3.3 全雙工策略

將多個語音流交錯為一個統一序列。LLMs(大語言模型)通常以自回歸的方式對單一序列進行建模。為了使預訓練的 LLM 主體能夠有效處理自然對話中的多個并發語音流,我們提出了一種方法:將這些語音流交錯為一個統一的“軟 token 序列(soft token sequence)”。具體而言,我們將對話劃分為兩個主要的語音流:助手流(assistant stream):代表模型生成的響應;環境流(environment stream):包含所有輸入音頻,例如用戶語音、背景噪音,以及助手自身語音的回聲等。一個全雙工模型必須能夠以自回歸方式生成助手流,同時持續關注(attend to)環境流。為實現這一點,我們將對話分割成固定時長的時間塊(time blocks)。在每個時間塊內,SALMONN?omni 首先處理來自環境流的語音嵌入,然后再生成相應的助手響應。為了穩定訓練過程并提升模型性能,我們還引入了一種雙通道輸入機制(dual-channel input mechanism):在每個時間塊內,模型除了接收當前的環境語音嵌入之外,還會接收自身先前生成的助手語音輸出的語音嵌入(包括回聲信息),再生成下一個文本響應。

圖2:“隱式”與“顯式”思考策略的示意圖。LLM 頂部的 token 是由語音嵌入(speech embeddings)預測得到的,
而底部的 token 是由文本嵌入(textual embeddings)預測的,
這些底部 token 會被反饋(feed back)到 LLM 的輸入序列中,作為后續推理的參考。

用于處理自然對話動態的 “思考” 策略。輪次式(turn-based)與全雙工語音對話模型之間的關鍵區別,在于后者具備動態判斷何時開始說話、何時停止說話的能力。為實現這一目標,我們提出了一種新穎的 “思考(thinking)” 策略,使 SALMONN?omni 能夠學習“傾聽狀態”與“說話狀態”之間的切換。在每一個時間塊(time block)中,模型都必須自行決定是否進行狀態切換。我們探索了該策略的兩種變體,依據是:輸入序列中是否包含顯式的狀態切換 token:

隱式 “thinking”(Implicit Thinking) 在輸入序列中不包含 <listen> 和 <speak> 等狀態 token。在每個時間塊中,模型需根據語音嵌入(speech embeddings)預測出一個特殊 token(表明當前狀態)。只有在模型生成文本響應的時間塊中,才會包含文本嵌入(textual embeddings)。

顯式 “thinking”(Explicit Thinking) 在 LLM 的輸入序列中顯式加入兩個特殊 token:<think> 和 <shift>。<think> token 用于兩個場景:當模型處于“傾聽狀態”時,應在每個時間塊生成 <think>,模擬人類在對話中“思考何時插話”的過程;由于文本模態與語音模態幀率差異較大,在生成完文本響應之后、等待從“說話”過渡到“傾聽”的這段時間里,模型也會持續生成 <think>。<shift> token 用來標記狀態切換的發生,包括:“傾聽 → 說話” 和 “說話 → 傾聽”

我們在第 5.1 節對這兩種策略進行了對比,結果表明:顯式 “thinking” 策略能帶來更優的性能,說明將“普通響應 token”與“狀態切換相關 token”整合為一個完整序列進行訓練,更自然地契合了 LLM 的內部建模機制。換句話說:你的 LLM 本質上就是一個“隱藏的全雙工預測器”。

3.4 訓練計劃

我們為 SALMONN?omni 提出了一種三階段的訓練流程,如圖 3 所示:

圖3:SALMONN-omni的三階段訓練策略

第一階段:連接流式編碼器(Streaming Encoder)。在第一階段,我們的重點是賦予模型流式語音理解能力,即將 Mamba 流式編碼器 與 LLM 連接起來。流式編碼器與 LLM 之間的連接器是一個多層感知機(MLP)。在該階段,只訓練連接器和 LLM 上的 LoRA 模塊,用于語音識別(ASR)和問答(QA)任務;而編碼器和 LLM 主干部分則保持凍結(不更新參數)。

第二階段:連接流式語音合成器(Streaming Synthesizer)。在第二階段,SALMONN?omni 被賦予語音生成能力,并且整個模型以端到端方式進行訓練。此階段中,編碼器和 LLM 主干仍保持凍結。將訓練以下組件:編碼器和合成器的連接器(Connector);LLM 上的 LoRA 模塊;流式語音合成器本身。訓練任務包括語音識別(ASR)、問答(QA)、多輪對話(multi-turn dialogue),其中也包括對**上下文相關的插話(context-dependent barge-in)和反饋語(backchanneling)**的訓練樣本。

第三階段:用于全雙工建模的強化學習(RL)。在前兩個階段的訓練完成后,SALMONN?omni 已具備處理自由形式對話中復雜動態行為的能力,尤其是在處理具有上下文感知的插話和反饋語方面表現出色。然而,在上述有監督微調(SFT) 之后,模型仍然表現出明顯傾向于被打斷的偏差,且在對話語義理解方面仍顯不足。因此,我們在第三階段引入強化學習(Reinforcement Learning),以進一步提升其全雙工建模能力。具體做法是:在插話(barge-in)和反饋語(backchanneling)任務上應用 DPO(Direct Preference Optimization)方法;同時保留一部分來自其他任務的 SFT 數據,以維持模型的整體性能表現。

4. 實驗步驟

4.1 模型規格

SALMONN?omni 中的 Mamba 流式編碼器由 32 個 Mamba 語言模型塊組成,隱藏狀態維度為 2048。該編碼器以 25Hz 的幀率生成語音嵌入,因此需要將 Whisper-large-v3 的嵌入從 50Hz 下采樣至 25Hz。具體方法是:將每兩個相鄰的嵌入拼接為一個新的嵌入向量。為了在應用 L1 損失前保證兩個模型嵌入的維度一致,我們引入了一個線性層(linear layer) 對嵌入維度進行對齊。我們使用 Llama-3-8B-Instruct 作為 LLM 主干網絡,并在微調時應用 LoRA,其中秩(rank)為 32,縮放因子(scaling factor)為 1.0。

我們的流式語音合成器是在 CosyVoice2?0.5B 的基礎上進行微調的。我們將時間塊大小(time block size)設定為 80 毫秒(ms),模型每“聽”完 80ms 的音頻后會生成 1 個文本 token。一旦 LLM 主干網絡生成了 4 個文本 token,流式語音合成器就會生成 12 個語音 token,即對應 480ms 的語音輸出。因此,從模型開始“說話”到實際音頻播放之間會產生 320 毫秒的延遲。當前的設計在響應延遲與語音生成質量之間實現了良好的平衡。

4.2 訓練任務

SALMONN?omni 在自動語音識別(ASR),口語問答(spoken QA)和多輪對話(multi-round conversation)三類任務上進行訓練。在自動語音識別(ASR)任務訓練中我們使用了 LibriSpeech-960h 和 GigaSpeech-M 語音語料庫,合計約 48 萬條訓練樣本。在口語問答(Spoken QA)任務訓練中,我們從多個來源收集問答數據,包括:Alpaca-52k 、Web Questions、TriviaQA、SQuAD、Natural Questions、VoiceAssistant-400K(來自 Mini-Omni)、UltraChat(來自 SLAM-Omni),總計大約包含 73 萬條問答樣本。在多輪對話任務(Multi-round Conversation)訓練中我們通過以下流程生成多輪對話數據:先由 Llama-3-8B-Instruct 基于 TriviaQA 和 Natural Questions 中選定的話題生成對話內容;再用 CosyVoice2-0.5B 將這些對話文本轉為語音。最終得到約 8 萬條多輪對話樣本

此外,我們還在多輪對話場景中考慮了包含插話(barge-ins)和反饋語(backchanneling) 的情況。

插話方面,數據集包含兩種類型: 一是上下文無關的插話(Context-independent barge-ins)我們使用 GPT?4o 生成了 10 條直接打斷說話的句子,例如:“請你現在立刻閉嘴。”(“Please stop talking right now.”);而是上下文相關的插話(Context-dependent barge-ins)我們設計了一個任務,用來評估模型是否能夠基于上下文線索判斷是否應該停止說話。具體方法是使用 Llama?3?8B?Instruct 生成一些問題,這些問題要么與當前對話內容高度相關(作為有意義的插話),要么完全無關(作為干擾項,用于干擾測試)。

反饋語(Backchanneling):我們在訓練數據中加入了 7 條常見的反饋詞/短語,例如:“嗯哼”(“Uh-huh.”)等。

值得注意的是,我們的實驗還特別考慮了多說話人插話(multi-speaker barge-in) 的場景。有關訓練數據的更多細節,請參見附錄 A。

4.3 測評

我們在四個常用的數據集上評估 SALMONN-omni 的語音交互能力,包括 Llama Questions、Web Questions、TriviaQA 和來自 Voicebench 的 AlpacaEval 。其中,Web Questions 中的問題通過火山引擎提供的商用 TTS 模型轉換為語音;TriviaQA 則使用來自 OpenAudioBench 中的一個包含 1000 條樣本的子集。

對于知識問答類數據集(Llama Questions、Web Questions 和 TriviaQA),我們采用準確率(accuracy)作為評估指標。而對于口語對話數據集 AlpacaEval,我們使用 GPTScore 評估答案的恰當性和合理性,該分數由 GPT-4.1-2025-04-14 模型打分,范圍為 1 到 5 分,其中 1 表示最差,5 表示最佳。評估既涵蓋文本答案(S2T),也涵蓋語音答案(S2S)。在 S2S 評估中,回答語音首先通過 Whisper-large-v3 轉寫為文本。

為評估模型的全雙工建模能力,我們考察兩個關鍵指標:一是話輪切換時機預測的成功率,用于衡量模型判斷“何時開始說話”的能力;二是模型判斷自己是否應當被打斷的能力,使用 F1 分數進行評估。在上下文無關的場景下,我們收集了 100 條直接打斷句子作為正樣本,其中 50 條由用戶說出,另外 50 條由第三說話人說出;同時選取 100 條由用戶說出的反饋語作為干擾項。在上下文相關場景下,我們收集了 100 條與當前語境緊密相關、意圖打斷模型的問題(同樣為用戶與第三方說話人各 50 條),并以 50 條由第三方說出但與上下文無關的問題和 50 條靜音片段作為負樣本。值得注意的是,這些用于評估的句子與訓練過程所使用的句子是不同的。

在基線比較中,我們選取了一批性能優良的開源半雙工或全雙工語音大模型作為對照,包括 Moshi、Freeze-Omni、GLM-4-Voice、Qwen2.5-Omni、VITA 1.5、miniCPM-o、Kimi-Audio 和 Baichuan-Audio。所有模型都在一種被稱為“理想話輪切換(oracle turn-taking)”的設定下進行測試,在該設定中,模型被強制在提問結束后立即開始作答(Moshi 除外,因為它不易被強制控制說話時機)。此外,我們還進行了更接近真實使用場景的“預測話輪切換(predicted turn-taking)”測試,在該設定中,模型需要自主判斷何時開始說話,這只有全雙工模型才能實現。在這一設定下,我們選擇 Moshi 和 Freeze-Omni 作為對照基線模型。

5. 實驗結果

5.1 隱式思考和顯式思考的比較

我們首先對比了在第 1 階段中分別采用隱式(implicit)和顯式(explicit)“thinking”策略訓練的模型。如表 2 所示,顯式“thinking”在各項任務中始終優于隱式“thinking”。我們認為,原因在于:將普通回答與狀態切換相關的特殊 token 一起作為輸出序列進行訓練,更符合 LLM 的自回歸建模機制。相比之下,隱式“thinking”策略缺乏從輸出端到輸入端的完整反饋路徑,限制了模型學習狀態切換邏輯的能力。

表2:隱式思考和顯式思考的比較

一個有趣的觀察是:在第 1 階段訓練后,模型在 AlpacaEval 數據集上的話輪切換成功率僅約為 70%。但在第 2 階段引入助手語音流(assistant stream) 后,成功率提升至約 90%,這突顯出在全雙工建模中引入助手流對實現更穩健的換話預測具有重要作用。

基于上述結果,本研究在后續所有實驗中均采用“顯式thinking”作為全雙工建模策略。事實上,從這兩種基本策略還可以衍生出多個變體,我們在附錄 C 中對此進行了進一步分析。

5.2 不同語音LLM之間語音交互能力的比較

語音交互能力評估的主要結果如表 3 所示。在“預測話輪切換”(predicted turn-taking)設置下,SALMONN?omni 在所有數據集上均取得了當前最先進(SOTA)的性能,相較于此前的開源全雙工語音交互大模型,平均相對提升達 35.9%。

表3:不同語音交互大語言模型的性能對比如下:對于 Llama Questions、Web Questions 和 TriviaQA,評估指標為 準確率(Acc.%);
對于 AlpacaEval,評估指標為 GPTScore。其中,S2T 表示語音轉文本(speech-to-text)性能,S2S 表示語音轉語音(speech-to-speech)性能。

這一顯著的提升凸顯了 SALMONN?omni 在應對多種對話場景方面的強大能力,無論是一般性的知識問答,還是日常閑聊。在“理想話輪切換”(oracle turn-taking)設置下,我們進一步將 SALMONN?omni 與近期發布的輪次式語音交互大模型進行了比較。如表 3 所示,SALMONN?omni 在所有模型中總體表現最佳,在 4 個數據集上取得了最優的語音轉文本(S2T)結果,并在 Web Questions 和 TriviaQA 數據集上取得了最優的語音轉語音(S2S)表現。這些結果表明,SALMONN?omni 不僅在語音理解方面表現卓越,還能保持極其穩定且連貫的語音生成能力。

5.3 全雙工建模能力評估

5.3.1 話輪切換預測(Turn-taking prediction)

不同全雙工語音交互大語言模型在話輪切換任務中的表現如表 4 所示。結果顯示,SALMONN?omni 在多個數據集上始終實現了最高的話輪預測成功率,平均表現優于其他模型。值得注意的是,即使在處理語速較快、語句較短的輸入場景(如 TriviaQA 和 AlpacaEval)時,SALMONN?omni 仍保持了出色的表現,而在這些場景下,Moshi 和 Freeze?Omni 等模型的性能則出現了明顯下降。

表4:全雙工語音交互大語言模型的話輪切換成功率(%)

5.3.2 區分真實插話(true barge-ins)、偽插話(false barge-ins)以及反饋語(backchanneling)

不同模型在上下文無關場景下的對比如表 5 所示。結果顯示,SALMONN?omni 在處理上下文無關的插話(barge-in)和反饋語(backchanneling)方面表現出更強的穩健性。此外,當模型需要同時監聽自身語音回聲時,SALMONN?omni 和 Moshi 都能保持良好表現,而 Freeze?Omni 的性能則出現了明顯下降,這突顯了非獨立實現的全雙工模型所存在的局限。由于 Freeze?Omni 依賴于額外的 語音活動檢測(VAD)模塊,當該模塊無法提供準確的語音分割時,其整體性能會受到嚴重影響。

表5:不同模型在上下文無關的插話(barge-in)和反饋語(backchanneling)任務中的對比。其中,“Echo factor” 表示模型能夠聽到自身語音的 ×n 倍回聲。

DPO 進一步增強了模型的全雙工建模能力。我們在上下文無關與上下文相關兩種設置下對 SALMONN?omni 進行了訓練,結果表明模型在這兩類場景中都能有效應對,說明我們提出的框架能夠處理自由對話中復雜的上下文感知動態行為。然而,在經過前兩個階段的有監督微調(SFT)后,模型的精確率偏低,顯示出 SALMONN?omni 有被打斷的傾向,這反映出模型對上下文理解能力仍有所不足。因此,我們引入 DPO(直接偏好優化) 方法對模型進行后訓練(post-training)。從整體性能提升結果來看,這一方法確實有效,如圖 4 和表 6 所示。在 DPO 訓練過程中,我們觀察到一個有趣的現象:模型初期變得極為保守,幾乎不會被打斷。但隨著訓練的深入,模型的能力逐漸恢復,最終超越了僅通過 SFT 訓練得到的模型。

圖4:在 DPO 階段使用不同批大小(batch size)訓練時,SALMONN?omni 的整體 F1 分數表現對比如下。

表6:在 DPO 訓練階段,將批大小設置為 256 時,SALMONN?omni 在上下文相關與上下文無關設置下的性能表現。

6. 總結

在本研究中,我們提出了 SALMONN?omni,這是首個無需將音頻編解碼器 token 注入詞表、即可獨立運行的全雙工語音大語言模型。SALMONN?omni 通過無縫集成流式語音編碼器、統一的 LLM 主干網絡以及流式語音合成器,并引入一種新穎的顯式“思考”(thinking)策略來預測對話狀態的切換,從而使模型能夠自主學習何時該傾聽、何時該說話。在標準的口語問答和開放領域對話基準測試中,大量實驗證明:在“預測話輪切換”場景下,SALMONN?omni 相較于現有開源全雙工模型,平均準確率相對提升達 35.9%,同時在與使用大規模訓練數據的半雙工模型對比中仍具有極強的競爭力。此外,SALMONN?omni 能夠穩健建模全雙工對話中的多種動態行為,包括話輪切換、反饋語、回聲消除以及上下文相關的插話。引入強化學習(RL)后,模型在處理實時對話行為時的流暢性與響應性進一步提升。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84666.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84666.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區塊鏈:什么是DeFi?

DeFi&#xff08;去中心化金融&#xff0c;Decentralized Finance&#xff09; 是一種基于區塊鏈技術的金融生態系統&#xff0c;旨在通過去中心化的方式提供傳統金融服務&#xff08;如借貸、交易、儲蓄等&#xff09;&#xff0c;無需依賴銀行、經紀商等中介機構。DeFi主要構…

idea編譯器使用git拉取、提交非常慢的原因和解決方案

前言 最近在公司換了一個電腦,但是發現這個電腦用idea編譯器使用git拉取、提交各種操作非常慢,有時候需要等10分鐘左右,這明顯是不對勁的,說明電腦的某些環境影響到git和idea之間的整合了。 目錄 在idea拉取代碼非常慢的原因 解決方案 在idea拉取代碼非常慢的原因 經過排查…

C語言變量的奇妙世界:探秘作用域

資料合集下載鏈接: ??https://pan.quark.cn/s/472bbdfcd014?? 在C語言的編程世界里,變量是我們存儲和操作數據的基礎。然而,僅僅知道如何定義和使用變量是遠遠不夠的。一個更深層次的理解,在于掌握變量的“作用域”——也就是變量在程序中可以被訪問和使用的范圍。這就…

恒流源和直流穩壓電源 電路

目錄 前言一、恒流源電路1.低端反饋2.低端反饋注意事項注意1&#xff1a;電阻Rx注意2&#xff1a;三極管和運放的限制 3.高端反饋注意&#xff1a;自激振蕩方案二 二、直流穩壓電源電流1.帶反饋2.不帶反饋3.區別 前言 基礎知識可以看個人筆記&#xff1a;個人筆記 一、恒流源…

那些年,曾經輝煌過的數據庫

滾滾長江東逝水&#xff0c;浪花淘盡英雄&#xff01; 數據庫的演進史&#xff0c;正是這樣一部“英雄迭代”的壯闊史詩。從早期數據模型的拓荒者&#xff0c;到關系型數據庫的商業巨頭&#xff1b;從桌面應用的普及者&#xff0c;再到開源與大數據時代的弄潮兒&#xff1b;每…

2D曲線點云平滑去噪

2D曲線點云&#xff0c;含許多噪聲&#xff0c;采用類似移動最小二乘的方法&#xff08;MLS)分段擬合拋物線并投影至拋物線&#xff0c;進行點云平滑去噪。 更通俗的說法是讓有一定寬度的曲線點云&#xff0c;變成一條細曲線上的點。 分兩種情況進行討論&#xff1a; 1&#…

【平面波導外腔激光器專題系列】用于精密測量的平面波導外腔激光器特性

----翻譯自Kenji Numata等人的文章 摘要 1542 nm平面波導外腔激光器PW-ECL具有足夠低的噪聲非常適合精密測量應用。與 0.1mHz至100kHz 之間&#xff0c;其頻率和強度噪聲與非平面環形振蕩器 NPRO和光纖激光器相當或更好。通過將 PW-ECL 的頻率穩定在乙炔&#xff08;13C2H2&a…

文件時間修改器

文件時間修改器是一款幫助用戶修改文件創建時間的軟件&#xff0c;支持毫秒級時間的修改&#xff0c;包括文件的創建時間、修改時間、訪問時間等時間都支持修改&#xff0c;可以批量處理文件。 飛貓云下載 | 備用下載1 |備用下載2 基本簡介 本軟件主要為批量修改文件的創建時…

倉頡語言實戰:MQTT物聯網開發

目錄 引言 mqtt4cj庫的使用 申請倉頡編程語言內測 下載STDX 測試程序 結束語 引言 最近一直在學習倉頡語言&#xff0c;由于我對物聯網比較感興趣&#xff0c;自然想到寫一個MQTT的程序&#xff0c;好在找到了mqtt4cj庫&#xff0c;今天分享一下學習心得。 mqtt4cj庫的…

OpenCV CUDA模塊設備層-----用于在 CUDA 核函數中訪問紋理數據的一個封裝類TexturePtr()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 TexturePtr<T, R> 是 OpenCV 的 opencv_cudev 模塊中用于在 CUDA 核函數中訪問紋理數據的一個封裝類。它主要用于將一個已創建好的 cudaTe…

Spring Boot的自動裝配和自動配置

Spring Boot的自動裝配&#xff08;Auto Wiring&#xff09;和自動配置&#xff08;Auto Configuration&#xff09;是兩個不同的概念&#xff0c;它們在Spring框架中各自有不同的作用和用途。下面我將詳細解釋它們的區別和聯系。 自動裝配&#xff08;Auto Wiring&#xff09…

如何用 vue-office 快速搭建文檔在線預覽服務

1. 什么是 vue-office 1.1 vue-office 簡介 vue-office 是一個基于 Vue 的組件庫,用于在 Web 應用中快速集成 Office 文檔的在線預覽功能。它支持 Word、Excel 和 PowerPoint 等多種格式,并提供了簡潔的 API 接口和豐富的自定義選項。 1.2 支持的文檔類型與核心特性 支持的…

Python爬蟲(六):Scrapy框架

"Scrapy到底該怎么學&#xff1f;"今天&#xff0c;我將用這篇萬字長文&#xff0c;帶你從零開始掌握Scrapy框架的核心用法&#xff0c;并分享我在實際項目中的實戰經驗&#xff01;建議收藏?&#xff01; 一、Scrapy簡介&#xff1a;為什么選擇它&#xff1f; 1.…

Linux中關閉swap分區

在 Linux 系統中關閉 swap 分區&#xff08;或交換文件&#xff09;的步驟如下&#xff0c;請務必在操作前保存所有數據&#xff0c;以免丟失&#xff1a; &#x1f4cc; 完整操作步驟&#xff1a; 1. 查看當前 swap 使用情況 free -h swapon --show # 查看活躍的 swap 設…

RPGMZ游戲引擎之如何設計每小時開啟一次的副本

本文知識點 1. 獲取時間 2. 時間格式要正確 3. 事件內如何設計 正文開始 1. 獲取時間 首先獲取當前時間 然后保存在 事件內的變量里面 后需要判斷時間是否相等 function 獲取當前日期(){const now new Date();return now.toISOString();}; 2. 時間格式要正確 now.toI…

學習路之uniapp--uniapp擴展uni-ui

這里寫目錄標題 一、新建項目二、下載導入插件三、直接創建uni-ui項目 一、新建項目 二、下載導入插件 三、直接創建uni-ui項目 創建uniapp項目時&#xff0c;直接創建uni-ui項目

Kotlin 2.6 猜數小游戲

本次實戰通過開發猜數小游戲&#xff0c;深入學習了 Kotlin 編程的循環控制和條件判斷。游戲要求計算機隨機生成一個數字&#xff0c;用戶通過輸入猜測&#xff0c;程序根據猜測結果給出提示&#xff0c;直到猜中為止。通過實現這一過程&#xff0c;我們掌握了如何使用 while 循…

RNN工作原理和架構

## 1. 什么是 RNN&#xff1f; * **全稱&#xff1a;** Recurrent Neural Network&#xff08;循環神經網絡&#xff09; * **核心特點&#xff1a;** 它是一種專門設計用來處理**序列數據**的神經網絡。 * **核心能力&#xff1a;** 擁有“記憶”能力&#xff0c;能夠利用**…

智能計算模擬:第一性原理+分子動力學+機器學習

第一性原理分子動力學機器學習”三位一體的綜合手段&#xff0c;已經成為模擬計算的一個前沿方向&#xff0c;為解決傳統計算化學方法面臨的挑戰提供了新的解決方案。國內外已有科研團隊在深化第一性原理與分子動力學的研究與應用拓展&#xff0c;利用機器學習優化大規模計算、…

基于Attention機制的模型。這使得它擺脫了RNN模型順序讀取序列的缺點,可以實現高度的并行化的理解

這句話的核心意思是:??該模型完全基于注意力機制(Attention Mechanism),不再依賴傳統的循環神經網絡(RNN)結構,因此避免了 RNN 的順序計算問題,能夠實現高效的并行化計算??。我們可以從以下幾個方面深入理解: 1. ??"僅基于 Attention 機制"?? ??傳…