🎤 Girikon TTS API

Low-latency, streaming text-to-speech with emotion-aware prosody control. Choose the right endpoint for your use case.

Base URL: https://tts.girikon.ai
WebSocket: WS wss://tts.girikon.ai

Available Endpoints

🚀 V1 — Full Pipeline (Recommended)

Best for: Natural-sounding speech with automatic emotion planning

WebSocket WS /ws/tts

Alias WS /ws/tts/v1

Full emotion-aware pipeline with text normalization, transliteration, and prosody control. Automatically plans emotion per sentence and injects it into synthesis.

📖 View Documentation →

⚡ V2 — Direct Synthesis

Best for: Direct control with custom parameters

WebSocket WS /ws/tts/v2

Direct access to synthesis engine with server-side emotion tagging. Advanced parameters: speed, repetition_penalty, pitch_bias_st, gain_db.

📖 View Documentation →

🔮 V3 — Koyal V3 Direct

Best for: Latest model with custom instructions

WebSocket WS /ws/tts/v3

Alias WS /v3

Latest Koyal V3 model with optional custom instructions/prompts. Minimal server processing, automatic segmentation.

📖 View Documentation →

Quick Comparison

Feature V1 V2 V3
Engine Koyal/Piper + Emotion Planner Direct Synthesis Koyal V3
Emotion Planning ✅ Automatic ✅ Server-side ❌ Manual
Text Normalization ✅ Yes ❌ No ✅ Yes
Transliteration ✅ Yes ❌ No ❌ No
Post-processing ✅ Yes ❌ No ❌ No
Sample Rate 22050 Hz 24000 Hz 24000 Hz
First Chunk Latency ~300-500ms ~200-400ms ~150-300ms

Getting Started

1. Connect to WebSocket

const ws = new WebSocket('wss://tts.girikon.ai/ws/tts?api_key=YOUR_KEY');

2. Send Request

ws.send(JSON.stringify({
  "text": "नमस्ते दोस्तों! आज मैं आपको एक रोमांचक खबर सुनाने वाला हूँ।",
  "lang": "hi",
  "speaker": "ankur",
  "stream_format": "pcm"
}));

3. Receive Events

ws.onmessage = (msg) => {
  const evt = JSON.parse(msg.data);
  if (evt.event === "chunk_audio") {
    // Play audio from evt.audio_base64
  }
};

Full Documentation

📊 Endpoint Comparison

Detailed comparison of all endpoints, features, and use cases.

📖 View Comparison →

© Girikon — TTS Streaming API. For support, contact your account manager.