Liquid Audio:Liquid AI开源的低延迟语音到语音基础模型,支持实时多模态交互

原创 发布日期:
59

Liquid Audio是什么

Liquid Audio是由Liquid AI团队研发并开源的端到端语音到语音(Speech-to-Speech, S2S)基础模型项目,其核心是参数规模为1.5B的LFM2-Audio-1.5B模型。不同于传统语音交互模型需要拆分“语音识别-语义理解-语音合成”多个环节,Liquid Audio实现了端到端的模态转换与交互,能够直接接收语音输入并生成语音输出,极大简化了开发流程。

该项目的核心设计目标是低延迟与高实时性,依托轻量级的LFM2骨干网络,在保证语音生成质量的前提下,大幅缩短首次音频输出时间(Time-to-First-Token, TTF),尤其适合资源受限的终端设备(如智能手表、低端智能手机、嵌入式设备)。同时,Liquid Audio保持开源属性,提供完整的模型代码、数据处理工具链和演示案例,旨在降低语音AI技术的应用门槛,推动实时语音交互场景的创新落地。

作为一款兼顾性能与易用性的语音模型,Liquid Audio不仅支持纯语音对话,还能灵活处理“文本+语音”的多模态输入输出,满足多样化的交互需求,是当前开源语音模型领域中,少数专注于实时端到端交互的轻量化解决方案。

Liquid Audio功能特色

Liquid Audio的功能特色围绕“实时交互、灵活模态、易用性强”三大核心展开,具体可分为以下四个维度:

1. 双生成模式,适配不同场景需求

模型内置交错生成顺序生成两种核心模式,可根据任务类型灵活切换,覆盖从实时对话到单模态转换的全场景需求:

  • 交错生成(Interleaved Generation) 这是Liquid Audio的核心特色模式,专为实时语音对话设计。在该模式下,模型会以固定的时间间隔交错输出文本令牌和音频令牌,无需等待完整语义处理完毕即可生成部分音频内容。这种设计能够最小化首次音频输出时间和生成令牌数量,让用户在说话结束后极短时间内就能听到回应,实现“自然流畅”的对话体验。例如,在智能音箱的语音交互中,用户提问后无需等待几秒沉默,而是能快速得到模型的语音回复,大幅提升交互体验。 该模式的优势在于低延迟、高实时性,缺点是对设备的实时计算能力有一定要求,适合会话类任务。

  • 顺序生成(Sequential Generation) 该模式下,模型会通过特殊模态切换令牌判断何时进行模态转换,先完成一种模态的处理,再切换到另一种模态。例如,在语音转文本(ASR)任务中,模型会先完整接收并处理所有语音输入,再一次性输出对应的文本;在文本转语音(TTS)任务中,则先解析文本语义,再生成完整的音频。 该模式的优势在于转换精度高、稳定性强,适合非会话类的单模态转换任务,如会议记录、有声书生成等。

2. 完整的端到端工具链,开箱即用

Liquid Audio提供了一套完整的处理流程,从数据预处理到模型推理的全环节都有对应的工具类支持,无需开发者自行搭建基础模块:

  • LFM2AudioModel 核心模型类:负责令牌的编码、解码和生成,是模型的核心计算单元,支持批量处理和单条推理两种模式。

  • LFM2AudioProcessor 数据处理类:承担“数据-令牌”的双向转换工作,包括文本字符串与文本令牌的转换、音频波形与日志梅尔特征的转换,同时内置数据归一化、采样率转换等功能,确保输入数据符合模型要求。

  • ChatState 对话状态管理类:专门用于多轮对话场景,能够记录对话历史、管理角色身份(系统/用户/助手),并自动应用聊天模板,避免开发者手动拼接对话上下文,大幅简化多轮交互的开发难度。

3. 多模态交互支持,灵活处理混合输入

