GPT4o 是一个包罗万象的模型,是多模态大型模型发展的一个里程碑。 它可以理解视觉、听觉和文本模式,直接输出音频,并支持灵活的双工交互。 不过,它的技术框架并未开源。 开源社区的模型通常能实现 GPT4o 的某些功能,如视觉理解和语音对话。 然而,由于多模态数据、复杂的模型架构和训练过程的复杂性,训练一个包含所有模态的统一模型极具挑战性。 在本文中,我们介绍了 Mini-Omni2,它是一种视觉-听觉助手,能够为用户的视频和语音查询提供实时、端到端的语音响应,同时还集成了听觉功能。 通过整合预训练的视觉和听觉编码器,Mini-Omni2 在各种模式下都能保持强大的性能。 我们提出了一个三阶段训练过程来调整模态,使语言模型能够在有限的数据集上训练后处理多模态输入和输出。 在交互方面,我们引入了基于语义的中断机制,使与用户的对话更加灵活。 所有建模方法和数据构建方法都将开源。 据我们所知,Mini-Omni2 是功能上最接近 GPT4o 的模型之一,我们希望它能为后续研究提供有价值的见解。
简介
Mini-Omni2 是一款全方位互动机型。 它能理解图像、音频和文本输入,并能与用户进行端到端的语音对话。 它具有实时语音输出、全方位多模态理解能力和灵活的交互能力,并具有说话时打断机制。
功能特点
✅ 多模态交互:与 GPT-4o 一样,能够理解图像、语音和文本。
✅ 实时语音到语音对话功能。 与 Mini-Omni 一样,无需额外的 ASR 或 TTS 模型。
安装
conda create -n omni python=3.10
conda activate omni
git clone https://github.com/gpt-omni/mini-omni2.git
cd mini-omni2
pip install -r requirements.txt
互动演示
- 启动服务器
注意:运行 API_URL 设置为服务器地址的 streamlit 或 gradio 演示之前,需要先启动服务器。
sudo apt-get install ffmpeg
conda activate omni
cd mini-omni2
python3 server.py --ip '0.0.0.0' --port 60808
- 运行streamlit demo
注意:您需要在本地运行已安装 PyAudio 的 streamlit。
pip install PyAudio==0.2.14
API_URL=http://0.0.0.0:60808/chat streamlit run webui/omni_streamlit.py
本地测试
conda activate omni
cd mini-omni2
# test run the preset audio samples and questions
python inference_vision.py
Mini-Omni2 概览
-
多模态建模: 我们使用多个序列作为模型的输入和输出。 在输入部分,我们将串联图像、音频和文本特征来执行一系列综合任务,如下图所示。 在输出部分,我们使用文本引导的延迟并行输出来生成实时语音应答。
-
多阶段训练: 我们提出了一种高效的对齐训练方法,并在三阶段训练中分别进行编码器适应、模态对齐和多模态微调。
该模型支持其他语言吗?
不支持,该模型只针对英语进行训练。 不过,由于我们使用耳语作为音频编码器,该模型可以理解耳语支持的其他语言(如中文),但输出只能是英文。
Acknowledgements
- Qwen2 as the LLM backbone.
- litGPT for training and inference.
- whisper for audio encoding.
- clip for image encoding.
- snac for audio decoding.
- CosyVoice for generating synthetic speech.
- OpenOrca and MOSS for alignment.