Silencio-2

Small English text-to-speech with emotions, sounds and voice cloning.

Silencio-2 turns English text into 24 kHz speech in any voice, from a few seconds of reference audio. You direct it inside the text: put [sigh] where a sigh belongs and <whisper> where the delivery changes. It runs about 20x faster than real time on four CPU threads of an Apple M4, and all weights fit in one 112 MB file.

tts.generate("What a long day. [sigh]")
tts.generate("<whisper> Keep your voice down.")

Silencio-2 is a fine-tune of Pocket TTS 18M by Kyutai, retrained on a custom dataset to follow tags. It has its own inference package, silencio2, so pip install pocket-tts is not needed.

Open In Colab

Tags

Sounds, placed where they happen Emotions, apply to the text after them
[laugh] [sigh] [gasp] [cough] [clear_throat] <happy> <sad> <angry> <fear> <surprised> <whisper>

An unknown tag raises an error instead of being read aloud.

Quickstart

pip install -r requirements.txt

Run this from a clone of the repo, or add the snapshot folder to sys.path:

from silencio2 import Silencio2TTS

tts = Silencio2TTS.from_pretrained()  # or a local folder; add quantize=True for int8 on CPU

# A bundled voice
tts.save("hello.wav", "Hi, I'm Silencio.", voice="260")

# Sounds go right into the text
tts.save("sigh.wav", "What a long day. [sigh]")

# An emotion for the whole text, or several inside it: each holds until the next one
tts.save("happy.wav", "We did it, we actually won!", emotion="happy")
tts.save("mixed.wav", "<whisper> Keep your voice down. <angry> I said stop!")

# Any voice from a short clean clip
tts.save("clone.wav", "Hi! This is my voice.", voice="my_clip.wav")

# Streaming: float32 chunks at tts.sample_rate
for chunk in tts.stream("A longer text, played as it is generated."):
    ...

wav = tts.generate("The same line, the same take.", seed=7)  # a 1-D float32 tensor

generate raises quiet takes to speech level, since a true whisper comes out about ten times quieter than speech. Pass normalize=False to keep the raw level. stream does not change the level.

Bundled voices: 1320, 2094, 260, 3575, 5639, 6930, 7127, 7729 (tts.voices).

Samples

Text Audio
Hi, I'm Silencio. hi.wav
What a long day. [sigh] long_day_sigh.wav
<whisper> Keep your voice down. whisper.wav
Hi! This is my voice. (voice 7729) cloned_voice.wav
[sigh] Finally... a voice that breathes. finally_sigh.wav

Model details

  • Model type: a flow-based language model that predicts latents of the Mimi codec from text and a voice prompt, one step per frame.
  • Size: 27.9M parameters in model.safetensors: 18.2M generate speech, and the rest is the Mimi encoder that voice cloning needs.
  • Audio: 24 kHz mono, streamed as it is generated.
  • Language: English.
  • Text: a sentencepiece tokenizer with 11 extra tokens, one per tag.

How it was made

We extended the Pocket TTS 18M tokenizer and text table with the tag tokens, then fine-tuned the model on a custom dataset with Kyutai's training code. A tag was removed from a fifth of the training texts, and the voice prompt of tagged clips was often a neutral take of the same voice, so that the tag, not the prompt, sets the delivery. A final distillation stage bakes classifier-free guidance into the weights, so inference needs one pass per frame.

Limitations

  • The delivery changes from take to take: try a few seeds. The same tag can come out strong in one take and faint in another.
  • <whisper> is the least steady tag. It works best on short lines, and varies by voice.
  • Check important lines by ear.
  • English only.

Responsible use

Clone a voice only with its owner's permission. Do not use Silencio-2 to impersonate people or to deceive. Say that speech is synthetic where listeners could take it for real.

Files

File What it is
model.safetensors the weights
tokenizer.model the tokenizer with the tag tokens
config.yaml the model configuration
silencio2/ the inference package; silencio2/core is adapted from Pocket TTS
voices/ reference clips of the bundled voices
samples/ the samples above
NOTICE.md third-party notices

License

The weights are released under CC-BY-4.0, the license of Pocket TTS. The code in silencio2/core is MIT. See NOTICE.md.

Citation

@misc{silencio22026,
  title  = {Silencio-2: Small English Text-to-Speech with Emotions, Sounds and Voice Cloning},
  author = {{BlueRose Labs}},
  year   = {2026},
  url    = {https://huggingface.co/BlueRoseLabs/Silencio-2}
}
Downloads last month
59
Safetensors
Model size
27.9M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for BlueRoseLabs/Silencio-2

Finetuned
(55)
this model

Space using BlueRoseLabs/Silencio-2 1