Hlas

▶︎  Try it live: vojtechcekal.com/hlas

Live demo: vojtechcekal.com/hlas

Demo | Hugging Face | Runtime | License: BreezeBlue Research and Non-Commercial

Hlas

Hlas (Czech for voice) is a 3.5B-parameter expressive text-to-speech model with zero-shot voice cloning and inline performance tags. At a size that runs on a single 12 GB GPU, it covers a wide range of emotions, deliveries, pauses and non-verbal sounds with studio-quality output, in English, Mandarin and a broad set of further languages. The text carries both the words and the performance: emotions, deliveries, pauses, laughs, sighs, accents and characters are written in square brackets at the position where they should happen.

  • 3.5B parameters: 1B text encoder, 1.7B acoustic backbone, depth decoder over 16 codebooks (Breeze TTS 2 architecture)
  • Range at this size: dozens of emotions and deliveries, 25+ vocalizations, accents and character voices, free-form directions, all from one checkpoint
  • Inline tags [excited], [whispers], [laughs], [long pause], [British accent]: positional, combinable, free-form descriptions allowed
  • Zero-shot voice cloning from a 3 to 15 s reference clip and its transcript
  • Languages: English and Mandarin first, then Spanish, French, Portuguese, German, Russian, Japanese, Indonesian, Arabic, Italian, Turkish, Vietnamese, Persian, Korean, Polish, Dutch, Hindi and more. Tags are written in English in every language
  • 24 kHz mono output at a 12.5 Hz acoustic frame rate, streaming runtime with an OpenAI-style endpoint
  • Standard checkpoint layout: loads in the official Breeze TTS 2 runtime unchanged

Launch

git clone https://github.com/breezeblue-ai/breeze-tts.git && cd breeze-tts
pip install -r requirements.txt
hf download cekal/hlas-1 --local-dir ../hlas-1

Single file:

python infer.py ../hlas-1 \
  --ref-audio reference.wav \
  --ref-text "The exact transcript of the reference clip." \
  --text "[excited] Okay, listen to this! [laughs] It actually works. [whispers] Don't tell anyone yet." \
  --output hlas.wav --fast-all

Streaming server:

python -m breeze_infer.api cekal/hlas-1 --host 0.0.0.0 --port 7860 --fast-all
curl -X POST http://127.0.0.1:7860/v1/audio/speech \
  -F "ref_audio=@reference.wav" \
  -F "ref_text=The exact transcript of the reference clip." \
  -F "text=[sighs] Fine. If we miss it, it's on you. [laughs] Well, maybe that's fair." \
  -F "seed=42" \
  --output out.pcm

The response streams mono 24 kHz signed 16-bit PCM. A 12 GB GPU runs eager mode, a 24 GB GPU the --fast-all path.

Tags

Family Examples
Emotion [excited] [happy] [playful] [proud] [amazed] [angry] [sarcastic] [menacing] [anxious] [nervous] [scared] [sad] [tired] [bored] [confused]
Delivery [whispers] [softly] [quietly] [hushed] [barely audible] [shouts] [booming] [voice breaking] [singing]
Vocalization [laughs] [chuckling] [giggles] [sighs] [exhales] [gasps] [crying] [sniffling] [clears throat] [coughing] [yawning] [scoffing] [humming]
Pacing [slowly] [rushed] [pause] [long pause] [drawn out] [snappy]
Character and accent [British accent] [French accent] [Australian accent] [Irish accent] [pirate voice] [robot voice] [like a sports commentator] [like a nature documentary narrator]
Free-form [whispering, playful] [out of breath after running up the stairs] [a tired detective who has heard it all before] [starting calm, then losing patience]

A tag applies from the position where it appears. Several tags can share a position ([whispers] [nervous]), and a tag can be any short description. Punctuation is part of the performance: ellipses hesitate, capitals stress, exclamation marks add energy.

[British accent] [sarcastic] Oh, brilliant. Another meeting that could have been an email.
[slowly] [tired] Just... send me the notes. [yawning] Tomorrow.
[nervous, trying to sound confident] So, um, the numbers are, well, [clears throat] they are mostly fine.
[starting calm, then losing patience] I said the numbers are fine. The numbers are FINE. [shouts] Fine!

Voice cloning

The reference is 3 to 15 seconds of clean speech plus its exact transcript. The output keeps the reference voice's timbre, accent and age, and every tag still applies. Without a reference, a voice can be described in text instead: --instruction "A calm, low male voice with a slight Irish accent." --cfg-scale 4.

Links

License

This model is licensed under the BreezeBlue Research and Non-Commercial License. The inference runtime is Apache-2.0.

Downloads last month
7
Safetensors
Model size
3B params
Tensor type
F32
·
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for cekal/hlas-1

Finetuned
(9)
this model