Gemma 3 4b It Speech
Gemma-3-MM是基于Gemma-3-4b-it扩展的多模态指令模型,新增语音处理能力,可处理文本、图像和音频输入,生成文本输出。
下载量 383
发布时间 : 3/22/2025
模型简介
开源多模态指令模型,在Gemma-3基础上扩展语音处理能力,支持英语和韩语的语音识别与翻译任务。
模型特点
多模态处理能力
可同时处理文本、图像和音频输入,生成文本输出
长上下文支持
支持128K token的上下文长度(1B模型为32K)
语音适配器
通过添加596B参数的LoRA适配器扩展语音处理功能
多语言支持
支持英语和韩语的语音识别与翻译
模型能力
文本生成
语音识别
语音翻译
多模态理解
使用案例
语音转写
英语语音转录
将英语语音转换为文本
在LibriSpeech清洁版测试集上达到94.28 BLEU分数
韩语语音转录
将韩语语音转换为文本
在Zeroth测试集上达到94.91 BLEU分数
语音翻译
英韩翻译
将英语语音翻译为韩语文本
在Covost2测试集上达到31.55 BLEU分数
🚀 Gemma 3 MM模型卡片
Gemma-3-MM 是一个开源的多模态指令模型,它在原始Gemma-3模型的基础上进行了扩展,增加了语音处理能力。这些模型利用了原始Gemma-3模型中的语言和视觉研究成果,并通过语音适配器融入了额外的语音处理能力。该模型可以处理文本、图像和音频输入,生成文本输出,并且具有128K的令牌上下文长度(1B模型为32K)。
🚀 快速开始
运行环境准备
首先,升级你的Transformers库。现在支持在聊天模板中使用音频输入。
$ pip install -U transformers
运行模型
根据不同的使用场景,你可以选择以下两种方式运行模型:
基于聊天模板运行模型
from transformers import AutoProcessor, AutoModel
import torch
model_id = "junnei/gemma-3-4b-it-speech"
revision = "main" # 或者 "korean"。
model = AutoModel.from_pretrained(
model_id, device_map="auto", revision = revision, trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained(
model_id, revision = revision, trust_remote_code=True
)
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://huggingface.co/microsoft/Phi-4-multimodal-instruct/resolve/main/examples/what_is_shown_in_this_image.wav"},
{"type": "text", "text": "将这段音频转录为文本。"}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
)
with torch.inference_mode():
generate_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)
# 这段音频里说了什么?
基于原始数据运行模型
from io import BytesIO
from urllib.request import urlopen
import soundfile
from PIL import Image
# 从URL获取音频数据
url = "https://huggingface.co/microsoft/Phi-4-multimodal-instruct/resolve/main/examples/what_is_shown_in_this_image.wav"
audio, sr = soundfile.read(BytesIO(urlopen(url).read()))
audio_token = '<start_of_audio>'
messages = [
{'role': 'user', 'content': audio_token + '将这段音频翻译成韩语。'}
]
prompt = processor.tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = processor(text=prompt, audio=[audio], add_special_tokens=False, return_tensors="pt")
with torch.inference_mode():
generate_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)
模型微调
这里有一个微调脚本:链接
你必须更改输出目录、上传目录,并适配你的数据集
python finetune_speech.py
✨ 主要特性
- 多模态处理:能够处理文本、图像和音频输入,生成文本输出。
- 语音处理能力:在原始Gemma-3模型的基础上增加了语音处理能力。
- 长上下文长度:具有128K的令牌上下文长度(1B模型为32K)。
📦 安装指南
升级Transformers库:
$ pip install -U transformers
💻 使用示例
基础用法
基于聊天模板运行模型,示例代码如下:
from transformers import AutoProcessor, AutoModel
import torch
model_id = "junnei/gemma-3-4b-it-speech"
revision = "main" # 或者 "korean"。
model = AutoModel.from_pretrained(
model_id, device_map="auto", revision = revision, trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained(
model_id, revision = revision, trust_remote_code=True
)
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://huggingface.co/microsoft/Phi-4-multimodal-instruct/resolve/main/examples/what_is_shown_in_this_image.wav"},
{"type": "text", "text": "将这段音频转录为文本。"}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
)
with torch.inference_mode():
generate_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)
# 这段音频里说了什么?
高级用法
基于原始数据运行模型,示例代码如下:
from io import BytesIO
from urllib.request import urlopen
import soundfile
from PIL import Image
# 从URL获取音频数据
url = "https://huggingface.co/microsoft/Phi-4-multimodal-instruct/resolve/main/examples/what_is_shown_in_this_image.wav"
audio, sr = soundfile.read(BytesIO(urlopen(url).read()))
audio_token = '<start_of_audio>'
messages = [
{'role': 'user', 'content': audio_token + '将这段音频翻译成韩语。'}
]
prompt = processor.tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = processor(text=prompt, audio=[audio], add_special_tokens=False, return_tensors="pt")
with torch.inference_mode():
generate_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)
📚 详细文档
评估
模型评估指标和结果。这里有一个评估脚本用于评估模型。
ASR评估结果
基准测试 | 任务 | BLEU ↑ | CER ↓ | WER ↓ | 结果 |
---|---|---|---|---|---|
Covost2 | ASR (英语) | 86.09 | 4.12 | 7.83 | 链接 |
Fleurs | ASR (英语) | 89.61 | 2.28 | 5.23 | 链接 |
LibriSpeech-Clean | ASR (英语) | 94.28 | 0.98 | 2.91 | 链接 |
LibriSpeech-Other | ASR (英语) | 87.60 | 3.10 | 6.55 | 链接 |
AST评估结果
基准测试 | 任务 | BLEU ↑ | 结果 |
---|---|---|---|
Covost2 | AST (零样本,英语 - 韩语) | 31.55 | 链接 |
Fleurs | AST (零样本,英语 - 韩语) | 11.05 | 链接 |
(实验性) ASR:韩语分支
由于未应用韩语归一化器,分数较低。
基准测试 | 任务 | BLEU ↑ | CER ↓ | WER ↓ | 结果 |
---|---|---|---|---|---|
Zeroth | ASR (韩语) | 94.91 | 1.31 | 2.50 | 链接 |
Fleurs | ASR (韩语) | 62.83 | 9.08 | 23.0 | 链接 |
Covost2 | ASR (韩语) | 43.66 | 22.5 | 41.4 | 链接 |
模型详情
- 开发者:junnei
- 模型类型:多模态(文本、视觉、语音)语言模型
- 支持语言:多语言
- 许可证:Gemma
- 基础模型:google/gemma-3-4b-it
- 灵感来源:Phi-4-multimodal-instruct
训练详情
- 训练方式:在基础Gemma-3-4b-it模型上添加了一个596B参数的语音LoRA适配器。
- 训练资源限制:由于计算资源有限,该模型仅在ASR(自动语音识别)和AST(自动语音翻译)任务上,使用A100 1 GPU对有限的数据集和轮次进行了训练。
- 训练数据限制:训练数据仅限于英语和韩语,且音频时长小于30秒。
数据集
ASR / AST
局限性
请注意,该模型仅用于实验目的,是一个概念验证(PoC),不适合用于生产环境。为了提高模型的性能和可靠性,以下方面需要进一步开发:
- 更多计算资源:需要更多的计算资源进行扩展训练。
- 任务范围:目前,该模型仅适用于视觉 - 语言任务和音频 - 语言任务(ASR/AST)。
- 音频时长限制:由于计算资源不足,该模型主要识别时长小于30秒的音频文件。因此,对于较长的音频输入,准确性可能会显著下降。
- 未来计划:如果可能,将对模型进行训练以支持语音 - 视觉任务和更多的音频 - 语言任务。
🔧 技术细节
- 模型在原始Gemma-3模型的基础上,通过语音适配器融入了额外的语音处理能力。
- 训练时在基础Gemma-3-4b-it模型上添加了一个596B参数的语音LoRA适配器。
📄 许可证
本模型使用的许可证为 Gemma。
📖 引用
@article{gemma3mm_2025,
title={Gemma-3-MM: Multimodal Language Models with Speech Capabilities},
author={Seongjun Jang},
year={2025}
}
Qwen2 Audio 7B
Apache-2.0
Qwen2-Audio是通义千问大音频语言模型系列,支持语音聊天和音频分析两种交互模式。
音频生成文本
Transformers 英语

