Stream-Omni:多模態交互的“黃金三角”——視覺、語音、文本的完美融合
Stream-Omni 是中國科學院計算技術研究所、中國科學院人工智能安全重點實驗室及中國科學院大學聯合推出的類似 GPT-4o 的大型語言-視覺-語音模型,能夠同時支持文本、圖像和語音等多種模態的交互。
一、項目概述?
Stream-Omni 是一個基于大型語言模型(LLM)的多模態交互模型,能夠同時處理文本、圖像和語音三種模態的輸入,并生成相應的文本和語音輸出。該模型通過序列維度拼接和層維度映射的方式,實現了視覺與文本的對齊,以及語音與文本的對齊,從而在視覺理解、語音交互和視覺引導的語音交互任務上表現出色。Stream-Omni 的訓練僅需少量全模態數據,訓練效率高,適合在資源有限的環境中部署。
二、技術原理
1. 基于 LLM 的骨干架構
Stream-Omni 的核心是基于大型語言模型(LLM)的骨干架構。LLM 作為模型的核心,提供了強大的語言理解和生成能力,為多模態交互提供了基礎支持。通過將 LLM 與視覺和語音模態進行對齊,Stream-Omni 實現了跨模態的交互能力。
2. 視覺文本對齊
為了實現視覺與文本的對齊,Stream-Omni 使用序列維度拼接的方式,將視覺編碼器提取的視覺特征與文本輸入進行拼接,再共同輸入到 LLM 中,實現視覺和文本模態的對齊。這種方式使得模型能夠更好地理解圖像內容,并生成與之相關的文本信息。
3. 語音文本對齊
對于語音與文本的對齊,Stream-Omni 引入了基于 CTC(Connectionist Temporal Classification)的層維度映射。在 LLM 的底部和頂部添加語音層,實現語音到文本的映射和文本到語音的生成,從而將語音模態與文本模態對齊。這種對齊方式使得模型能夠在語音交互過程中實時生成語音輸出,提供流暢的交互體驗。
4. 多任務學習
Stream-Omni 采用多任務學習策略,同時訓練視覺文本、語音文本及全模態(視覺+文本+語音)的任務,讓模型更好地理解和生成多模態內容。這種策略不僅提高了模型的泛化能力,還增強了其在不同任務上的適應性。
5. 實時語音生成
基于特殊的語音層設計和層維度映射,Stream-Omni 在生成文本的同時,實時生成對應的語音輸出,實現流暢的語音交互。這種能力使得用戶在語音交互過程中能夠同時看到文本和聽到語音,從而獲得更全面的交互體驗。
6. 數據驅動與監督學習結合
Stream-Omni 依賴少量多模態數據進行訓練,基于精心設計的對齊機制和多任務學習,能在有限的數據上實現高效的模態對齊和交互能力。這種設計使得模型在數據稀缺的情況下仍能保持良好的性能。
三、主要功能
1. 多模態輸入與輸出
Stream-Omni 支持文本、圖像和語音等多種模態的輸入,并能同時生成文本和語音輸出。這種能力使得模型能夠處理復雜的多模態交互任務,滿足不同場景下的需求。
2. 無縫“邊聽邊看”體驗
在語音交互過程中,Stream-Omni 能實時輸出中間文本結果(如自動語音識別 ASR 轉錄和模型響應),為用戶提供更豐富的交互體驗。這種無縫的交互體驗類似于 GPT-4o 的高級語音服務,提升了用戶的交互滿意度。
3. 高效訓練
Stream-Omni 僅需少量全模態數據(如 23000 小時語音數據)進行訓練,對數據需求量小,訓練效率高。這種高效訓練能力使得模型能夠在資源有限的環境中快速部署和使用。
4. 靈活的交互模式
Stream-Omni 支持多種模態組合的交互,包括文本+視覺→文本、文本+視覺→語音、語音+視覺→文本、語音+視覺→語音等,滿足不同場景下的交互需求。這種靈活性使得模型能夠適應各種應用場景,提高其適用性。
5. 視覺理解與語音交互
Stream-Omni 在視覺理解任務和語音交互任務上表現出色,能準確理解和生成與視覺內容相關的文本和語音信息。這種能力使得模型在智能車載系統、教育輔助工具、智能家居控制、醫療輔助診斷和智能客服服務等多個領域具有廣泛的應用前景。
四、評測結果
1. 視覺理解能力
在多個視覺理解基準測試中,Stream-Omni 表現出色。例如,在 VQA-v2、GQA、VizWiz、ScienceQA-IMG、TextVQA、POPE、MME、MMBench、SEED-Bench 和 LLaVA-Bench-in-the-Wild 等基準測試中,Stream-Omni 的性能接近或超越了最先進的視覺導向 LMMs,如 LLaVA、BLIP-2、InstructBLIP、Qwen-VL、SPHINX 和 mPLUG-Owl2 等。
2. 語音交互能力
在語音交互任務中,Stream-Omni 也表現出色。在 Llama Questions 和 Web Questions 等基準測試中,Stream-Omni 的準確率分別為 76.3% 和 65.0%,在語音到文本(S→T)和語音到語音(S→S)任務中均優于其他模型。此外,Stream-Omni 在語音識別任務中的 WER(Word Error Rate)也優于其他模型,如 Whisper、SpeechGPT、Moshi、Mini-Omni、Freeze-Omni 和 GLM-4-Voice 等。
3. 視覺引導的語音交互能力
在視覺引導的語音交互任務中,Stream-Omni 也表現出色。在 SpokenVisIT 基準測試中,Stream-Omni 的評分分別為 3.93 分(視覺+文本→文本)和 3.68 分(視覺+語音→文本),在語音生成任務中也表現出色。這種能力使得模型在真實世界中能夠更好地理解和生成語音信息。
4. 語音-文本映射質量
在語音-文本映射任務中,Stream-Omni 的表現也優于其他模型。在 LibriSpeech 基準測試中,Stream-Omni 的 WER 為 3.0%,在語音識別任務中的推理時間也優于其他模型。這種高質量的映射能力使得模型在語音交互任務中能夠提供更準確的語音輸出。
五、應用場景
1. 智能車載系統
在智能車載系統中,司機可以通過語音指令查詢路線、獲取路況,系統結合視覺信息(如導航地圖、路況攝像頭圖像)實時顯示文本提示和語音反饋,提升駕駛安全性和交互效率。
2. 教育輔助工具
在教育場景中,學生可以通過語音提問,系統依據教材視覺內容(如圖表、圖片)給出詳細文本解釋和語音回答,幫助學生更好地理解和學習知識。
3. 智能家居控制
作為智能家居助手,用戶可以通過語音指令控制家電設備,系統結合視覺輸入(如攝像頭捕捉的環境信息)提供文本或語音反饋,實現更智能、便捷的家居控制。
4. 醫療輔助診斷
在醫療場景中,醫生可以通過語音指令查詢關鍵信息,系統結合視覺報告(如X 光片、CT 圖像)提供詳細的文本分析和語音解釋,輔助醫生更準確地做出診斷。
5. 智能客服服務
在客服領域,客服人員可以通過語音與客戶交流,系統實時顯示相關文本信息和視覺提示(如產品圖片、操作流程圖),幫助客服人員快速理解客戶需求并提供準確解答,提升服務質量和效率。
六、快速使用
1. 模型下載
1)從這里下載 Stream-Omni 模型,放入 ${STREAMOMNI_CKPT} 。
https://huggingface.co/ICTNLP/stream-omni-8b
2)從這里下載 CosyVoice(分詞器 & 流模型),放入 COSYVOICE_CKPT=./CosyVoice-300M-25Hz :
https://modelscope.cn/models/iic/CosyVoice-300M-25Hz/files
2. 安裝依賴
conda create -n streamomni pythnotallow=3.10 -y
conda activate streamomni
pip install -e .
pip install flash-attn --no-build-isolation
pip install -r requirements.txt
pip install -r CosyVoice/requirements.txt
3. 命令交互
運行這些腳本以進行基于視覺的語音交互:
export CUDA_VISIBLE_DEVICES=0
export PYTHONPATH=CosyVoice/third_party/Matcha-TTS
STREAMOMNI_CKPT=path_to_stream-omni-8b
# Replace the path of cosyvoice model in run_stream_omni.py (e.g., cosyvoice = CosyVoiceModel('./CosyVoice-300M-25Hz'))
# add --load-8bit for VRAM lower than 32GB
python ./stream_omni/eval/run_stream_omni.py \
--model-path ${STREAMOMNI_CKPT} \
--image-file ./stream_omni/serve/examples/cat.jpg --conv-mode stream_omni_llama_3_1 --model-name stream-omni \
--query ./stream_omni/serve/examples/cat_color.wav
你應該得到以下輸出:
ASR Outputs:
What is the color of the cat
LLM Outputs:
The cat is gray and black.
Speech Tokens:
<Audio_2164><Audio_2247><Audio_671><Audio_246><Audio_2172><Audio_1406><Audio_119><Audio_203><Audio_2858><Audio_2099><Audio_1716><Audio_22><Audio_1736><Audio_1038><Audio_4082><Audio_1655><Audio_2409><Audio_2104><Audio_571><Audio_2255><Audio_73><Audio_760><Audio_822><Audio_701><Audio_2583><Audio_1038><Audio_2203><Audio_1185><Audio_2103><Audio_1718><Audio_2610><Audio_1883><Audio_16><Audio_792><Audio_8><Audio_8><Audio_535><Audio_67>
Speech Outputs:
Audio saved at ./output_893af1597afe2551d76c37a75c813b16.wav
七、結語
Stream-Omni 是一個強大的多模態交互模型,能夠同時處理文本、圖像和語音等多種模態的輸入,并生成相應的文本和語音輸出。其靈活的交互模式、高效的訓練策略和廣泛的應用場景,使其在智能車載系統、教育輔助工具、智能家居控制、醫療輔助診斷和智能客服服務等多個領域具有廣泛的應用前景。
項目資料
論文地址:https://arxiv.org/pdf/2506.13642
GitHub倉庫:?https://github.com/ictnlp/Stream-Omni
本文轉載自?????小兵的AI視界?????,作者:AGI小兵
