如何快速上手IBM Granite Speech 4.1-2B:5分钟实现多语言语音转文本
如何快速上手IBM Granite Speech 4.1-2B:5分钟实现多语言语音转文本
IBM Granite Speech 4.1-2B是一款高效紧凑的语音语言模型,专为多语言自动语音识别(ASR)和双向自动语音翻译(AST)设计,支持英语、法语、德语、西班牙语、葡萄牙语和日语。本文将带你5分钟内快速掌握这个强大工具的使用方法,实现专业级语音转文本功能。
🚀 为什么选择Granite Speech 4.1-2B?
这款模型拥有20亿参数,经过174,000小时的音频训练,相比上一代产品带来了多项显著改进:
- 更高的多语言ASR转录准确率,采用创新的双头CTC编码器
- 全语言标点符号和大小写处理(包括德语名词大写)
- 增强的关键词列表偏向功能,提升名称、缩写和技术术语的识别能力
📋 准备工作:环境搭建
一键安装依赖
首先确保你的环境中已安装Python,然后通过以下命令安装必要的依赖包:
pip install transformers torchaudio soundfile获取模型文件
使用以下命令克隆项目仓库:
git clone https://gitcode.com/hf_mirrors/ibm-granite/granite-speech-4.1-2b cd granite-speech-4.1-2b仓库中包含模型运行所需的所有关键文件,如config.json、preprocessor_config.json和分词器配置文件等。
💻 快速开始:5分钟实现语音转文本
使用Transformers库的基本示例
以下是一个简单的Python代码示例,展示如何使用Granite Speech 4.1-2B进行语音转录:
import torch import torchaudio from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor # 设置设备 device = "cuda" if torch.cuda.is_available() else "cpu" # 加载模型和处理器 model_name = "ibm-granite/granite-speech-4.1-2b" processor = AutoProcessor.from_pretrained(model_name) model = AutoModelForSpeechSeq2Seq.from_pretrained( model_name, device_map=device, torch_dtype=torch.bfloat16 ) # 加载音频文件(使用项目中提供的示例音频) audio_path = "multilingual_sample.wav" wav, sr = torchaudio.load(audio_path, normalize=True) assert wav.shape[0] == 1 and sr == 16000 # 确保是单声道16kHz音频 # 创建文本提示 user_prompt = "<|audio|>transcribe the speech with proper punctuation and capitalization." chat = [{"role": "user", "content": user_prompt}] prompt = processor.tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True) # 运行语音转文本 model_inputs = processor(prompt, wav, device=device, return_tensors="pt").to(device) model_outputs = model.generate(**model_inputs, max_new_tokens=200, do_sample=False, num_beams=1) # 提取并打印结果 num_input_tokens = model_inputs["input_ids"].shape[-1] new_tokens = model_outputs[0, num_input_tokens:].unsqueeze(0) output_text = processor.tokenizer.batch_decode(new_tokens, add_special_tokens=False, skip_special_tokens=True) print(f"转录结果: {output_text[0]}")🎯 按任务选择最佳提示词
根据不同的使用场景,选择合适的提示词可以获得更好的结果:
| 任务 | 推荐提示词 | 注意事项 |
|---|---|---|
| ASR(原始转录) | can you transcribe the speech into a written format? | 支持多语言提示,如法语:Pouvez‑vous reconnaître le contenu de la parole ? |
| ASR(带标点) | transcribe the speech with proper punctuation and capitalization. | 非英语ASR需要使用英语提示 |
| ASR(带关键词偏向) | transcribe the speech to text. Keywords: <kw1>, <kw2>, ... | 非英语ASR需要使用英语提示 |
| AST(原始翻译) | translate the speech to <language>. | <language>可以是:English, French, German, Spanish, Japanese, Italian, Mandarin |
⚡️ 提升性能:使用vLLM加速推理
对于需要更高吞吐量的场景,可以使用vLLM进行推理加速:
pip install vllmvLLM提供了离线和在线两种使用模式,具体实现可参考项目README.md中的详细说明。
🌍 支持的语言和应用场景
Granite Speech 4.1-2B支持以下语言的语音识别和翻译:
- 英语、法语、德语、西班牙语、葡萄牙语、日语
- 英语到意大利语和英语到普通话的翻译
该模型非常适合企业应用中的语音处理需求,如会议记录、客户服务通话分析、多语言内容创建等场景。
📚 更多资源
- 技术文档:README.md
- 配置文件:config.json、preprocessor_config.json
- 官方资源:https://www.ibm.com/granite/docs/
通过以上步骤,你已经掌握了IBM Granite Speech 4.1-2B的基本使用方法。这个强大的工具能够帮助你轻松实现多语言语音转文本功能,为你的项目增添高效的语音处理能力。现在就开始尝试吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
