模型简介
模型特点
模型能力
使用案例
基础模型
- openai/whisper-large-v2
数据集
- MERaLiON/MNSC
库名称
transformers
许可证
other
许可证名称
meralion-public-license
许可证链接
https://huggingface.co/MERaLiON/MERaLiON-AudioLLM-Whisper-SEA-LION/blob/main/MERaLiON-Public-Licence-v1.pdf
评估指标
- bleu
- wer
管道标签
automatic-speech-recognition
标签
- vllm
- LLM-as-a-Judge
- chat
- audio
- safetensors
小部件示例
-
示例标题:句子级语音识别 源文件:librispeech_clean.wav 输出: 文本:"用户指令:请转录这段语音。\n 模型输出:
当他们走到外面时,Ung只是闩上门,沿着小路出发了。" -
示例标题:对话级语音识别 源文件:IMDA_conversation.wav 输出: 文本:"用户指令:请将这段语音转换为书面格式。\n 模型输出:
好的,(嗯)那样的话,(呃)我该怎么申请呢? 好的,你可以(嗯)在线申请,然后(嗯)我们需要你提供一些文件。(嗯)比如说带有你地址和姓名的银行对账单,还有(嗯)享受优惠所需的国民服役卡。 (嗯嗯)(嗯嗯)(嗯嗯)[啊] 我看到是绿色的那张,对吧?" -
示例标题:口语对话摘要 源文件:IMDA_conversation.wav 输出: 文本:"用户指令:请简要总结这段对话。\n 模型输出:Speaker1和Speaker2讨论了申请促销活动的流程。Speaker2解释说可以在线申请,并提供了所需文件的清单,包括带有申请人地址和姓名的银行对账单以及国民服役卡。Speaker1确认了信息并核实了所需文件的细节。"
MERaLiON
MERaLiON-AudioLLM是一款专为新加坡多语言多元文化环境量身定制的语音-文本大语言模型。该模型整合了本地化的Whisper-large-v2语音编码器和SEA-LION V3文本解码器,基于26万小时语音音频数据和6种不同任务进行微调,以应对新加坡本地口音和方言的多样化语言细微差别。
MERaLiON代表多模态共情推理与学习一体化网络。
- 开发机构: 新加坡科技研究局(A*STAR)下属资讯通信研究院(I²R),与新加坡人工智能署(AISG)合作开发
- 模型类型: 多模态大语言模型
- 支持语言: 主要英语(全球及新加坡变体),兼容Whisper和SEA-LION模型的其他输入输出语言
- 音频规格: 单声道音频,16000Hz采样率,时长不超过30秒
- 许可证: MERaLiON公共许可证
- 演示平台: MERaLiON-AudioLLM网页演示
我们支持通过Huggingface和vLLM框架进行模型推理,实现闪电级推理速度。更多技术细节请参阅我们的技术报告。
致谢
本研究获得新加坡国家研究基金会和资讯通信媒体发展局"国家大语言模型资助计划"支持。
模型架构
MERaLiON-AudioLLM设计用于接收音频-文本对作为输入并生成文本输出。
该架构包含三个核心组件:将语音/音频输入转换为向量序列的音频编码器、解析并响应自然语言指令的文本解码器,以及压缩编码器表征同时对齐编码器隐藏维度与文本解码器嵌入尺寸的适配模块。
具体而言,我们从Whisper-large-v2微调得到MERaLiON-Whisper编码器作为音频编码器,并采用合作伙伴AI Singapore开发的本地化大语言模型SEA-LION V3作为文本解码器。