Liquid Audio不仅支持“语音输入-语音输出”的纯语音交互,还能处理文本与语音混合的多模态输入输出。例如,用户可以先发送一段文本指令,再补充一段语音提问,模型能够结合两者的语义生成对应的语音回复;反之,模型也可以生成“文本摘要+语音详解”的混合输出,满足复杂的交互需求。

这种多模态支持能力,让Liquid Audio能够适配更多场景,如在线教育中的“文字提问+语音讲解”、客服机器人的“语音咨询+文本记录”等。

4. 轻量化部署,支持终端设备与演示验证

Liquid Audio的核心模型LFM2-Audio-1.5B属于轻量级模型,参数量远小于同类大模型(如GPT-4V的语音模块、Whisper-Large),能够在消费级GPU甚至CPU上实现高效推理。同时,项目提供一键式演示工具,安装依赖后只需一条命令即可启动Gradio可视化界面,开发者无需编写代码就能直观体验模型的语音对话、ASR、TTS功能,方便快速验证模型效果。

Liquid Audio技术细节

Liquid Audio的技术架构围绕“低延迟端到端转换”展开,其核心是LFM2骨干网络和多模态令牌设计,以下从令牌表示、模型架构、音频处理流程、依赖环境四个维度进行详细解析:

1. 多模态令牌设计:文本与音频的统一表示

为了实现端到端的语音-语音转换,Liquid Audio采用了统一的令牌化方案,将文本和音频都转换为模型可识别的令牌序列,具体设计如下:

模态类型 令牌结构 功能说明
文本令牌 1维张量(单条目) 采用SentencePiece分词器对文本进行编码,每个文本令牌对应一个单词或子词,张量维度为 [batch_size, sequence_length]
音频令牌 8维张量(8个条目) 基于Mimi音频编码技术,将音频波形转换为8个码本的离散令牌,每个码本对应音频的不同特征维度(如频率、振幅、相位),张量维度为 [batch_size, sequence_length, 8]

这种设计的优势在于,文本和音频令牌可以在同一序列中传输和处理,模型无需额外的模态转换接口,就能实现“语音令牌→文本令牌→音频令牌”的端到端流转,大幅简化了模型架构。

2. 核心模型架构:LFM2骨干网络

Liquid Audio的核心模型基于LFM2(Lightweight Fusion Model 2)轻量级融合网络构建,该网络是一种专为多模态实时交互设计的Transformer变体,其架构特点如下:

  • 轻量化编码器-解码器结构:编码器负责对输入的语音/文本令牌进行特征提取,解码器负责生成输出令牌。与传统Transformer相比,LFM2减少了注意力头的数量和前馈网络的维度,在降低计算量的同时,通过深度可分离卷积提升局部特征提取能力,兼顾效率与性能。

  • Conformer音频特征提取模块:在编码器前端,内置Conformer结构(Transformer + CNN的混合架构),能够有效捕捉音频的时序特征和频谱特征,提升语音识别与生成的精度。

  • Depthformer深度注意力模块:解码器采用Depthformer结构,通过分层注意力机制,优先关注近期的上下文令牌,进一步降低延迟,提升实时性。

3. 音频处理全流程:从输入到输出

Liquid Audio的音频处理流程遵循“输入采样→特征转换→令牌编码→模型推理→令牌解码→音频输出”的步骤,具体如下:

  1. 输入采样与预处理:接收用户输入的音频波形(支持多种采样率),由LFM2AudioProcessor统一转换为24kHz单声道采样率(模型的标准输入采样率),并进行归一化处理,消除音量差异的影响。

  2. 特征转换:将预处理后的音频波形转换为日志梅尔频谱特征,这是一种常用的音频特征表示方法,能够有效捕捉音频的频率特性。

  3. 令牌编码:通过Mimi编码器将日志梅尔频谱特征转换为8维的音频令牌序列。

  4. 模型推理:模型接收音频令牌(或混合文本令牌),根据选择的生成模式(交错/顺序)进行推理,生成输出令牌序列(包含文本令牌和音频令牌)。

  5. 令牌解码:输出令牌序列由LFM2AudioProcessor进行解码,文本令牌直接转换为字符串,音频令牌通过Mimi解码器转换为日志梅尔频谱特征。

  6. 音频合成:将日志梅尔频谱特征通过声码器转换为24kHz的音频波形,输出给用户。