Q
Qwen
28.26k
114
Qwen2 Audio 7B GGUF
Apache-2.0
Qwen2-Audio是先进的小规模多模态模型,支持音频与文本输入,无需依赖语音识别模块即可实现语音交互。
音频生成文本 英语
Q
NexaAIDev
5,001
153
Ultravox V0 5 Llama 3 3 70b
MIT
Ultravox是基于Llama3.3-70B和Whisper构建的多模态语音大语言模型,支持语音和文本输入,适用于语音代理、翻译等场景。
音频生成文本
Transformers 支持多种语言

U
fixie-ai
3,817
26
Ultravox V0 4
MIT
Ultravox 是一款基于 Llama3.1-8B-Instruct 和 Whisper-medium 的多模态语音大语言模型,能够同时处理语音和文本输入。
音频生成文本
Transformers 支持多种语言

U
fixie-ai
1,851
48
Aero 1 Audio
MIT
轻量级音频模型,擅长语音识别、音频理解及执行音频指令等多元任务
音频生成文本
Transformers 英语

A
lmms-lab
1,348
74
Ultravox V0 4 1 Mistral Nemo
MIT
Ultravox 是一个基于 Mistral-Nemo 和 Whisper 的多模态模型,可同时处理语音和文本输入,适用于语音代理、语音翻译等任务。
音频生成文本
Transformers 支持多种语言

U
fixie-ai
1,285
25
Ultravox V0 6 Qwen 3 32b
MIT
Ultravox是一个多模态语音大语言模型,能够理解和处理语音输入,支持多种语言和噪声环境。
音频生成文本
Transformers 支持多种语言

U
fixie-ai
1,240
0
Omniaudio 2.6B
Apache-2.0
全球最快、最高效的端侧部署音频语言模型,2.6B参数的多模态模型,可同时处理文本和音频输入。
音频生成文本 英语
O
NexaAIDev
1,149
265
Qwen2 Audio 7B Instruct 4bit
这是Qwen2-Audio-7B-Instruct的4位量化版本,基于阿里巴巴云原版Qwen模型开发,是一个音频-文本多模态大语言模型。
音频生成文本
Transformers

Q
alicekyting
1,090
6
Ultravox V0 5 Llama 3 2 1b ONNX
MIT
Ultravox是一个多语言音频转文本模型,基于LLaMA-3-2.1B架构优化,支持多种语言的语音识别和转录任务。
音频生成文本
Transformers 支持多种语言

U
onnx-community
1,088
3
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98