Pocket Tts
by @sherajdev
Generate high-quality English speech offline on CPU using 8 built-in voices or custom voice cloning with Kyutai's Pocket TTS model.
clawhub install pocket-ttsπ About This Skill
Pocket TTS Skill
Fully local, offline text-to-speech using Kyutai's Pocket TTS model. Generate high-quality audio from text without any API calls or internet connection. Features 8 built-in voices, voice cloning support, and runs entirely on CPU.
Features
Installation
# 1. Accept the model license on Hugging Face
https://huggingface.co/kyutai/pocket-tts
2. Install the package
pip install pocket-ttsOr use uv for automatic dependency management
uvx pocket-tts generate "Hello world"
Usage
CLI
# Basic usage
pocket-tts "Hello, I am your AI assistant"With specific voice
pocket-tts "Hello" --voice alba --output hello.wavWith custom voice file (voice cloning)
pocket-tts "Hello" --voice-file myvoice.wav --output output.wavAdjust speed
pocket-tts "Hello" --speed 1.2Start local server
pocket-tts --serveList available voices
pocket-tts --list-voices
Python API
from pocket_tts import TTSModel
import scipy.io.wavfileLoad model
tts_model = TTSModel.load_model()Get voice state
voice_state = tts_model.get_state_for_audio_prompt(
"hf://kyutai/tts-voices/alba-mackenna/casual.wav"
)Generate audio
audio = tts_model.generate_audio(voice_state, "Hello world!")Save to WAV
scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy())Check sample rate
print(f"Sample rate: {tts_model.sample_rate} Hz")
Available Voices
| Voice | Description | |-------|-------------| | alba | Casual female voice | | marius | Male voice | | javert | Clear male voice | | jean | Natural male voice | | fantine | Female voice | | cosette | Female voice | | eponine | Female voice | | azelma | Female voice |
Or use --voice-file /path/to/wav.wav for custom voice cloning.
Options
| Option | Description | Default |
|--------|-------------|---------|
| text | Text to convert | Required |
| -o, --output | Output WAV file | output.wav |
| -v, --voice | Voice preset | alba |
| -s, --speed | Speech speed (0.5-2.0) | 1.0 |
| --voice-file | Custom WAV for cloning | None |
| --serve | Start HTTP server | False |
| --list-voices | List all voices | False |
Requirements
Notes
Links
π‘ Examples
CLI
# Basic usage
pocket-tts "Hello, I am your AI assistant"With specific voice
pocket-tts "Hello" --voice alba --output hello.wavWith custom voice file (voice cloning)
pocket-tts "Hello" --voice-file myvoice.wav --output output.wavAdjust speed
pocket-tts "Hello" --speed 1.2Start local server
pocket-tts --serveList available voices
pocket-tts --list-voices
Python API
from pocket_tts import TTSModel
import scipy.io.wavfileLoad model
tts_model = TTSModel.load_model()Get voice state
voice_state = tts_model.get_state_for_audio_prompt(
"hf://kyutai/tts-voices/alba-mackenna/casual.wav"
)Generate audio
audio = tts_model.generate_audio(voice_state, "Hello world!")Save to WAV
scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy())Check sample rate
print(f"Sample rate: {tts_model.sample_rate} Hz")
βοΈ Configuration
| Option | Description | Default |
|--------|-------------|---------|
| text | Text to convert | Required |
| -o, --output | Output WAV file | output.wav |
| -v, --voice | Voice preset | alba |
| -s, --speed | Speech speed (0.5-2.0) | 1.0 |
| --voice-file | Custom WAV for cloning | None |
| --serve | Start HTTP server | False |
| --list-voices | List all voices | False |