Text to Speech
One API Call
Simplified
Create voice apps, audiobooks and accessible content with our text to speech API. 600+ natural voices in 142 languages for developers and businesses.
API PRICING
Simple, Transparent Pricing
Industry-Leading Value
Get the best value in the industry with our straightforward pricing. Perfect for businesses of all sizes, our API offers premium text-to-speech conversion at just $0.000025 per character. Scale your voice content without breaking the bank.
- 50,000 Characters per $1
- High-Quality TTS Voices
- Fast TTS Speed
- Commercial Rights
- Simple API Integration
- 600 Voices 142 Languages
For Developers
Why Developers Choose Verbatik's TTS API
Superior AI Voice API
Access 600+ natural-sounding voices powered by advanced voice AI technology
Lightning-Fast Processing
Convert millions of characters in seconds with our optimized text to voice API
142 Languages & Dialects
Reach global audiences with our comprehensive text to audio API
Simple Integration
Implement our voice AI API in just a few lines of code with clear documentation
Enterprise Scalability
Our text to speech AI API handles everything from small projects to enterprise needs
Commercial Usage Rights
Full rights to use generated audio in your commercial products
How to Get Started with Our API
Step 1
Top Up with Credits
Choose the right amount that fits your needs. You can get 10.000 Free Characters for AI voice generator API if you book a meeting with us.
Start NowStep 2
Generate API key
Access your dashboard to create your unique secret key for secure voice.ai API authentication.
Generate Text to SpeechStep 3
Synthesize speech
Integrate the text to audio API with just a few lines of code and transform your text into natural speech.
Get Started NowText-to-Speech API Documentation
Complete guide to integrating TTS API with 568 voices across multiple providers
Quick Navigation
VerbatikText-to-Speech API Overview
High-quality neural text-to-speech with multiple voices
The Verbatik Text-to-Speech API provides high-quality neural voice synthesis Convert text to natural-sounding speech with 568 voices across 142 languages.
Key Features
- 568 neural voices
- 142 supported languages
- SSML support for advanced control
- Multiple provider support
Technical Specs
- MP3 output format
- 24kHz sample rate
- Character-based billing
- S3 storage integration
Voice Library
API Endpoints
/api/v1/tts
Synthesize Speech
Convert text to speech using neural voices. Supports both plain text and SSML input with optional audio storage.
Request Headers
Header | Required | Description |
---|---|---|
Authorization | Yes | Bearer token for authentication |
Content-Type | Yes | text/plain or application/ssml+xml |
X-Voice-ID | Optional | Voice to use (default: Matthew) |
X-Store-Audio | Optional | Store audio in S3 and return URL (true/false) |
Example Request (Plain Text)
curl -X POST "https://api.verbatik.com/api/v1/tts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: text/plain" \
-H "X-Voice-ID: Sarah" \
-H "X-Store-Audio: true" \
-d "Hello, this is a test of our text-to-speech API."
Example Request (SSML)
curl -X POST "https://api.verbatik.com/api/v1/tts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/ssml+xml" \
-H "X-Voice-ID: Emma" \
-H "X-Store-Audio: true" \
-d '<speak version="1.0">
Hello, <break time="500ms"/> this is a <emphasis level="strong">test</emphasis>
of our text-to-speech API with <prosody rate="slow">SSML support</prosody>.
</speak>'
Example Response (Stored Audio)
{
"success": true,
"audio_url": "https://s3.eu-west-2.amazonaws.com/speak.verbatik.com/audio/123/uuid-filename.mp3"
}
/api/v1/voices
Get Available Voices
Retrieve the list of all available voices with their details including name, gender, and language.
Example Request
curl -X GET "https://api.verbatik.com/api/v1/voices" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Example Response
[
{
"name": "Sarah",
"gender": "Female",
"language_code": "en-US"
},
{
"name": "Matthew",
"gender": "Male",
"language_code": "en-US"
},
{
"name": "Emma",
"gender": "Female",
"language_code": "en-US"
}
]
Integration Examples
Ready-to-use code examples for popular programming languages and frameworks.
JavaScript/Node.js Example
async function synthesizeSpeech(text, voice, apiToken, storeAudio = true) {
try {
const response = await fetch('https://api.verbatik.com/api/v1/tts', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiToken}`,
'Content-Type': 'text/plain',
'X-Voice-ID': voice,
'X-Store-Audio': storeAudio.toString()
},
body: text
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
if (storeAudio) {
const result = await response.json();
console.log('Audio URL:', result.audio_url);
return result;
} else {
// Direct audio stream
const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
return { audio_url: audioUrl };
}
} catch (error) {
console.error('TTS synthesis failed:', error);
throw error;
}
}
// Usage example
synthesizeSpeech(
'Hello, this is a test of our text-to-speech API.',
'Sarah',
'YOUR_API_TOKEN'
).then(result => {
console.log('Success:', result);
}).catch(error => {
console.error('Error:', error);
});
Python Example
import requests
import json
def synthesize_speech(text, voice="Sarah", api_token="YOUR_API_TOKEN", store_audio=True):
url = "https://api.verbatik.com/api/v1/tts"
headers = {
"Authorization": f"Bearer {api_token}",
"Content-Type": "text/plain",
"X-Voice-ID": voice,
"X-Store-Audio": str(store_audio).lower()
}
try:
response = requests.post(url, headers=headers, data=text)
response.raise_for_status()
if store_audio:
result = response.json()
print(f"Audio URL: {result['audio_url']}")
return result
else:
# Direct audio content
return {"audio_content": response.content}
except requests.exceptions.RequestException as e:
print(f"TTS synthesis failed: {e}")
raise
# Usage example
result = synthesize_speech(
"Hello, this is a test of our text-to-speech API.",
"Sarah",
"YOUR_API_TOKEN"
)
print("Success:", result)
PHP Example
<?php
function synthesizeSpeech($text, $voice = 'Sarah', $apiToken = 'YOUR_API_TOKEN', $storeAudio = true) {
$url = 'https://api.verbatik.com/api/v1/tts';
$headers = [
'Authorization: Bearer ' . $apiToken,
'Content-Type: text/plain',
'X-Voice-ID: ' . $voice,
'X-Store-Audio: ' . ($storeAudio ? 'true' : 'false')
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $text);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
throw new Exception("HTTP error! status: $httpCode");
}
if ($storeAudio) {
$result = json_decode($response, true);
echo "Audio URL: " . $result['audio_url'] . "\n";
return $result;
} else {
return ['audio_content' => $response];
}
}
// Usage example
try {
$result = synthesizeSpeech(
'Hello, this is a test of our text-to-speech API.',
'Sarah',
'YOUR_API_TOKEN'
);
echo "Success: " . json_encode($result) . "\n";
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>
cURL Example
# Basic text-to-speech request
curl -X POST "https://api.verbatik.com/api/v1/tts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: text/plain" \
-H "X-Voice-ID: Sarah" \
-H "X-Store-Audio: true" \
-d "Hello, this is a test of our text-to-speech API."
# SSML request
curl -X POST "https://api.verbatik.com/api/v1/tts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/ssml+xml" \
-H "X-Voice-ID: Emma" \
-H "X-Store-Audio: true" \
-d '<speak version="1.0">
Hello, <break time="500ms"/> this is a <emphasis level="strong">test</emphasis>
of our text-to-speech API with <prosody rate="slow">SSML support</prosody>.
</speak>'
# Get available voices
curl -X GET "https://api.verbatik.com/api/v1/voices" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Available Voices
Browse our collection of 568 neural voices across 142 languages from multiple providers.
Voice Browser
Use the Voice Library to browse, filter, and test all available voices with audio previews.
Troubleshooting & Error Handling
HTTP Error Codes
Code | Error Type | Description | Solution |
---|---|---|---|
400 | Bad Request | Invalid SSML or request format | Check SSML syntax and headers |
401 | Unauthorized | Missing or invalid API token | Verify Authorization header |
402 | Payment Required | Insufficient character balance | Top up account or reduce text length |
422 | Unprocessable Entity | Validation errors | Check request parameters |
429 | Too Many Requests | Rate limit exceeded | Wait before making more requests |
500 | Internal Server Error | Service unavailable | Try again later or contact support |
Common Issues & Solutions
"Invalid SSML format"
- Ensure SSML starts with <speak> and ends with </speak>
- Check for properly closed tags
- Validate XML syntax
- Use proper Content-Type header for SSML
"Voice not found"
- Use the /api/v1/voices endpoint to get valid voice names
- Check voice name spelling and case sensitivity
- Ensure the voice supports the target language
- Try with a default voice like "Matthew" or "Sarah"
"Audio quality issues"
- Use neural voices for best quality
- Check text for special characters or formatting
- Use SSML for pronunciation control
- Try different voices for comparison
SSML Quick Reference
Common SSML Tags
Example Usage
<speak version="1.0">
Hello <break time="1s"/>
<emphasis level="strong">world</emphasis>
</speak>
Need Help?
Our support team is here to help you integrate the TTS API successfully.
Voice Cloning API Documentation
Advanced AI-powered multilingual voice cloning technology
Quick Navigation
Voice Cloning API Overview
Advanced AI-powered multilingual voice cloning technology
The Voice Cloning API provides state-of-the-art text-to-speech voice cloning capabilities powered by advanced AI technology. Clone any voice using a sample audio file and generate speech in multiple languages with remarkable accuracy and naturalness.
Key Features
- 14 supported languages
- High-quality voice cloning
- Multiple audio formats
- Voice enhancement options
Technical Specs
- Max text: 3,000 characters
- Max audio: 50MB
- 2x character billing rate
- S3 storage integration
API Endpoints
/api/v1/voice-cloning
Clone Voice
Clone a voice using provided text and speaker audio. Supports both file uploads and URL-based audio inputs.
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
text | string | Yes | Text to synthesize (max 3000 characters) |
language | string | Yes | Target language code (see supported languages) |
speaker_audio | file | Yes* | Audio file for voice cloning (max 50MB) |
speaker_audio_url | string | Yes* | URL to audio file for voice cloning |
cleanup_voice | boolean | No | Apply denoising to speaker audio (default: true) |
*Either speaker_audio or speaker_audio_url is required.
Example Request (cURL)
curl -X POST "https://api.verbatik.com/api/v1/voice-cloning" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "text=Hello, this is a test of voice cloning technology." \
-F "language=en" \
-F "speaker_audio=@/path/to/speaker.wav" \
-F "cleanup_voice=true"
Example Response
{
"success": true,
"audio_url": "https://s3.eu-west-2.amazonaws.com/speak.verbatik.com/voice-cloning/uuid-filename.wav",
"characters_used": 94,
"remaining_balance": 9906,
"language": "en"
}
/api/v1/voice-cloning/languages
Get Supported Languages
Retrieve the list of supported languages for voice cloning.
Example Request
curl -X GET "https://api.verbatik.com/api/v1/voice-cloning/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Example Response
{
"success": true,
"languages": {
"en": "English 🇺🇸",
"fr": "French 🇫🇷",
"de": "German 🇩🇪",
"es": "Spanish 🇪🇸",
"it": "Italian 🇮🇹",
"pt": "Portuguese 🇵🇹",
"cs": "Czech 🇨🇿",
"pl": "Polish 🇵🇱",
"ru": "Russian 🇷🇺",
"nl": "Dutch 🇳🇱",
"tr": "Turkish 🇹🇷",
"ar": "Arabic 🇦🇪",
"zh-cn": "Mandarin Chinese 🇨🇳",
"hi": "Hindi 🇮🇳"
}
}
/api/v1/voice-cloning/info
Get Service Information
Get detailed information about the voice cloning service capabilities and limitations.
Example Request
curl -X GET "https://api.verbatik.com/api/v1/voice-cloning/info" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Example Response
{
"success": true,
"service": "Verbatik Voice Cloning",
"description": "Advanced AI-powered multilingual voice cloning technology",
"supported_formats": ["wav", "mp3", "m4a", "ogg", "flv"],
"max_text_length": 3000,
"max_audio_size": "50MB",
"character_rate": "2x (voice cloning uses double character rate)",
"min_audio_duration": "6 seconds recommended",
"languages": { ... }
}
Integration Examples
Ready-to-use code examples for popular programming languages and frameworks.
JavaScript/Node.js Example
const FormData = require('form-data');
const fs = require('fs');
const fetch = require('node-fetch');
async function cloneVoice(text, audioFile, language, apiToken) {
const formData = new FormData();
formData.append('text', text);
formData.append('language', language);
formData.append('speaker_audio', fs.createReadStream(audioFile));
formData.append('cleanup_voice', 'true');
try {
const response = await fetch('https://api.verbatik.com/api/v1/voice-cloning', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiToken}`,
...formData.getHeaders()
},
body: formData
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const result = await response.json();
console.log('Voice cloning successful:', result);
return result;
} catch (error) {
console.error('Voice cloning failed:', error);
throw error;
}
}
// Usage example
cloneVoice(
'Hello, this is a test of voice cloning technology.',
'/path/to/speaker.wav',
'en',
'YOUR_API_TOKEN'
).then(result => {
console.log('Audio URL:', result.audio_url);
}).catch(error => {
console.error('Error:', error);
});
Python Example
import requests
def clone_voice(text, audio_file_path, language, api_token):
url = "https://api.verbatik.com/api/v1/voice-cloning"
headers = {
"Authorization": f"Bearer {api_token}"
}
files = {
'speaker_audio': open(audio_file_path, 'rb')
}
data = {
'text': text,
'language': language,
'cleanup_voice': 'true'
}
try:
response = requests.post(url, headers=headers, files=files, data=data)
response.raise_for_status()
result = response.json()
print(f"Voice cloning successful: {result}")
return result
except requests.exceptions.RequestException as e:
print(f"Voice cloning failed: {e}")
raise
finally:
files['speaker_audio'].close()
# Usage example
result = clone_voice(
"Hello, this is a test of voice cloning technology.",
"/path/to/speaker.wav",
"en",
"YOUR_API_TOKEN"
)
print(f"Audio URL: {result['audio_url']}")
PHP Example
<?php
function cloneVoice($text, $audioFilePath, $language, $apiToken) {
$url = 'https://api.verbatik.com/api/v1/voice-cloning';
$postFields = [
'text' => $text,
'language' => $language,
'cleanup_voice' => 'true',
'speaker_audio' => new CURLFile($audioFilePath)
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiToken
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
throw new Exception("HTTP error! status: $httpCode");
}
$result = json_decode($response, true);
echo "Voice cloning successful: " . json_encode($result) . "\n";
return $result;
}
// Usage example
try {
$result = cloneVoice(
'Hello, this is a test of voice cloning technology.',
'/path/to/speaker.wav',
'en',
'YOUR_API_TOKEN'
);
echo "Audio URL: " . $result['audio_url'] . "\n";
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>
cURL Example
# Voice cloning with file upload
curl -X POST "https://api.verbatik.com/api/v1/voice-cloning" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "text=Hello, this is a test of voice cloning technology." \
-F "language=en" \
-F "speaker_audio=@/path/to/speaker.wav" \
-F "cleanup_voice=true"
# Voice cloning with audio URL
curl -X POST "https://api.verbatik.com/api/v1/voice-cloning" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "text=Hello, this is a test of voice cloning technology." \
-F "language=en" \
-F "speaker_audio_url=https://example.com/speaker.wav" \
-F "cleanup_voice=true"
# Get supported languages
curl -X GET "https://api.verbatik.com/api/v1/voice-cloning/languages" \
-H "Authorization: Bearer YOUR_API_TOKEN"
# Get service information
curl -X GET "https://api.verbatik.com/api/v1/voice-cloning/info" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Supported Languages
The Voice Cloning API supports 14 languages for high-quality voice synthesis.
Troubleshooting & Error Handling
HTTP Error Codes
Code | Error Type | Description | Solution |
---|---|---|---|
400 | Bad Request | Invalid request parameters | Check parameter format and values |
401 | Unauthorized | Missing or invalid authentication | Verify API token in Authorization header |
402 | Payment Required | Insufficient character balance | Top up your account or reduce text length |
413 | Payload Too Large | Audio file exceeds size limit | Reduce file size to under 50MB |
422 | Unprocessable Entity | Validation errors | Check the errors field in response |
429 | Too Many Requests | Rate limit exceeded | Wait before making more requests |
500 | Internal Server Error | Service unavailable | Try again later or contact support |
Common Issues & Solutions
"Invalid speaker audio file"
- Check file format (must be wav, mp3, m4a, ogg, or flv)
- Ensure file size is under 50MB
- Verify file is not corrupted
- Make sure the file contains actual audio data
"Voice cloning timed out"
- The service has a 5-minute timeout
- Try with shorter text or smaller audio files
- Check if the audio file is too large or complex
- Retry the request after a few minutes
"Insufficient character balance"
- Voice cloning uses 2x character rate
- Check user's available character balance
- Consider upgrading user's plan
- Reduce text length to fit within available credits
"Unsupported language"
- Use the /voice-cloning/languages endpoint to get supported languages
- Ensure language code is lowercase (e.g., 'en', not 'EN')
- Check for typos in the language code
- Refer to the supported languages section above
Security Best Practices
API Token Security
Store API tokens securely and never expose them in client-side code
HTTPS Only
Always use HTTPS for API requests to ensure data encryption
Need Help?
Our support team is here to help you integrate the Voice Cloning API successfully.
Integrate with Your Favorite Tools
Connect Verbatik's powerful Text to Speech API with thousands of apps through Zapier's automation platform.
Instant conversion of text into speech
Effortlessly transform text to natural-sounding speech with our innovative instant conversion tool
Over 600+ Speech Voices
Choose from 600+ realistic AI voices for diverse text-to-speech conversions
Supports 142 languages and accents
Providing broad linguistic diversity with support for 142 languages and accents
Allows customization of the voices
Customization of AI voices including rate, pitch, volume, and pronunciations
Download options in MP3 and WAV audio file formats
Offering audio downloads in high-quality MP3 and WAV formats for versatile usage
Commercial and broadcast rights
Commercial and broadcast rights available for wide-reaching audio distribution
How Verbatik can Help You
AI Voices in Every Language and Accent in the World



Testimonials
Hear from our customers

Ricky G.
Content Creator
I liked that verbatik has some of the most realistic voices on the market. There is a large amount and many ways to customize all of the AI voices.

Juan Carlos V.
Media Production
I've found Verbatik to be a game-changer in the realm of text-to-speech. The platform is user-friendly, and the voice outputs are impressively lifelike. Whether I'm working on a presentation, video, or just experimenting, Verbatik has consistently delivered high-quality audio that adds value to my projects.

Boris S.
Private Tutor
I discovered VERBATIK when I was looking for a way to create voiceovers for multiple dialogues and monologues for personal use and it provided a good quality service for low price.

Zoe D.
Student
Verbatik is relatively easy to use and understand and gives the quick text-to-speech results I wanted. The audio was used to narrate an educational video and was easy to export!

Verified Reviewer
Broadcast Media
The broad range of AI voices and the ability to personalize the voice experience is very valuable to me as a content creator. I look forward to using it on a regular basis and exploring more tools that can optimise my content production process.

Aswin V.
Technical Associate
Verbatik software is a user-friendly software that easily converts text into speech. The accuracy of the transcription is really amazing. There are different customization options. available. we can change the speaker. it supports different languages.
FAQ
Answers to all your questions
Experience AI-Powered Voice
Create Your Account Today
Unlock the power of lifelike text-to-speech technology. Sign up now and transform your content with natural-sounding voices.