Code Examples

Complete code examples in multiple programming languages.

Python

Basic Generation

import requests

def generate_speech(text, voice="Peter", language="en-US"):
    response = requests.post(
        "https://yourvoic.com/api/v1/tts/generate",
        headers={"X-API-Key": "your_api_key"},
        json={
            "text": text,
            "voice": voice,
            "language": language
        }
    )
    
    if response.status_code == 200:
        return response.content
    else:
        raise Exception(f"Error: {response.json()}")

# Generate and save
audio = generate_speech("Hello, world!")
with open("output.mp3", "wb") as f:
    f.write(audio)

With All Options

import requests

response = requests.post(
    "https://yourvoic.com/api/v1/tts/generate",
    headers={"X-API-Key": "your_api_key"},
    json={
        "text": "Premium quality audio with all options.",
        "voice": "Peter",
        "language": "en-US",
        "model": "aura-max",
        "speed": 1.0,
        "pitch": 1.0,
        "output_format": "wav",
        "sample_rate": 44100
    }
)

with open("premium_output.wav", "wb") as f:
    f.write(response.content)

Batch Processing

import requests
import os

texts = [
    "Welcome to chapter one.",
    "This is the introduction.",
    "Let's begin our journey."
]

for i, text in enumerate(texts):
    response = requests.post(
        "https://yourvoic.com/api/v1/tts/generate",
        headers={"X-API-Key": "your_api_key"},
        json={
            "text": text,
            "voice": "Peter",
            "language": "en-US",
            "model": "aura-max"
        }
    )
    
    filename = f"chapter_{i+1}.mp3"
    with open(filename, "wb") as f:
        f.write(response.content)
    print(f"Saved {filename}")

JavaScript (Node.js)

Basic Generation

const fs = require('fs');

async function generateSpeech(text, voice = 'Peter', language = 'en-US') {
    const response = await fetch('https://yourvoic.com/api/v1/tts/generate', {
        method: 'POST',
        headers: {
            'X-API-Key': 'your_api_key',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({ text, voice, language })
    });

    if (!response.ok) {
        throw new Error(`Error: ${await response.text()}`);
    }

    return Buffer.from(await response.arrayBuffer());
}

// Usage
generateSpeech('Hello, world!')
    .then(audio => fs.writeFileSync('output.mp3', audio))
    .then(() => console.log('Saved output.mp3'));

Browser with Audio Playback

async function speakText(text) {
    const response = await fetch('https://yourvoic.com/api/v1/tts/generate', {
        method: 'POST',
        headers: {
            'X-API-Key': 'your_api_key',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            text: text,
            voice: 'Peter',
            language: 'en-US'
        })
    });

    const blob = await response.blob();
    const url = URL.createObjectURL(blob);
    
    const audio = new Audio(url);
    audio.play();
    
    // Cleanup after playback
    audio.onended = () => URL.revokeObjectURL(url);
}

// Usage
speakText('Hello from the browser!');

cURL

Basic Request

curl -X POST "https://yourvoic.com/api/v1/tts/generate" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello, world!",
    "voice": "Peter",
    "language": "en-US"
  }' \
  --output output.mp3

With All Options

curl -X POST "https://yourvoic.com/api/v1/tts/generate" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Premium audio with custom settings.",
    "voice": "Peter",
    "language": "en-US",
    "model": "aura-max",
    "speed": 0.9,
    "pitch": 1.1,
    "output_format": "wav"
  }' \
  --output premium.wav

PHP

<?php
$ch = curl_init('https://yourvoic.com/api/v1/tts/generate');

curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: your_api_key',
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'text' => 'Hello from PHP!',
        'voice' => 'Peter',
        'language' => 'en-US'
    ])
]);

$audio = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    file_put_contents('output.mp3', $audio);
    echo "Audio saved!";
} else {
    echo "Error: " . $audio;
}
?>

Ruby

require 'net/http'
require 'json'
require 'uri'

uri = URI('https://yourvoic.com/api/v1/tts/generate')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['X-API-Key'] = 'your_api_key'
request['Content-Type'] = 'application/json'
request.body = {
  text: 'Hello from Ruby!',
  voice: 'Peter',
  language: 'en-US'
}.to_json

response = http.request(request)

if response.code == '200'
  File.open('output.mp3', 'wb') { |f| f.write(response.body) }
  puts 'Audio saved!'
else
  puts "Error: #{response.body}"
end

Go

package main

import (
    "bytes"
    "encoding/json"
    "io"
    "net/http"
    "os"
)

func main() {
    payload := map[string]string{
        "text":     "Hello from Go!",
        "voice":    "Peter",
        "language": "en-US",
    }
    
    body, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest("POST", 
        "https://yourvoic.com/api/v1/tts/generate",
        bytes.NewBuffer(body))
    
    req.Header.Set("X-API-Key", "your_api_key")
    req.Header.Set("Content-Type", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    if resp.StatusCode == 200 {
        file, _ := os.Create("output.mp3")
        defer file.Close()
        io.Copy(file, resp.Body)
    }
}