4. 依赖环境与技术栈

Liquid Audio基于Python生态构建,对运行环境和依赖库有明确要求,具体如下表所示:

类别 具体要求
Python版本 3.12及以上
核心依赖库 torch(1.13+)、torchaudio(0.13+)、transformers(4.28+)、accelerate(0.18+)
辅助依赖库 einops(张量操作)、librosa(音频处理)、sentencepiece(文本分词)、gradio(演示界面)
可选加速库 flash-attn(2.0+,提升注意力计算速度,不安装则使用torch SDPA)
支持的硬件 CPU、NVIDIA GPU(支持CUDA 11.6+)、ARM架构终端设备

Liquid Audio:Liquid AI开源的低延迟语音到语音基础模型,支持实时多模态交互

Liquid Audio应用场景

Liquid Audio的低延迟、端到端、轻量化特性,使其能够适配多种语音交互场景,覆盖消费电子、企业服务、教育培训等多个领域,具体应用场景如下:

1. 实时语音对话系统

这是Liquid Audio最核心的应用场景,适用于需要自然流畅交互的智能设备:

  • 智能音箱/语音助手:在智能音箱、智能家居中控等设备上,Liquid Audio的交错生成模式能够实现“秒级回应”,用户提问后无需等待即可听到回复,提升交互体验。

  • 车载语音系统:在汽车等移动场景中,低延迟的语音交互能够保障驾驶安全,用户通过语音控制导航、音乐、空调等功能时,可快速得到反馈,无需分心等待。

  • 嵌入式设备交互:在智能手表、手环等资源受限的嵌入式设备上,轻量化的模型体积和高效的推理速度,能够在不占用过多内存和算力的前提下,实现语音对话功能。

2. 语音转文本(ASR)与会议记录

利用顺序生成模式,Liquid Audio可实现高精度的语音转文本功能,适用于:

  • 会议实时记录:在企业会议、线上研讨会中,将发言人的语音实时转换为文字,生成会议纪要,节省人工记录的时间成本。

  • 语音笔记整理:用户录制语音笔记后,通过模型转换为文本,方便后续编辑和检索。

  • 字幕生成:为短视频、直播等内容生成实时字幕,尤其适合中小内容创作者,无需依赖专业的字幕工具。

3. 文本转语音(TTS)与有声内容创作

Liquid Audio的顺序生成模式同样支持高质量的文本转语音,可应用于:

  • 有声书制作:将小说、文章等文本内容转换为自然流畅的语音,生成有声书,满足听觉阅读需求。

  • 语音播报系统:在公交、地铁、机场等公共场景,将文字通知转换为语音播报,提升信息传递效率。

  • 个性化语音助手:开发者可以通过微调模型,生成具有特定音色、语调的语音,打造个性化的语音助手。

4. 多模态交互应用

依托“文本+语音”的混合输入输出能力,Liquid Audio可用于构建复杂的多模态交互系统:

  • 在线教育互动工具:学生可以通过语音提问,模型结合文本知识点生成语音讲解,实现“语音问答+文字板书”的混合教学模式。

  • 客服机器人:用户通过语音咨询问题,机器人生成语音回复的同时,自动记录对话文本,方便后续工单处理和数据分析。

  • 多模态聊天机器人:在社交、娱乐场景中,机器人能够接收用户的语音、文字混合输入,生成生动的语音回复,提升聊天的趣味性。

Liquid Audio使用方法

