多模态实时交互边界的高效语音语言模型 VITA-Audio 介绍

在这里插入图片描述

介绍

VITA-Audio是由Zuwei Long等研究者提出的端到端大型语音语言模型,其核心目标是通过跨模态令牌生成技术,解决传统语音交互系统中首音频令牌生成延迟高的问题。该模型的创新点主要体现在:

  1. 低延迟:VITA-Audio 是首个能够在初次前向传播过程中生成音频的端到端语音模型。通过使用 32 个预填充标记,VITA-Audio 将生成首个音频标记块所需的时间从 236 毫秒缩短至 53 毫秒。
  2. 快速推理:在 70 亿参数规模下,VITA-Audio 实现了 3 到 5 倍的推理加速。
  3. 开源:VITA-Audio 仅在开源数据上进行训练,包括 20 万小时的公开可用音频。
  4. 性能强劲:在 70 亿参数规模下,VITA-Audio 在语音识别(ASR)、文本 - 语音合成(TTS)和语音问答(SQA)基准测试中的表现与前沿模型相当。

GitHubhttps://github.com/VITA-MLLM/VITA-Audio

在这里插入图片描述

关键技术解析

  1. 多跨模态令牌预测(MCTP)架构
  • 并行生成机制:单次前向传播可生成多个音频令牌,突破传统自回归模型的序列依赖瓶颈
  • 跨模态对齐:通过两层MLP连接器对齐语音编码器(CNN+Transformer)与视觉编码器(InternViT)特征
  • 动态资源分配:根据输入类型自动调整计算资源,如视频处理采用动态帧采样策略(4-16秒视频按1秒/帧采样)
  1. 四阶段渐进式训练策略
阶段训练目标关键数据冻结参数
1视觉对齐图像描述数据集LLM主体
2语言强化视觉问答数据集-
3语音对齐ASR/TTS数据视觉编码器
4多模态交互噪声语音数据连接器

该策略通过渐进式解冻参数,在保证模态兼容性的同时最小化性能损失。

  1. 实时交互优化技术
  • 语音打断机制:部署双模型架构(生成模型+监测模型),基于Silero VAD实现200ms级语音活动检测
  • 噪声抑制方案:构建474K噪声语音数据集,通过特殊终止符(2)实现无效输入的快速截断
  • 动态编码优化:音频采用25token/2s的梅尔频谱编码,图像采用448px分辨率下的动态分块策略

性能表现与基准测试

在开源数据集上的表现:

任务类型指标VITA-1.5Baseline
英文ASRWER7.5%18.4%
中文TTSMOS评分4.23.8
视频问答Accuracy83.7%76.2%
端到端延迟首token生成时间1.2s4.5s

实验显示,其7B版本在MMBench、Video-MME等基准上超越同规模开源模型20%以上。

应用场景与部署实践

典型应用场景

  • 实时语音助手:医疗问诊场景中实现<2秒的连续对话
  • 无障碍交互系统:支持视障用户的图像语音描述(测试集准确率91.3%)
  • 智能客服系统:多轮对话中准确率提升至89%,误唤醒率<5%

快速部署

  1. 环境要求:
docker pull shenyunhang/pytorch:24.11-py3_2024-1224
  1. 获取源码:
git clone https://github.com/VITA-MLLM/VITA-Audio.git
cd VITA-Audio
git submodule update --init --recursive
pip install -r requirements_ds_gpu.txt
pip install -e .
  1. 准备预训练权重:

  2. 数据格式:

