🚀 CSM 1B (Safetensors)
CSM 1B (Safetensors) 是将 原始版本 转换为各种 Safetensors 格式的模型,同时还会跟踪下载情况。
2025/03/13 - 我们发布了 1B 版本的 CSM 变体。代码可在 GitHub 上获取:SesameAILabs/csm。
🚀 快速开始
CSM(对话语音模型,Conversational Speech Model)是来自 Sesame 的语音生成模型,它可以根据文本和音频输入生成 RVQ 音频代码。该模型架构采用了 Llama 主干和一个较小的音频解码器,用于生成 Mimi 音频代码。
经过微调的 CSM 变体为我们 博客文章 中展示的 交互式语音演示 提供支持。
此外,还有一个托管的 HuggingFace 空间 可用于测试音频生成。
📦 安装指南
设置仓库:
python -m venv .venv
source .venv/bin/activate
curl -s -L https://raw.githubusercontent.com/SesameAILabs/csm/refs/heads/main/requirements.txt | pip install -r /dev/stdin
huggingface-cli login
💻 使用示例
基础用法
生成一个句子:
from generator import load_csm_1b
import torchaudio
generator = load_csm_1b(device="cuda")
audio = generator.generate(
text="Hello from Sesame.",
speaker=0,
context=[],
max_audio_length_ms=10_000,
)
torchaudio.save("audio.wav", audio.unsqueeze(0).cpu(), generator.sample_rate)
高级用法
CSM 在提供上下文时效果最佳。你可以为每个说话者的话语使用 Segment
为模型提供提示或上下文:
speakers = [0, 1, 0, 0]
transcripts = [
"Hey how are you doing.",
"Pretty good, pretty good.",
"I'm great.",
"So happy to be speaking to you.",
]
audio_paths = [
"utterance_0.wav",
"utterance_1.wav",
"utterance_2.wav",
"utterance_3.wav",
]
def load_audio(audio_path):
audio_tensor, sample_rate = torchaudio.load(audio_path)
audio_tensor = torchaudio.functional.resample(
audio_tensor.squeeze(0), orig_freq=sample_rate, new_freq=generator.sample_rate
)
return audio_tensor
segments = [
Segment(text=transcript, speaker=speaker, audio=load_audio(audio_path))
for transcript, speaker, audio_path in zip(transcripts, speakers, audio_paths)
]
audio = generator.generate(
text="Me too, this is some cool stuff huh?",
speaker=1,
context=segments,
max_audio_length_ms=10_000,
)
torchaudio.save("audio.wav", audio.unsqueeze(0).cpu(), generator.sample_rate)
📚 详细文档
常见问题解答
这个模型自带语音吗?
此处开源的模型是一个基础生成模型。它能够产生多种语音,但并未针对任何特定语音进行微调。
我可以与模型进行对话吗?
CSM 是为音频生成而训练的模型,并非通用的多模态大语言模型,它不能生成文本。我们建议使用单独的大语言模型进行文本生成。
它支持其他语言吗?
由于训练数据中存在数据污染,该模型对非英语语言有一定的处理能力,但效果可能不佳。
滥用和误用 ⚠️
本项目提供了一个高质量的语音生成模型,用于研究和教育目的。虽然我们鼓励负责任和符合道德的使用方式,但我们 明确禁止 以下行为:
- 冒充或欺诈:未经他人明确同意,请勿使用此模型生成模仿真实个人的语音。
- 虚假信息或欺骗:请勿使用此模型创建具有欺骗性或误导性的内容,如虚假新闻或欺诈性电话。
- 非法或有害活动:请勿将此模型用于任何非法、有害或恶意目的。
使用此模型即表示您同意遵守所有适用的法律和道德准则。我们 不对任何滥用行为负责,并强烈谴责对该技术的不道德应用。
作者
Johan Schalkwyk、Ankit Kumar、Dan Lyth、Sefik Emre Eskimez、Zack Hodari、Cinjon Resnick、Ramon Sanabria、Raven Jiang 以及 Sesame 团队。
📄 许可证
本项目采用 Apache 2.0 许可证。