Liquid Audio的使用流程分为环境准备、安装部署、功能验证、开发实战四个步骤,以下为详细的操作指南:

1. 环境准备

在安装Liquid Audio之前,需要确保本地环境满足以下要求:

  • 安装Python 3.12及以上版本(推荐使用Anaconda创建虚拟环境,避免依赖冲突)。

  • 若使用GPU加速,需安装CUDA 11.6+和cuDNN 8.4+(NVIDIA GPU)。

创建虚拟环境步骤

# 创建名为liquid_audio_env的虚拟环境
conda create -n liquid_audio_env python=3.12
# 激活虚拟环境(Windows系统)
conda activate liquid_audio_env
# 激活虚拟环境(macOS/Linux系统)
source activate liquid_audio_env

2. 安装部署

Liquid Audio支持通过pip一键安装,提供基础版、演示版和加速版三种安装方式,可根据需求选择:

  • 基础安装(核心功能) 安装模型的核心代码和依赖库,满足基本的推理需求:

    pip install liquid-audio
  • 安装演示依赖(体验可视化界面) 若需要使用Gradio演示界面,需安装额外的演示依赖:

    pip install "liquid-audio[demo]"
  • 安装Flash Attention(提升推理速度) 为了提升注意力机制的计算速度,可安装flash-attn库(需提前安装CUDA):

    pip install flash-attn --no-build-isolation

    若不安装该库,模型会自动 fallback 到PyTorch的SDPA(Scaled Dot-Product Attention)实现,不影响功能使用,但推理速度会略有下降。

3. 功能验证:启动Gradio演示界面

安装演示依赖后,可通过一条命令启动可视化演示界面,快速体验模型的核心功能:

liquid-audio-demo

