许可证:apache-2.0
语言:
CSM 1B 模型
2025/03/13 - 我们发布了1B参数的CSM变体。原始代码已在GitHub开源:SesameAILabs/csm。
2025/05/07 - CSM已集成至HuggingFace Transformers库 ü§ó
CSM(对话语音模型)是Sesame开发的语音生成模型,可通过文本和音频输入生成RVQ音频编码。该模型采用Llama主干网络和轻量级音频解码器,可输出Mimi音频编码。
精调后的CSM版本已应用于我们博客文章中展示的交互式语音演示。
您也可以通过HuggingFace Space在线体验音频生成功能。
使用指南
生成单句语音
import torch
from transformers import CsmForConditionalGeneration, AutoProcessor
model_id = "eustlb/csm-1b"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(model_id)
model = CsmForConditionalGeneration.from_pretrained(model_id, device_map=device)
text = "[0]过去只是我们讲给自己的故事。"
inputs = processor(text, add_special_tokens=True).to(device)
conversation = [
{"role": "0", "content": [{"type": "text", "text": "过去只是我们讲给自己的故事。"}]},
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
return_dict=True,
).to(device)
audio = model.generate(**inputs, output_audio=True)
processor.save_audio(audio, "无上下文示例.wav")
带上下文的优化效果
import torch
from transformers import CsmForConditionalGeneration, AutoProcessor
from datasets import load_dataset, Audio
model_id = "eustlb/csm-1b"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(model_id)
model = CsmForConditionalGeneration.from_pretrained(model_id, device_map=device)
ds = load_dataset("hf-internal-testing/dailytalk-dummy", split="train")
ds = ds.cast_column("audio", Audio(sampling_rate=24000))
conversation = []
for text, audio, speaker_id in zip(ds[:4]["text"], ds[:4]["audio"], ds[:4]["speaker_id"]):
conversation.append(
{
"role": f"{speaker_id}",
"content": [{"type": "text", "text": text}, {"type": "audio", "path": audio["array"]}],
}
)
conversation.append({"role": f"{ds[4]['speaker_id']}", "content": [{"type": "text", "text": ds[4]["text"]}]})
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
return_dict=True,
).to(device)
audio = model.generate(**inputs, output_audio=True)
processor.save_audio(audio, "带上下文示例.wav")
批量推理 üì¶
CSM支持批量推理:
代码示例
CUDA图加速 üèéÔ∏è
CSM支持全图编译的CUDA加速:
代码示例
微调训练 üìâ
可使用Transformers的Trainer进行微调:
代码示例
常见问题
模型是否包含预设音色?
开源版本为基础生成模型,可生成多种音色但未针对特定音色微调。
能否进行对话交互?
CSM是纯语音生成模型,需配合其他LLM实现文本对话功能。
是否支持多语言?
训练数据中存在少量非英语内容,但生成效果可能不佳。
使用限制 ‚ö†Ô∏è
本模型仅限研究与教育用途,严禁用于:
- 未经许可的人物声音模仿
- 制造虚假/误导性内容
- 任何违法或有害行为
开发团队
Johan Schalkwyk, Ankit Kumar, Dan Lyth, Sefik Emre Eskimez, Zack Hodari, Cinjon Resnick, Ramon Sanabria, Raven Jiang 及Sesame团队。