{
  "messages": [
    {
      "content": "<|audio|>",
      "role": "user"
    },
    {
      "content": "好的,这样排列更合理:这些生物废弃物如鸡蛋壳、蛤壳、贻贝壳比其他工业废渣更有价值。研究表明,它们在能源、材料、环境保护等领域有广泛应用。高效利用贝壳能提高资源利用效率,减少废弃物,减轻环境负担。特别是在这些领域中,鸡蛋壳因为含有丰富的钙元素,被用于制造医药品和肥料。\n<|audio|>",
      "role": "assistant"
    }
  ],
  "audios": [
    "datasets/VITA-MLLM/AudioQA-1M/QA_1450K_question_tar/question_shuf_part_8/wav/000000200014510ac1fd776006fc66b36f7f3cda76_question.wav",
    "datasets/VITA-MLLM/AudioQA-1M/QA_1450K_answer_part1_tar/answer_part1_shuf_part_3/wav/000000200114510ac1fd776006fc66b36f7f3cda76_F10.wav"
  ]
}
  1. ASR 数据格式:
{
  "messages": [
    {
      "content": "Convert the speech to text.\n<|audio|>",
      "role": "user"
    },
    {
      "content": "没有跟大家说是在做什么",
      "role": "assistant"
    }
  ],
  "audios": [
    "datasets/wenet-e2e/wenetspeech/data/cuts_L_fixed.00000000/X00/X0000016296_135343932_S00019.wav"
  ]
}
  1. TTS 数据格式:
{
  "messages": [
    {
      "content": "Convert the text to speech.\n那我情愿无药可救。",
      "role": "user"
    },
    {
      "content": "<|audio|>",
      "role": "assistant"
    }
  ],
  "audios": [
    "datasets/Wenetspeech4TTS/WenetSpeech4TTS/Premium/WenetSpeech4TTS_Premium_9/wavs/X0000001735_50639692_S00035.wav"
  ]
}

训练

以VITA-Audio-Boost为例:

  1. 训练ITA-Audio-Balance 及其他变体时,应调整文本 - 音频间隔比率。
# VITA-Audio-Boost:
--text-audio-interval-ratio 1 10 4 10 \
# VITA-Audio-Balance:
--text-audio-interval-ratio 1 4 3 8 4 10 \
  1. 训练 VITA-Audio-Plus-* 时,可以使用如下脚本。
scripts/deepspeed/sts_qwen25/finetune_sensevoice_glm4voice...
  1. 阶段一(音频 - 文本对齐)
bash scripts/deepspeed/sts_qwen25/finetune_glm4voice_stage1.sh 8192 `date +'%Y%m%d_%H%M%S'`

上述脚本可能需要进行一些调整。
- 将 ROOT_PATH 设置为你的代码根文件夹。
- 将 LOCAL_ROOT_PATH 设置为一个临时代码根文件夹。
- 根据需要修改其他环境变量。

  1. 阶段二(单个 MCTP 模块训练)
bash scripts/deepspeed/sts_qwen25/finetune_glm4voice_mtp1_stage1.sh 8192 `date +'%Y%m%d_%H%M%S'`

上述脚本可能需要进行一些调整。
- 将 ROOT_PATH 设置为你的代码根文件夹。
- 将 LOCAL_ROOT_PATH 设置为一个临时代码根文件夹。
- 将 MODEL_NAME_OR_PATH 设置为阶段一训练的模型路径。
- 根据需要修改其他环境变量。

  1. 阶段三(多个 MCTP 模块训练)
bash scripts/deepspeed/sts_qwen25/finetune_glm4voice_mtp10_stage1.sh 8192 `date +'%Y%m%d_%H%M%S'`

上述脚本可能需要进行一些调整。
- ROOT将_PATH 设置为你的代码根文件夹。
- 将 LOCAL_ROOT_PATH 设置为一个临时代码根文件夹。
- 将 MODEL_NAME_OR_PATH 设置为阶段二训练的模型路径。
- 根据需要修改其他环境变量。
6. 阶段四(监督式微调)

bash scripts/deepspeed/sts_qwen25/finetune_glm4voice_mtp10_stage2.sh 2048 `date +'%Y%m%d_%H%M%S'`

上述脚本可能需要进行一些调整。
- 将 ROOT_PATH 设置为你的代码根文件夹。
- 将 LOCAL_ROOT_PATH 设置为一个临时代码根文件夹。
- 将 MODEL_NAME_OR_PATH 设置为阶段三训练的模型路径。
- 根据需要修改其他环境变量。

推理

该脚本包括语音 - 语音、语音识别(ASR)和文本 - 语音(TTS)任务示例,以及流式和非流式推理速度测试。

python tools/inference_sts.py
  • model_name_or_path 设置为 VITA-Audio 模型权重路径
  • audio_tokenizer_path 设置为音频编码器路径
  • flow_path 设置为音频解码器路径

评估

评估语音 - 语音、语音识别(ASR)和文本 - 语音(TTS)基准测试

bash scripts/deepspeed/evaluate_sts.sh

声明

VITA-Audio 在大规模开源语料库上训练,其输出具有随机性。VITA-Audio 生成的任何内容不代表模型开发者的观点。我们不对因使用、滥用和传播 VITA-Audio 引发的任何问题负责,包括但不限于舆论风险和数据安全问题。

参考

  • 更多细节请参考该项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码流怪侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值