命令执行成功后,终端会输出一个本地访问地址(默认:http://localhost:7860),在浏览器中打开该地址,即可进入演示界面。

演示界面提供三个核心功能模块:

  • 实时语音对话:麦克风输入语音,模型实时生成语音回复(交错生成模式)。

  • 语音转文本:上传音频文件或麦克风输入,模型生成对应的文本(顺序生成模式)。

  • 文本转语音:输入文本内容,模型生成对应的音频文件(顺序生成模式)。

4. 开发实战:代码示例

Liquid Audio提供简洁的API接口,开发者可以通过几行代码实现自定义的语音交互功能,以下为三个核心场景的代码示例:

示例1:实时多模态聊天(交错生成模式)

import torch
import torchaudio
from liquid_audio import LFM2AudioModel, LFM2AudioProcessor, ChatState, LFMModality

# 模型和处理器加载(Hugging Face仓库地址)
HF_REPO = "LiquidAI/LFM2-Audio-1.5B"
processor = LFM2AudioProcessor.from_pretrained(HF_REPO).eval()
model = LFM2AudioModel.from_pretrained(
  HF_REPO,
  torch_dtype=torch.float16, # 使用半精度加速推理
  device_map="auto" # 自动分配设备(GPU/CPU)
).eval()

# 初始化对话状态
chat = ChatState(processor)

# 设置系统提示词
chat.new_turn("system")
chat.add_text("你是一个友好的语音助手,使用交错模式生成语音回复,语言简洁自然。")
chat.end_turn()

# 用户输入:语音文件
chat.new_turn("user")
# 加载本地音频文件(支持wav格式)
wav, sampling_rate = torchaudio.load("user_question.wav")
# 添加音频输入到对话状态
chat.add_audio(wav, sampling_rate)
chat.end_turn()

# 助手生成回复
chat.new_turn("assistant")
text_out = []
audio_out = []
modality_out = []

# 启用推理模式,禁止梯度计算
with torch.no_grad():
  # 交错生成文本和音频令牌
  for token, modality in model.generate_interleaved(**chat.to_model_input()):
    if modality == LFMModality.TEXT:
      # 解码文本令牌
      text_token = processor.text.decode(token)
      text_out.append(text_token)
      print(f"生成文本:{text_token}", end="", flush=True)
    elif modality == LFMModality.AUDIO:
      # 收集音频令牌
      audio_out.append(token)
      modality_out.append(modality)

# 解码音频令牌为波形
if audio_out:
  audio_tokens = torch.stack(audio_out, dim=1).unsqueeze(0)
  waveform = processor.mimi.decode(audio_tokens)[0]
  # 保存生成的音频文件
  torchaudio.save("assistant_reply.wav", waveform.cpu(), 24000)
  print("\n音频已保存为 assistant_reply.wav")

示例2:语音转文本(ASR,顺序生成模式)

import torch
import torchaudio
from liquid_audio import LFM2AudioModel, LFM2AudioProcessor, ChatState

HF_REPO = "LiquidAI/LFM2-Audio-1.5B"
processor = LFM2AudioProcessor.from_pretrained(HF_REPO).eval()
model = LFM2AudioModel.from_pretrained(HF_REPO, device_map="auto").eval()

chat = ChatState(processor)

# 设置任务类型:语音转文本
chat.new_turn("system")
chat.add_text("请将输入的语音转换为准确的中文文本,不要添加额外内容。")
chat.end_turn()

# 加载用户语音
chat.new_turn("user")
wav, sampling_rate = torchaudio.load("meeting_audio.wav")
chat.add_audio(wav, sampling_rate)
chat.end_turn()

# 顺序生成文本
chat.new_turn("assistant")
full_text = ""
with torch.no_grad():
  for token in model.generate_sequential(**chat.to_model_input(), max_new_tokens=1024):
    if token.numel() == 1: # 文本令牌为单条目
      text = processor.text.decode(token)
      full_text += text
      print(text, end="", flush=True)

# 保存文本结果
with open("meeting_transcript.txt", "w", encoding="utf-8") as f:
  f.write(full_text)

示例3:文本转语音(TTS,顺序生成模式)

import torch
import torchaudio
from liquid_audio import LFM2AudioModel, LFM2AudioProcessor, ChatState

HF_REPO = "LiquidAI/LFM2-Audio-1.5B"
processor = LFM2AudioProcessor.from_pretrained(HF_REPO).eval()
model = LFM2AudioModel.from_pretrained(HF_REPO, device_map="auto").eval()

chat = ChatState(processor)

# 设置任务类型:文本转语音
chat.new_turn("system")
chat.add_text("请将输入的文本转换为自然流畅的语音,语速适中。")
chat.end_turn()

# 用户输入文本
chat.new_turn("user")
chat.add_text("欢迎使用Liquid Audio,这是一款低延迟的开源语音到语音模型。")
chat.end_turn()

# 生成音频令牌
chat.new_turn("assistant")
audio_tokens = []
with torch.no_grad():
  for token in model.generate_sequential(**chat.to_model_input(), max_new_tokens=2048):
    if token.numel() == 8: # 音频令牌为8条目
      audio_tokens.append(token)

# 解码音频并保存
if audio_tokens:
  audio_tensor = torch.stack(audio_tokens, dim=1).unsqueeze(0)
  waveform = processor.mimi.decode(audio_tensor)[0]
  torchaudio.save("tts_output.wav", waveform.cpu(), 24000)
  print("文本转语音完成,音频已保存为 tts_output.wav")

常见问题解答

1. 安装过程中出现依赖冲突怎么办?

问题现象:执行pip install liquid-audio时,出现“VersionConflict”错误,提示某些库的版本不兼容。 解决方案

  • 优先使用虚拟环境安装(如前文的conda虚拟环境),避免与系统已安装的库冲突。

  • 若虚拟环境中仍出现冲突,可手动指定冲突库的版本,例如:

    pip install "torch>=1.13,<2.0" "transformers>=4.28,<5.0"
  • 对于Windows用户,若出现librosa安装失败,可先安装Anaconda,再通过conda install librosa命令安装。

2. 模型推理速度慢,如何优化?

问题现象:在CPU或低端GPU上,模型生成音频的速度较慢,实时性不足。 解决方案

  • 启用半精度推理:在加载模型时,设置torch_dtype=torch.float16(GPU)或torch.bfloat16(CPU),减少计算量。

  • 安装Flash Attention:该库能大幅提升注意力机制的计算速度,是优化推理速度的关键。

  • 降低生成参数:减少max_new_tokens的数值,或降低模型的temperature参数(温度越低,生成速度越快,但多样性会降低)。

  • 使用GPU加速:相比CPU,GPU的并行计算能力更适合深度学习模型,建议优先使用NVIDIA GPU。

3. 生成的语音质量差、有杂音怎么办?

问题现象:模型生成的音频存在杂音、断句不自然、语速过快/过慢等问题。 解决方案

  • 优化输入质量:确保输入的语音文件采样率接近24kHz,避免音量过小或过大(可通过torchaudio进行归一化处理)。

  • 调整生成参数

    • 降低temperature参数(如设置为0.7),减少生成的随机性,提升语音流畅度。

    • 调整top_ktop_p参数,限制生成令牌的候选范围,提升质量。

  • 微调模型:对于特定场景(如方言、特定音色),可使用少量标注数据对模型进行微调,提升生成质量。

4. 商业使用有什么限制?

问题现象:开发者希望将Liquid Audio用于商业产品,需要了解授权限制。 解决方案: Liquid Audio的代码和模型权重采用LFM Open License v1.0授权,具体限制如下:

  • 非商业使用:完全免费,无任何限制,适合研究、个人项目、非营利组织。

  • 商业使用:年营收不超过1000万美元的企业可以免费使用;年营收超过1000万美元的企业,需要联系Liquid AI团队获取商业授权。

  • 衍生作品:基于Liquid Audio修改后的代码或模型,需遵循相同的授权协议,不得闭源商用。

5. 模型支持中文吗?

问题现象:输入中文语音或文本时,模型生成的结果乱码或无法识别。 解决方案: 目前,LFM2-Audio-1.5B的官方版本主要支持英文,对中文的支持有限。若需要中文语音交互,可通过以下方式解决:

  • 等待官方发布中文微调版本。

  • 使用中文语音数据集(如AISHELL、THCHS-30)对模型进行微调,适配中文语义和语音特征。

  • 结合第三方中文分词器(如jieba)和语音模型(如Whisper),对输入输出进行中文适配。

Liquid Audio相关链接

  1. 项目代码仓库https://github.com/Liquid4All/liquid-audio(获取最新代码、提交Issue、参与贡献)

  2. 模型权重仓库https://huggingface.co/LiquidAI/LFM2-Audio-1.5B(下载预训练模型权重)

  3. 官方文档https://docs.liquid.ai/liquid-audio(查看详细的API文档和开发指南)

总结

Liquid Audio是Liquid AI推出的一款开源端到端语音到语音基础模型项目,核心为LFM2-Audio-1.5B轻量级模型,以低延迟、高实时性为核心设计目标,依托LFM2骨干网络实现端到端的语音交互,无需拆分多个处理环节;其功能特色在于支持交错生成和顺序生成双模式,提供完整的工具链和多模态交互能力,可轻量化部署于终端设备;技术细节上采用文本单条目、音频8条目令牌设计,通过Conformer和Depthformer模块提升特征提取与推理效率,依赖Python 3.12+及相关深度学习库;应用场景覆盖实时语音对话、ASR、TTS、多模态交互等领域;使用方法上支持pip一键安装,提供Gradio演示界面和简洁的API代码示例;相关官方链接涵盖代码仓库、模型权重、文档等资源,方便开发者获取支持与进行二次开发。

打赏
THE END
作者头像
AI铺子
关注ai行业发展,专注ai工具推荐