许可协议:Apache-2.0
支持语言:
- 英语
标签:
- 文本转语音
基础模型:sesame/csm-1b
任务类型:text-to-speech
库名称:transformers
CSM 1B(安全张量版)
由原版模型转换而来,支持多种安全张量格式,并统计下载量。
2025年3月13日 - 我们正式发布10亿参数的CSM变体。代码已开源至GitHub:SesameAILabs/csm。
CSM(对话语音模型)是Sesame开发的语音生成模型,可通过文本和音频输入生成RVQ音频编码。该模型架构采用Llama主干网络和轻量级音频解码器,可输出Mimi音频编码。
经过微调的CSM变体已应用于我们博客文章中展示的交互式语音演示。
您也可以通过托管在HuggingFace空间的demo测试音频生成功能。
使用指南
环境配置
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="来自Sesame的问候。",
speaker=0,
context=[],
max_audio_length_ms=10_000,
)
torchaudio.save("audio.wav", audio.unsqueeze(0).cpu(), generator.sample_rate)
上下文增强效果更佳。可通过Segment
结构为每个说话人语句提供上下文提示:
speakers = [0, 1, 0, 0]
transcripts = [
"最近过得怎么样?",
"挺好的,非常不错。",
"我也很棒。",
"很高兴能和你交流。",
]
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="我也是,这些技术很酷对吧?",
speaker=1,
context=segments,
max_audio_length_ms=10_000,
)
torchaudio.save("audio.wav", audio.unsqueeze(0).cpu(), generator.sample_rate)
常见问题
模型包含预置音色吗?
开源版本为基础生成模型,虽能生成多样音色,但未针对特定音色微调。
支持对话交互吗?
CSM是专用音频生成模型,非多模态大语言模型,不具备文本生成能力。建议搭配其他LLM使用。
支持多语言吗?
因训练数据混杂,模型具备有限非英语生成能力,但效果欠佳。
滥用警示 ⚠️
本模型仅供研究教育用途,严禁下列行为:
- 身份伪造:未经授权模仿真实人物语音
- 虚假信息:制作欺诈性内容如虚假新闻/诈骗录音
- 违法用途:任何非法或恶意活动
使用者须遵守法律法规与伦理准则。开发者不承担滥用责任,并强烈谴责技术伦理失范行为。
开发团队
Johan Schalkwyk、Ankit Kumar、Dan Lyth、Sefik Emre Eskimez、Zack Hodari、Cinjon Resnick、Ramon Sanabria、Raven Jiang及Sesame团队全体成员。