许可证:Apache-2.0
语言:
- 英语
基础模型:
- ibm-granite/granite-3.2-8b-instruct
库名称:transformers
新版本:ibm-granite/granite-speech-3.3-8b
Granite-speech-3.2-8b
模型概述:
Granite-speech-3.2-8b 是一款紧凑高效的语音语言模型,专为自动语音识别(ASR)和自动语音翻译(AST)设计。与将语音和语言处理合二为一的单步模型不同,Granite-speech-3.2-8b 采用两阶段设计。首次调用该模型会将音频文件转录为文本。若需进一步处理转录文本,用户需再次调用底层 Granite 语言模型,因为每个步骤均需显式触发。
该模型基于公开语料库训练,涵盖多样化的 ASR 和 AST 数据集,以及为支持语音翻译任务定制的合成数据集。Granite-speech-3.2 通过模态对齐技术,在包含音频输入和文本目标的公开开源语料库上,对 granite-3.2-8b-instruct(https://huggingface.co/ibm-granite/granite-3.2-8b-instruct)进行了语音适配训练。
评估:
我们在标准基准测试中将 granite-speech-3.2-8b 与其他参数规模小于 8B 的语音语言模型(SLM)以及专用 ASR/AST 系统进行了对比。评估覆盖多个公开基准,重点关注英语 ASR 任务,同时包含英语到其他语言(En-X)的 AST 翻译任务。



发布日期:2025年4月2日
许可证:Apache 2.0
支持语言:英语
用途说明:
本模型适用于涉及语音输入处理的企业级应用,尤其擅长英语语音转文本及英语到部分主要欧洲语言(如法语、西班牙语、意大利语、德语、葡萄牙语)以及日语和中文的语音翻译。对于纯文本输入任务,建议使用 Granite 大语言模型,其针对纯文本处理优化且性能更优。
生成示例
Granite Speech 模型正逐步原生支持 transformers
的 main
分支。过渡期间,以下是使用 granite-speech-3.2-8b
的简单示例:
使用 transformers
首先安装最新版 transformers:
pip install transformers>=4.49 peft torchaudio
安装 torchaudio
后端(如 soundfile):
pip install soundfile
运行代码:
import torch
import torchaudio
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
from huggingface_hub import hf_hub_download
device = "cuda" if torch.cuda.is_available() else "cpu"
model_name = "ibm-granite/granite-speech-3.2-8b"
speech_granite_processor = AutoProcessor.from_pretrained(
model_name, trust_remote_code=True)
tokenizer = speech_granite_processor.tokenizer
speech_granite = AutoModelForSpeechSeq2Seq.from_pretrained(
model_name, trust_remote_code=True).to(device)
audio_path = hf_hub_download(repo_id=model_name, filename='10226_10111_000000.wav')
wav, sr = torchaudio.load(audio_path, normalize=True)
assert wav.shape[0] == 1 and sr == 16000
chat = [
{
"role": "system",
"content": "知识截止日期:2024年4月。\n当前日期:2024年12月19日。\n我是IBM开发的Granite,您的AI助手",
},
{
"role": "user",
"content": "<|audio|>请将这段语音转录为文字?",
}
]
text = tokenizer.apply_chat_template(
chat, tokenize=False, add_generation_prompt=True
)
model_inputs = speech_granite_processor(
text,
wav,
device=device,
return_tensors="pt",
).to(device)
model_outputs = speech_granite.generate(
**model_inputs,
max_new_tokens=200,
num_beams=4,
do_sample=False,
min_length=1,
top_p=1.0,
repetition_penalty=1.0,
length_penalty=1.0,
temperature=1.0,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id,
)
num_input_tokens = model_inputs["input_ids"].shape[-1]
new_tokens = torch.unsqueeze(model_outputs[0, num_input_tokens:], dim=0)
output_text = tokenizer.batch_decode(
new_tokens, add_special_tokens=False, skip_special_tokens=True
)
print(f"语音转文本输出 = {output_text[0].upper()}")
模型架构:
Granite-speech-3.2-8b 包含以下组件:
- 语音编码器:10层Conformer块,基于字符级CTC目标在ASR语料子集上训练(配置如下)。采用4秒音频块的块注意力机制及中层自条件CTC。
- 语音投影与时序降采样器:2层窗口查询变换器(q-former),对语音编码器输出的1024维声学嵌入进行5倍降采样。
- 大语言模型:granite-3.2-8b-instruct(128k上下文长度)。
- LoRA适配器:应用于查询和值投影矩阵(秩=64)。
训练数据:
主要包含公开数据集和针对语音翻译任务的合成数据,详情如下:
名称 |
任务 |
时长(小时) |
来源 |
CommonVoice-17 英语 |
ASR |
2600 |
https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0 |
MLS 英语 |
ASR |
44000 |
https://huggingface.co/datasets/facebook/multilingual_librispeech |
Librispeech |
ASR |
1000 |
https://huggingface.co/datasets/openslr/librispeech_asr |
基础设施:
使用配备NVIDIA H100 GPU的IBM超级计算集群Blue Vela训练,32块H100 GPU耗时10天完成。
伦理考量与限制:
使用大型语音语言模型需注意偏见、错误信息和自主决策等风险。建议遵循IBM《负责任使用指南》,推荐将本模型用于ASR任务。模块化设计通过限制音频输入影响提升安全性。对高风险任务,建议搭配Granite Guardian(基于红队测试优化的风险检测模型)使用。
资源:
- ⭐️ Granite最新动态:https://www.ibm.com/granite
- 🚀 教程与最佳实践:https://www.ibm.com/granite/docs/
- 💡 学习资源:https://ibm.biz/granite-learning-resources