核心能力
MERaLiON-AudioLLM主要针对6类任务进行训练:自动语音识别
(ASR)、语音翻译
(ST)、口语问答
(SQA)、口语对话摘要
(SDS)、语音指令理解
(SI)和副语言学分析
(PARA)。
我们在AudioBench基准测试中,针对新加坡多任务国家语音语料库(MNSC)数据集,将MERaLiON-AudioLLM与三款知名AudioLLM(Qwen2-Audio 7B
、WavLLM
、SALMONN
)及级联模型进行对比评估。如下表所示,MERaLiON-AudioLLM在新加坡本地语境中表现更优。
[!注意] MNSC是从IMDA NSC语料库衍生并进一步标注的多任务语音理解数据集,重点关注新加坡本地口音、本土化术语和语码转换知识。
对于ASR和ST任务,我们分别采用词错误率(WER)和BLEU分数进行评估。其他任务则使用LLM-as-a-Judge框架,通过预训练大语言模型根据相关性、连贯性和准确性标准生成并评分响应。详见AudioBench论文。
任务 | 数据集 | MERaLiON | Qwen2-Audio 7B | WavLLM | SALMONN-7B | 级联模型 |
---|
推理部署
[!警告] 非适用场景:本模型不适用于工具调用、数学运算及编程任务。
vLLM推理
我们支持使用vLLM框架托管模型,具体指南参见此处。
Huggingface CPU推理
import librosa
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
repo_id = "MERaLiON/MERaLiON-AudioLLM-Whisper-SEA-LION"
processor = AutoProcessor.from_pretrained(
repo_id,
trust_remote_code=True,
)
model = AutoModelForSpeechSeq2Seq.from_pretrained(
repo_id,
use_safetensors=True,
trust_remote_code=True,
)
prompt = "给定以下音频内容:<SpeechHere>\n\n文本指令:{query}"
transcribe_query = "请转录这段语音。"
translate_query = "请将这段语音翻译成中文书面语?"
conversation = [
[{"role": "user", "content": prompt.format(query=transcribe_query)}],
[{"role": "user", "content": prompt.format(query=translate_query)}],
]
chat_prompt = processor.tokenizer.apply_chat_template(
conversation=conversation,
tokenize=False,
add_generation_prompt=True
)
# 使用30秒内、16000Hz的音频
audio_array, sample_rate = librosa.load("/路径/至/音频文件", sr=16000)
audio_array = [audio_array]*2
inputs = processor(text=chat_prompt, audios=audio_array)
outputs = model.generate(**inputs, max_new_tokens=256)
generated_ids = outputs[:, inputs['input_ids'].size(1):]
response = processor.batch_decode(generated_ids, skip_special_tokens=True)
Huggingface GPU推理
import torch
import librosa
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
repo_id = "MERaLiON/MERaLiON-AudioLLM-Whisper-SEA-LION"
device = "cuda"
processor = AutoProcessor.from_pretrained(
repo_id,
trust_remote_code=True,
)
model = AutoModelForSpeechSeq2Seq.from_pretrained(
repo_id,
use_safetensors=True,
trust_remote_code=True,
attn_implementation="flash_attention_2",
torch_dtype=torch.bfloat16
).to(device)
prompt = "给定以下音频内容:<SpeechHere>\n\n文本指令:{query}"
transcribe_query = "请转录这段语音。"
translate_query = "请将这段语音翻译成中文书面语?"
conversation = [
[{"role": "user", "content": prompt.format(query=transcribe_query)}],
[{"role": "user", "content": prompt.format(query=translate_query)}],
]
chat_prompt = processor.tokenizer.apply_chat_template(
conversation=conversation,
tokenize=False,
add_generation_prompt=True
)
# 使用30秒内、16000Hz的音频
audio_array, sample_rate = librosa.load("/路径/至/音频文件", sr=16000)
audio_array = [audio_array]*2
inputs = processor(text=chat_prompt, audios=audio_array)
for key, value in inputs.items():
if isinstance(value, torch.Tensor):
inputs[key] = inputs[key].to(device)
if value.dtype == torch.float32:
inputs[key] = inputs[key].to(torch.bfloat16)
outputs = model.generate(**inputs, max_new_tokens=256)
generated_ids = outputs[:, inputs['input_ids'].size(1):]
response = processor.batch_decode(generated_ids, skip_special_tokens=True)
免责声明
当前MERaLiON-AudioLLM未针对安全性进行专门对齐,可能生成不当、冒犯性或有害内容。开发者和使用者需自行实施安全微调及必要防护措施。作者不对因使用发布模型、权重或代码而产生的任何索赔、损害或其他责任负责。
技术规格
训练数据
MERaLiON-AudioLLM基于团队与母语者精心筛选的公开数据集及合成增强样本进行训练,音频总时长26万小时。
计算基础设施
MERaLiON-AudioLLM在**新加坡国家超级计算中心(NSCC)提供的ASPIRE 2A+**超级计算机集群上训练。该集群配备多组H100节点,每个计算节点含8块Nvidia H100 GPU、2TB内存和30TB本地NVMe存储,通过400Gb/s NDR InfiniBand线缆实现全胖树拓扑互连,并集成2.5PB SSD Lustre文件系统。
采用全局批次大小640,当前版本MERaLiON-AudioLLM训练约20万步,使用16个节点(128块H100 GPU)耗时2天完成。
引用
若您认为我们的工作有价值,请引用论文:
@misc{he2024meralionaudiollmtechnicalreport,
title={MERaLiON-AudioLLM:连接音频与语言的大语言模型},
author={{MERaLiON团队}},
year={2024},
eprint={2412.09818},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2412.09818},
}











