Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
9 Voice Personas - Carefully curated voices for different use cases 11 Languages - Multi-language synthesis with multilingual model Streaming Mode - Real-time audio output as it generates Voice Design - Customize with temperature and top_p parameters OpenClaw Integration - Works with OpenClaw's built-in TTS
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 entrypoint voice-ai-tts-sdk.js - Node.js SDK used by the CLI voices.json - Voice definitions used by the CLI voice-ai-tts.yaml - API specification package.json - Skill metadata for tooling
See SECURITY.md for the full security and privacy overview. This skill: Makes outbound HTTPS requests only to https://dev.voice.ai Reads local files: voices.json Writes audio output to the --output path (default output.mp3) Does not execute shell commands and does not modify system configuration files
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: CommandDescription/tts <text>Generate speech with default voice/tts --voice ellie <text>Generate speech with specific voice/tts --stream <text>Generate with streaming mode/voicesList 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...
VoiceIDGenderPersonaBest Forellied1bf0f33-8e0e-4fbf-acf8-45c3c6262513femaleyouthfulVlogs, social contentoliverf9e6a5eb-a7fd-4525-9e92-75125249c933malebritishNarration, tutorialslilith4388040c-8812-42f4-a264-f457a6b2b5b9femalesoftASMR, calm contentsmoothdbb271df-db25-4225-abb0-5200ba1426bcmaledeepDocumentaries, audiobooksshadow72d2a864-b236-402e-a166-a838ccc2c273maledistinctiveGaming, entertainmentsakura559d3b72-3e79-4f11-9b62-9ec702a6c057femaleanimeCharacter voiceszenithed751d4d-e633-4bb0-8f5e-b5c8ddb04402maledeepGaming, dramatic contentfloraa931a6af-fb01-42f0-a8c0-bd14bc302bb1femalecheerfulKids content, upbeatcommanderbd35e4e6-6283-46b9-86b6-7cfa3dd409b9maleheroicGaming, action content
CodeLanguageenEnglishesSpanishfrFrenchdeGermanitItalianptPortugueseplPolishruRussiannlDutchsvSwedishcaCatalan 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: ParameterRangeDefaultDescriptiontemperature0-21.0Higher = more expressive, lower = more consistenttop_p0-10.8Controls 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 --stream # Streaming 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 });
FormatDescriptionUse Casemp3Standard MP3 (32kHz)General usewavUncompressed WAVHigh qualitypcmRaw PCM audioProcessingopus_48000_128Opus 128kbpsStreamingmp3_44100_192High-quality MP3Professional 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: Use streaming for long texts (more efficient) Cache generated audio when possible Use appropriate audio quality for your use case
Get API Key - Sign up and get your key API Documentation - Full API reference Voice Library - Browse all voices API Reference - Endpoint details Pricing - Plans and credits
Declare runtime requirements via metadata.clawdbot so ClawHub shows required env vars
Declare VOICE_AI_API_KEY as primary env var in metadata
Remove voice-sample upload features from the published bundle to reduce privacy risk Require VOICE_AI_API_KEY via environment variable only
Added SECURITY.md and LICENSE.md for provenance and transparency Restricted SDK transport to HTTPS only
Packaging metadata improvements for ClawHub import (bin/files metadata)
Declared required credentials in metadata Documented the production API endpoint domain Renamed voice personas for IP-safe labeling Added voices.json for voice data
Initial release 9 curated voice personas 11 language support Streaming mode Voice design parameters Full SDK with error handling CLI tool
const 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');
ErrorCauseSolutionAuthenticationErrorInvalid API keyCheck your VOICE_AI_API_KEYPaymentRequiredErrorOut of creditsAdd credits at voice.ai/dashboardRateLimitErrorToo many requestsWait and retry, or upgrade planValidationErrorInvalid parametersCheck text length and voice_id Made with โค๏ธ by Nick Gill
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.