WaveSpeedAI MiniMax Speech 2.6 TTS

Convert text to speech using MiniMax Speech 2.6 Turbo via WaveSpeed AI. Features ultra-human voice cloning, sub-250ms latency, 40+ languages, emotion control, and 200+ voice preset…

WaveSpeed

@wavespeed

Install

$ openclaw skills install @wavespeed/wavespeed-minimax-speech-26

WaveSpeedAI MiniMax Speech 2.6 Turbo

Convert text to speech using MiniMax Speech 2.6 Turbo via the WaveSpeed AI platform. Features ultra-human voice cloning, sub-250ms latency, 40+ language support, and emotion control.

Setup

Install the open-source CLI once and sign in; the CLI stores the key, so never ask the user to paste an API key into the chat:

npm install -g @wavespeed/cli
wavespeed login          # opens https://wavespeed.ai/accesskey and stores the key
wavespeed status         # confirms you are signed in

For CI or one-off shells, WAVESPEED_API_KEY in the environment also works.

Prefer MCP tools over shell commands? The same platform is exposed by @wavespeed/mcp (npx -y @wavespeed/mcp; tools search_models, get_model_schema, get_price, upload_file, run_model, get_prediction). It shares the CLI's stored login. Every example below maps one-to-one onto run_model with the same model id and input fields.

Quick Start

OUTPUT_URL=$(wavespeed run minimax/speech-2.6-turbo \
  -i text="Hello, welcome to WaveSpeed AI!" \
  -i voice_id="English_CalmWoman" \
  --json | jq -r '.outputs[0]')

API Endpoint

Model ID: minimax/speech-2.6-turbo

Convert text to speech with configurable voice, emotion, speed, pitch, and audio format.

Parameters

ParameterTypeRequiredDefaultDescription
textstringYes--Text to convert to speech. Max 10,000 characters. Use <#x#> between words to insert pauses (0.01-99.99 seconds).
voice_idstringYes--Voice preset ID. See Voice IDs below.
speednumberNo1Speech speed. Range: 0.50-2.00
volumenumberNo1Speech volume. Range: 0.10-10.00
pitchnumberNo0Speech pitch. Range: -12 to 12
emotionstringNohappyEmotional tone. One of: happy, sad, angry, fearful, disgusted, surprised, neutral
english_normalizationbooleanNofalseImprove English number reading normalization
sample_rateintegerNo--Sample rate in Hz. One of: 8000, 16000, 22050, 24000, 32000, 44100
bitrateintegerNo--Bitrate in bps. One of: 32000, 64000, 128000, 256000
channelstringNo--Audio channels. 1 (mono) or 2 (stereo)
formatstringNo--Output format. One of: mp3, wav, pcm, flac
language_booststringNo--Enhance recognition for a specific language. See Supported Languages.

Example

OUTPUT_URL=$(wavespeed run minimax/speech-2.6-turbo \
  -i text="The quick brown fox jumps over the lazy dog." \
  -i voice_id="English_expressive_narrator" \
  -i speed=1.0 \
  -i pitch=0 \
  -i emotion="neutral" \
  -i format="mp3" \
  -i sample_rate=24000 \
  -i bitrate=128000 \
  --json | jq -r '.outputs[0]')

Pause Control

Insert pauses in speech using <#x#> syntax where x is seconds (0.01-99.99):

OUTPUT_URL=$(wavespeed run minimax/speech-2.6-turbo \
  -i text="And the winner is <#2.0#> WaveSpeed AI!" \
  -i voice_id="English_CaptivatingStoryteller" \
  --json | jq -r '.outputs[0]')

Voice IDs

English Voices (Popular)

Voice IDDescription
English_CalmWomanCalm female voice
English_Trustworth_ManTrustworthy male voice
English_expressive_narratorExpressive narrator
English_radiant_girlRadiant girl voice
English_magnetic_voiced_manMagnetic male voice
English_CaptivatingStorytellerStoryteller voice
English_Upbeat_WomanUpbeat female voice
English_GentleTeacherGentle teacher voice
English_PlayfulGirlPlayful girl voice
English_ManWithDeepVoiceDeep male voice
English_ConfidentWomanConfident female voice
English_ComedianComedic voice
English_SereneWomanSerene female voice
English_WiseScholarScholarly voice
English_Cute_GirlCute girl voice
English_Sharp_CommentatorSharp commentator
English_Lucky_RobotRobot voice

General Voices

Wise_Woman, Friendly_Person, Inspirational_girl, Deep_Voice_Man, Calm_Woman, Casual_Guy, Lively_Girl, Patient_Man, Young_Knight, Determined_Man, Lovely_Girl, Decent_Boy, Imposing_Manner, Elegant_Man, Abbess, Sweet_Girl_2, Exuberant_Girl

Special Voices

whisper_man, whisper_woman_1, angry_pirate_1, massive_kind_troll, movie_trailer_deep, peace_and_ease

Other Languages

Voices are available for: Chinese (Mandarin), Cantonese, 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, Persian, Slovak, Swedish, Croatian, Filipino, Hungarian, Norwegian, Slovenian, Catalan, Nynorsk, Tamil, Afrikaans.

Voice IDs follow the pattern {Language}_{VoiceName} (e.g., Japanese_KindLady, Korean_SweetGirl, French_CasualMan).

Supported Languages

For language_boost: 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, Persian, Slovak, Swedish, Croatian, Filipino, Hungarian, Norwegian, Slovenian, Catalan, Nynorsk, Tamil, Afrikaans

Pricing

$0.06 per 1,000 characters.

CLI tips

# Inspect the live input schema before running (fields, enums, defaults)
wavespeed run minimax/speech-2.6-turbo -h

# Quote the price first
wavespeed price minimax/speech-2.6-turbo -p "..." -i key=value

# Save outputs to disk instead of only printing URLs
wavespeed run minimax/speech-2.6-turbo -p "..." --json --download "./out/{index}.{ext}"

# Local files: prefix the path with @ and the CLI uploads it and passes the hosted URL
wavespeed run minimax/speech-2.6-turbo -i <field>=@./local-file.png --json

# Recover a result if the run was interrupted (the id is in the --json output)
wavespeed show <id>

run --json prints { id, model, prompt, outputs: [url, ...], saved: [path, ...], elapsed_ms, raw }. Read outputs[0] for the result URL.

Security constraints

  • Never ask for the key in chat: wavespeed login handles auth; if wavespeed status says signed out, ask the user to run it.
  • Local files only via @: bare paths are passed through untouched and the model will reject them. Only @-prefixed values upload.
  • No arbitrary URL loading: only pass media URLs the user provided or that came back from a previous run.
  • Input validation: only pass parameters documented above; confirm with wavespeed run <model> -h when unsure.

Top skills in this category