Voice.ai Voices
High-quality voice synthesis with 9 personas, 11 languages, and streaming using Voice.ai API.
High-quality voice synthesis with 9 personas, 11 languages, and streaming using Voice.ai API.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Set your API key as an environment variable:
export VOICE_AI_API_KEY="your-api-key"
Get your API key: Voice.ai Dashboard
No install step is required. This skill bundles a Node.js CLI and SDK (no external npm dependencies).
scripts/tts.js - CLI entrypointvoice-ai-tts-sdk.js - Node.js SDK used by the CLIvoices.json - Voice definitions used by the CLIvoice-ai-tts.yaml - API specificationpackage.json - Skill metadata for toolingSee
for the full security and privacy overview.SECURITY.md
This skill:
https://dev.voice.aivoices.json--output path (default output.mp3)The SDK and spec use
https://dev.voice.ai, which is the official Voice.ai production API domain.
OpenClaw can invoke the CLI script directly if your environment exposes
VOICE_AI_API_KEY. Use the /tts commands as configured by your OpenClaw installation.
These chat commands work with OpenClaw:
| Command | Description |
|---|---|
| Generate speech with default voice |
| Generate speech with specific voice |
| Generate with streaming mode |
| List available voices |
Examples:
/tts Hello, welcome to Voice.ai! /tts --voice oliver Good morning, everyone. /tts --voice lilith --stream This is a long story that will stream as it generates...
| Voice | ID | Gender | Persona | Best For |
|---|---|---|---|---|
| ellie | | female | youthful | Vlogs, social content |
| oliver | | male | british | Narration, tutorials |
| lilith | | female | soft | ASMR, calm content |
| smooth | | male | deep | Documentaries, audiobooks |
| shadow | | male | distinctive | Gaming, entertainment |
| sakura | | female | anime | Character voices |
| zenith | | male | deep | Gaming, dramatic content |
| flora | | female | cheerful | Kids content, upbeat |
| commander | | male | heroic | Gaming, action content |
| Code | Language |
|---|---|
| English |
| Spanish |
| French |
| German |
| Italian |
| Portuguese |
| Polish |
| Russian |
| Dutch |
| Swedish |
| Catalan |
Use the multilingual model for non-English languages:
const audio = await client.generateSpeech({ text: 'Bonjour le monde!', voice_id: 'ellie-voice-id', model: 'voiceai-tts-multilingual-v1-latest', language: 'fr' });
Customize voice output with these parameters:
| Parameter | Range | Default | Description |
|---|---|---|---|
| 0-2 | 1.0 | Higher = more expressive, lower = more consistent |
| 0-1 | 0.8 | Controls randomness in speech generation |
Example:
const audio = await client.generateSpeech({ text: 'This will sound very expressive!', voice_id: 'ellie-voice-id', temperature: 1.8, top_p: 0.9 });
Generate audio with real-time streaming (recommended for long texts):
# Stream audio as it generates node scripts/tts.js --text "This is a long story..." --voice ellie --streamStreaming with custom output
node scripts/tts.js --text "Chapter one..." --voice oliver --stream --output chapter1.mp3
SDK streaming:
const stream = await client.streamSpeech({ text: 'Long text here...', voice_id: 'ellie-voice-id' });// Pipe to file stream.pipe(fs.createWriteStream('output.mp3'));
// Or handle chunks stream.on('data', chunk => { // Process audio chunk });
| Format | Description | Use Case |
|---|---|---|
| Standard MP3 (32kHz) | General use |
| Uncompressed WAV | High quality |
| Raw PCM audio | Processing |
| Opus 128kbps | Streaming |
| High-quality MP3 | Professional |
See
voice-ai-tts-sdk.js for all format options.
# Set API key export VOICE_AI_API_KEY="your-key-here"Generate speech
node scripts/tts.js --text "Hello world!" --voice ellie
Choose different voice
node scripts/tts.js --text "Good morning!" --voice oliver --output morning.mp3
Use streaming for long texts
node scripts/tts.js --text "Once upon a time..." --voice lilith --stream
Show help
node scripts/tts.js --help
voice-ai-tts/ ├── SKILL.md # This documentation ├── README.md # Quick start ├── CHANGELOG.md # Version history ├── LICENSE.md # MIT license ├── SECURITY.md # Security & privacy notes ├── voices.json # Voice definitions ├── voice-ai-tts.yaml # OpenAPI specification ├── voice-ai-tts-sdk.js # JavaScript/Node.js SDK ├── package.json # OpenClaw metadata ├── scripts/ │ └── tts.js # CLI tool
Voice.ai uses a credit-based system. Check your usage:
// The SDK tracks usage via API responses const voices = await client.listVoices(); // Check response headers for rate limit info
Tips to reduce costs:
metadata.clawdbot so ClawHub shows required env varsVOICE_AI_API_KEY as primary env var in metadataVOICE_AI_API_KEY via environment variable onlySECURITY.md and LICENSE.md for provenance and transparencyvoices.json for voice dataconst VoiceAI = require('./voice-ai-tts-sdk'); const client = new VoiceAI(process.env.VOICE_AI_API_KEY);// List voices const voices = await client.listVoices({ limit: 10 });
// Get voice details const voice = await client.getVoice('voice-id');
// Generate speech const audio = await client.generateSpeech({ text: 'Hello, world!', voice_id: 'voice-id', audio_format: 'mp3' });
// Generate to file await client.generateSpeechToFile( { text: 'Hello!', voice_id: 'voice-id' }, 'output.mp3' );
// Stream speech const stream = await client.streamSpeech({ text: 'Long text...', voice_id: 'voice-id' });
// Delete voice await client.deleteVoice('voice-id');
| Error | Cause | Solution |
|---|---|---|
| Invalid API key | Check your |
| Out of credits | Add credits at voice.ai/dashboard |
| Too many requests | Wait and retry, or upgrade plan |
| Invalid parameters | Check text length and voice_id |
Made with ❤️ by Nick Gill
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.