csm README

The project's README from github.com/SesameAILabs/csm. As one markdown file: README.md.

CSM

2025/05/20 - CSM is availabile natively in Hugging Face Transformers 🤗 as of version 4.52.1, more info available in our model repo

2025/03/13 - We are releasing the 1B CSM variant. The checkpoint is hosted on Hugging Face.


CSM (Conversational Speech Model) is a speech generation model from Sesame that generates RVQ audio codes from text and audio inputs. The model architecture employs a Llama backbone and a smaller audio decoder that produces Mimi audio codes.

A fine-tuned variant of CSM powers the interactive voice demo shown in our blog post.

A hosted Hugging Face space is also available for testing audio generation.

Requirements

Setup

git clone [email protected]:SesameAILabs/csm.git
cd csm
python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Disable lazy compilation in Mimi
export NO_TORCH_COMPILE=1

# You will need access to CSM-1B and Llama-3.2-1B
huggingface-cli login

Windows Setup

The triton package cannot be installed in Windows. Instead use pip install triton-windows.

Quickstart

This script will generate a conversation between 2 characters, using a prompt for each character.

python run_csm.py

Usage

If you want to write your own applications with CSM, the following examples show basic usage.

Generate a sentence

This will use a random speaker identity, as no prompt or context is provided.

from generator import load_csm_1b
import torchaudio
import torch

if torch.backends.mps.is_available():
    device = "mps"
elif torch.cuda.is_available():
    device = "cuda"
else:
    device = "cpu"

generator = load_csm_1b(device=device)

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)

Generate with context

CSM sounds best when provided with context. You can prompt or provide context to the model using a Segment for each speaker's utterance.

NOTE: The following example is instructional and the audio files do not exist. It is intended as an example for using context with CSM.

from generator import 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)

FAQ

Does this model come with any voices?

The model open-sourced here is a base generation model. It is capable of producing a variety of voices, but it has not been fine-tuned on any specific voice.

Can I converse with the model?

CSM is trained to be an audio generation model and not a general-purpose multimodal LLM. It cannot generate text. We suggest using a separate LLM for text generation.

Does it support other languages?

The model has some capacity for non-English languages due to data contamination in the training data, but it likely won't do well.

Misuse and abuse ⚠️

This project provides a high-quality speech generation model for research and educational purposes. While we encourage responsible and ethical use, we explicitly prohibit the following:

By using this model, you agree to comply with all applicable laws and ethical guidelines. We are not responsible for any misuse, and we strongly condemn unethical applications of this technology.


Authors

Johan Schalkwyk, Ankit Kumar, Dan Lyth, Sefik Emre Eskimez, Zack Hodari, Cinjon Resnick, Ramon Sanabria, Raven Jiang, and the Sesame team.

csm (SesameAILabs/csm)

Searching Database…

14.7K ·GitHub
Что это такое?CSM (Conversational Speech Model) — это модель генерации речи от Sesame, которая превращает текст и аудио на входе в озвученную речь, создавая RVQ-аудиокоды. Она использует основу на Llama и меньший аудиодекодер.
Это чат-бот или просто генератор голоса?Это исключительно модель генерации речи, а не разговорный чат-бот: она не умеет генерировать текст, поэтому, если нужен настоящий диалог, её нужно сочетать с отдельной LLM.
Как это запустить?Склонируйте репозиторий и запустите скрипт быстрого старта, который генерирует диалог между двумя персонажами по текстовым промптам. Для своих задач вызывайте модель напрямую: она сгенерирует одно предложение или озвучит речь с дополнительным контекстом через объекты Segment.
Что нужно установить перед запуском?Видеокарту с поддержкой CUDA (проверено на CUDA 12.4/12.6), рекомендуемый Python 3.10, ffmpeg для некоторых операций с аудио и доступ к чекпоинтам Llama-3.2-1B и CSM-1B на Hugging Face. На Windows нужно использовать pip install triton-windows вместо обычного пакета triton.
Есть ли готовые голоса или поддержка других языков?Нет. Это базовая модель, не дообученная на какой-либо конкретный голос, поэтому без промпта или контекста вы получите случайный голос. Языки, отличные от английского, поддерживаются слабо: они попали в данные случайно, а не в результате целенаправленного обучения.
Действительно ли нужна отдельная видеокарта для работы?Да, проект требует видеокарту с поддержкой CUDA; проверено только на CUDA 12.4 и 12.6.
Зачем CSM использует основу на Llama для генерации аудио?CSM сочетает основу на Llama с меньшим аудиодекодером, который выдаёт аудиокоды Mimi. Это позволяет обуславливать генерацию речи текстом и предыдущим аудиоконтекстом, предсказывая токены так же, как это делает языковая модель.
Можно ли с помощью CSM клонировать голос реального человека?Нет. Проект прямо запрещает выдавать себя за другого человека и мошенничество: генерация речи, имитирующей реального человека без его согласия, нарушает заявленные правила использования.
Можно ли попробовать CSM без локальной установки?Да, для тестирования генерации аудио доступно размещённое на Hugging Face пространство (Space). А дообученная версия CSM работает в интерактивном голосовом демо из блога Sesame.
What are similar projects?bark, dia, ChatTTS, Speech, fish-speech, DramaBox, FireRedAudio, VoxCPM
Size
<0.1 MB
Stars
14.7K
Updated
CommitMay 27
Age
1y
Commits · 90 Days