# Minimax | Speech | 2.8 | Turbo MiniMax Speech 2.8 Turbo creates fast, low-latency AI voice output from text for real-time agents, IVR, and high-volume narration on eachlabs. ## API Information - **Model Slug:** minimax-speech-2-8-turbo - **Branded URL:** https://www.eachlabs.ai/minimax/minimax-speech/minimax-speech-2-8-turbo - **Provider:** Minimax - **Category:** Text to Voice - **Output Type:** audio - **Status:** active - **Base Cost:** $0.00006 per character - **Estimated Processing Time:** 6 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/minimax-speech-2-8-turbo ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.00006 per character - **Pricing Details:** default: $0.00006 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text to synthesize. Supports inline pause markers <#x#> where x is 0.01-99.99 seconds (e.g. <#1.5#> for a 1.5s pause). Supports interjection tags: (laughs), (sighs), (coughs), (clears throat), (gasps), (sniffs), (groans), (yawns). Max 10000 characters. | | voice_id | string | No | Wise_Woman | Wise_Woman, Friendly_Person, Inspirational_girl, Deep_Voice_Man, Calm_Woman, Casual_Guy, Lively_Girl, Lovely_Girl, Patient_Man, Young_Knight, Determined_Man, Decent_Boy, Imposing_Manner, Elegant_Man, Abbess, Sweet_Girl_2, Exuberant_Girl | Predefined voice for synthesis. Wise_Woman is a calm, mature female voice (default). Choose by gender, age, and tone — e.g. Friendly_Person for warm conversation, Deep_Voice_Man for narration, Lively_Girl for upbeat content. | | emotion | string | No | neutral | neutral, happy, sad, angry, fearful, disgusted, surprised | Emotional tone of the speech. neutral (default) for general use; happy, sad, angry, fearful, disgusted, surprised for expressive narration. Influences pacing and intonation. | | speed | number | No | 1 | 0.5–2 | Speech speed multiplier. Range 0.5–2.0. Default 1 (natural pace). 0.5 = half speed, 2.0 = double speed. | | vol | number | No | 1 | 0.01–10 | Output volume multiplier. Range 0.01–10. Default 1 (provider's natural level). | | pitch | integer | No | 0 | -12–12 | Voice pitch shift in semitones. Range -12 to 12. Default 0 (no shift). Negative = lower pitch, positive = higher pitch. Use voice_modify.pitch (range -100..100) for finer-grained tonal adjustments. | | english_normalization | boolean | No | false | - | When true, normalizes English numbers and abbreviations for natural pronunciation (e.g. '2024' read as 'twenty twenty four'). Adds slight latency. Default false. | | language_boost | string | No | auto | auto, Chinese, Chinese,Yue, English, Arabic, Russian, Spanish, French, Portuguese, German, Turkish, Dutch, Ukrainian, Vietnamese, Indonesian, Japanese, Italian, Korean, Thai, Polish, Romanian, Greek, Czech, Finnish, Hindi, Bulgarian, Danish, Hebrew, Malay, Slovak, Swedish, Croatian, Hungarian, Norwegian, Slovenian, Catalan, Nynorsk, Afrikaans | Improves pronunciation for the specified language or dialect. 'auto' (default) lets the model detect from prompt. Pick a specific language to force that recognition path — useful for short prompts where auto-detection is unreliable. | | voice_modify | object | No | - | - | Fine-grained voice modification (-100 to 100 each). Layered on top of voice_id and pitch. Default 0 on all = no modification. | | audio_setting | object | No | - | - | Output audio format settings. Defaults: mp3 at 32 kHz / 128 kbps / mono. | | normalization_setting | object | No | - | - | EBU R128 / ITU-R BS.1770 loudness normalization (broadcast standard). Defaults: enabled=true, target_loudness=-18 LUFS, target_range=8 LU, target_peak=-0.5 dBTP. | | pronunciation_dict | object | No | - | - | Custom pronunciation overrides. tone_list entries use the format 'text/(pronunciation)'. For Chinese, tones are numeric 1-5 (e.g. '燕少飞/(yan4)(shao3)(fei1)'). | | output_format | string | No | url | url, hex | How the audio is returned. 'url' (default) returns a hosted file URL, 'hex' returns raw hex-encoded bytes inline. Almost everyone wants 'url'. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "minimax-speech-2-8-turbo", "input": { "prompt": "A rabbit and a tortoise decided to race. The rabbit, confident in his speed, sprinted ahead — then stopped to rest under a tree. The tortoise never paused, never doubted, just kept moving. By the time the rabbit opened his eyes, the tortoise had already crossed the finish line" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated audio)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Minimax | Speech | 2.8 | Turbo Overview** Minimax | Speech | 2.8 | Turbo is a high-speed text-to-voice model from the Minimax provider, part of the minimax-speech family, designed for generating natural-sounding AI voice output from text inputs. It excels in delivering low-latency speech synthesis, making it ideal for real-time applications where speed is critical. Unlike standard text-to-speech models, this Turbo variant prioritizes ultra-fast inference while maintaining high voice quality, enabling seamless integration into live agents, interactive voice response (IVR) systems, and high-volume narration workflows on each::labs. Available via the **Minimax | Speech | 2.8 | Turbo API** on eachlabs.ai, it transforms simple text prompts into expressive audio clips. Developers and creators leverage its efficiency for dynamic content generation, reducing wait times to milliseconds. This model addresses key challenges in voice AI by balancing performance and realism, positioning it as a go-to for scalable, responsive audio production. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.