MiniMax Speech 2.8

MiniMax Speech 2.8 is an advanced text-to-speech model that turns text into natural, expressive audio in multiple languages. It delivers broadcast-ready speech with rich prosody, emotional control, and a diverse voice library. The model supports up to large input lengths and can be used for voiceovers, narration, accessibility tools, and interactive voice applications.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
text-to-audio
Fermentation Podcast Vocal Stinger$0.0094~4sWake the jar, feed the fizz—this is Culture Counter, where tiny microbes make very big flavor.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'minimax:speech@2.8',
speech: {
text: 'Wake the jar, feed the fizz—this is Culture Counter, where tiny microbes make very big flavor.',
voice: 'English_PlayfulGirl'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "minimax:speech@2.8",
"speech": {
"text": "Wake the jar, feed the fizz—this is Culture Counter, where tiny microbes make very big flavor.",
"voice": "English_PlayfulGirl"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "1b03a62f-1f56-4c64-b13a-45786400eed9",
"model": "minimax:speech@2.8",
"speech": {
"text": "Wake the jar, feed the fizz—this is Culture Counter, where tiny microbes make very big flavor.",
"voice": "English_PlayfulGirl"
}
}
]'runware run minimax:speech@2.8 \
speech.text="Wake the jar, feed the fizz—this is Culture Counter, where tiny microbes make very big flavor." \
speech.voice=English_PlayfulGirl{
"taskType": "audioInference",
"taskUUID": "1b03a62f-1f56-4c64-b13a-45786400eed9",
"model": "minimax:speech@2.8",
"speech": {
"text": "Wake the jar, feed the fizz—this is Culture Counter, where tiny microbes make very big flavor.",
"voice": "English_PlayfulGirl"
}
}Response
{
"taskType": "audioInference",
"taskUUID": "1b03a62f-1f56-4c64-b13a-45786400eed9",
"audioUUID": "d7e3f5b3-339d-444a-a767-e2789246d184",
"audioURL": "https://am.runware.ai/audio/os/a05d22/ws/5/ai/d7e3f5b3-339d-444a-a767-e2789246d184.mp3",
"cost": 0.0094
}text-to-audio
Lunar Greenhouse PA Ambience$0.0239~5sHorticulture cycle seven is now entering artificial dusk. Irrigation will continue in the eastern beds for six minutes. Please keep the pollinator aisle clear, lower your work lights, and allow the night-blooming crops to open undisturbed.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'minimax:speech@2.8',
speech: {
voice: 'English_CalmWoman',
text: 'Horticulture cycle seven is now entering artificial dusk. Irrigation will continue in the eastern beds for six minutes. Please keep the pollinator aisle clear, lower your work lights, and allow the night-blooming crops to open undisturbed.'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_CalmWoman",
"text": "Horticulture cycle seven is now entering artificial dusk. Irrigation will continue in the eastern beds for six minutes. Please keep the pollinator aisle clear, lower your work lights, and allow the night-blooming crops to open undisturbed."
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "a2ae4a6a-261e-4ffc-85ba-91ec05221991",
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_CalmWoman",
"text": "Horticulture cycle seven is now entering artificial dusk. Irrigation will continue in the eastern beds for six minutes. Please keep the pollinator aisle clear, lower your work lights, and allow the night-blooming crops to open undisturbed."
}
}
]'runware run minimax:speech@2.8 \
speech.voice=English_CalmWoman \
speech.text="Horticulture cycle seven is now entering artificial dusk. Irrigation will continue in the eastern beds for six minutes. Please keep the pollinator aisle clear, lower your work lights, and allow the night-blooming crops to open undisturbed."{
"taskType": "audioInference",
"taskUUID": "a2ae4a6a-261e-4ffc-85ba-91ec05221991",
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_CalmWoman",
"text": "Horticulture cycle seven is now entering artificial dusk. Irrigation will continue in the eastern beds for six minutes. Please keep the pollinator aisle clear, lower your work lights, and allow the night-blooming crops to open undisturbed."
}
}Response
{
"taskType": "audioInference",
"taskUUID": "a2ae4a6a-261e-4ffc-85ba-91ec05221991",
"audioUUID": "63ed7fba-f891-45dd-bad5-81f8ae5fc28d",
"audioURL": "https://am.runware.ai/audio/os/a10dlim3/ws/5/ai/63ed7fba-f891-45dd-bad5-81f8ae5fc28d.mp3",
"cost": 0.0239
}text-to-audio
Textile Forensics Podcast Cold Open$0.065~6sA carpet can lie. In 1924, a London collector paid a small fortune for what he believed was a seventeenth-century Persian masterpiece. The wool was hand-spun. The knots were convincing. Even the wear looked ancient. But hidden inside one faded crimson thread was a dye invented barely thirty years earlier. That single fiber unraveled the carpet’s story—and exposed a workshop built on beautiful deception. This is Under the Weft, a podcast about the science, history, and human judgment behind the world’s most contested textiles. Today: how conservators read color like evidence, and why the perfect forgery is often undone by its brightest detail.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'minimax:speech@2.8',
speech: {
voice: 'English_CaptivatingStoryteller',
text: 'A carpet can lie. In 1924, a London collector paid a small fortune for what he believed was a seventeenth-century Persian masterpiece. The wool was hand-spun. The knots were convincing. Even the wear looked ancient. But hidden inside one faded crimson thread was a dye invented barely thirty years earlier. That single fiber unraveled the carpet’s story—and exposed a workshop built on beautiful deception. This is Under the Weft, a podcast about the science, history, and human judgment behind the world’s most contested textiles. Today: how conservators read color like evidence, and why the perfect forgery is often undone by its brightest detail.'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_CaptivatingStoryteller",
"text": "A carpet can lie. In 1924, a London collector paid a small fortune for what he believed was a seventeenth-century Persian masterpiece. The wool was hand-spun. The knots were convincing. Even the wear looked ancient. But hidden inside one faded crimson thread was a dye invented barely thirty years earlier. That single fiber unraveled the carpet’s story—and exposed a workshop built on beautiful deception. This is Under the Weft, a podcast about the science, history, and human judgment behind the world’s most contested textiles. Today: how conservators read color like evidence, and why the perfect forgery is often undone by its brightest detail."
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "1f6f9223-dd5b-4eaf-872b-75f356b7dc70",
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_CaptivatingStoryteller",
"text": "A carpet can lie. In 1924, a London collector paid a small fortune for what he believed was a seventeenth-century Persian masterpiece. The wool was hand-spun. The knots were convincing. Even the wear looked ancient. But hidden inside one faded crimson thread was a dye invented barely thirty years earlier. That single fiber unraveled the carpet’s story—and exposed a workshop built on beautiful deception. This is Under the Weft, a podcast about the science, history, and human judgment behind the world’s most contested textiles. Today: how conservators read color like evidence, and why the perfect forgery is often undone by its brightest detail."
}
}
]'runware run minimax:speech@2.8 \
speech.voice=English_CaptivatingStoryteller \
speech.text="A carpet can lie. In 1924, a London collector paid a small fortune for what he believed was a seventeenth-century Persian masterpiece. The wool was hand-spun. The knots were convincing. Even the wear looked ancient. But hidden inside one faded crimson thread was a dye invented barely thirty years earlier. That single fiber unraveled the carpet’s story—and exposed a workshop built on beautiful deception. This is Under the Weft, a podcast about the science, history, and human judgment behind the world’s most contested textiles. Today: how conservators read color like evidence, and why the perfect forgery is often undone by its brightest detail."{
"taskType": "audioInference",
"taskUUID": "1f6f9223-dd5b-4eaf-872b-75f356b7dc70",
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_CaptivatingStoryteller",
"text": "A carpet can lie. In 1924, a London collector paid a small fortune for what he believed was a seventeenth-century Persian masterpiece. The wool was hand-spun. The knots were convincing. Even the wear looked ancient. But hidden inside one faded crimson thread was a dye invented barely thirty years earlier. That single fiber unraveled the carpet’s story—and exposed a workshop built on beautiful deception. This is Under the Weft, a podcast about the science, history, and human judgment behind the world’s most contested textiles. Today: how conservators read color like evidence, and why the perfect forgery is often undone by its brightest detail."
}
}Response
{
"taskType": "audioInference",
"taskUUID": "1f6f9223-dd5b-4eaf-872b-75f356b7dc70",
"audioUUID": "23188528-2e2a-439e-b511-369343ee5ff1",
"audioURL": "https://am.runware.ai/audio/os/a06dlim3/ws/5/ai/23188528-2e2a-439e-b511-369343ee5ff1.mp3",
"cost": 0.065
}text-to-audio
Community Heat Mapping Explainer Voiceover$0.0442~6sOne street has leafy shade. The next feels ten degrees hotter. But if heat changes block by block, how do we protect the people most at risk? This summer, volunteers are carrying pocket-sized sensors along their everyday routes. Each reading helps reveal where trees, cool roofs, and shaded bus stops can make the greatest difference. Walk, ride, or roll with us—and turn a few minutes outdoors into a cooler, safer neighborhood for everyone.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'minimax:speech@2.8',
speech: {
voice: 'English_ConfidentWoman',
text: 'One street has leafy shade. The next feels ten degrees hotter. But if heat changes block by block, how do we protect the people most at risk? This summer, volunteers are carrying pocket-sized sensors along their everyday routes. Each reading helps reveal where trees, cool roofs, and shaded bus stops can make the greatest difference. Walk, ride, or roll with us—and turn a few minutes outdoors into a cooler, safer neighborhood for everyone.'
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_ConfidentWoman",
"text": "One street has leafy shade. The next feels ten degrees hotter. But if heat changes block by block, how do we protect the people most at risk? This summer, volunteers are carrying pocket-sized sensors along their everyday routes. Each reading helps reveal where trees, cool roofs, and shaded bus stops can make the greatest difference. Walk, ride, or roll with us—and turn a few minutes outdoors into a cooler, safer neighborhood for everyone."
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "fa26205a-8010-4d2b-b65d-5f86a2aa084e",
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_ConfidentWoman",
"text": "One street has leafy shade. The next feels ten degrees hotter. But if heat changes block by block, how do we protect the people most at risk? This summer, volunteers are carrying pocket-sized sensors along their everyday routes. Each reading helps reveal where trees, cool roofs, and shaded bus stops can make the greatest difference. Walk, ride, or roll with us—and turn a few minutes outdoors into a cooler, safer neighborhood for everyone."
}
}
]'runware run minimax:speech@2.8 \
speech.voice=English_ConfidentWoman \
speech.text="One street has leafy shade. The next feels ten degrees hotter. But if heat changes block by block, how do we protect the people most at risk? This summer, volunteers are carrying pocket-sized sensors along their everyday routes. Each reading helps reveal where trees, cool roofs, and shaded bus stops can make the greatest difference. Walk, ride, or roll with us—and turn a few minutes outdoors into a cooler, safer neighborhood for everyone."{
"taskType": "audioInference",
"taskUUID": "fa26205a-8010-4d2b-b65d-5f86a2aa084e",
"model": "minimax:speech@2.8",
"speech": {
"voice": "English_ConfidentWoman",
"text": "One street has leafy shade. The next feels ten degrees hotter. But if heat changes block by block, how do we protect the people most at risk? This summer, volunteers are carrying pocket-sized sensors along their everyday routes. Each reading helps reveal where trees, cool roofs, and shaded bus stops can make the greatest difference. Walk, ride, or roll with us—and turn a few minutes outdoors into a cooler, safer neighborhood for everyone."
}
}Response
{
"taskType": "audioInference",
"taskUUID": "fa26205a-8010-4d2b-b65d-5f86a2aa084e",
"audioUUID": "23b7daa7-a97e-4298-9643-017e4de81fbd",
"audioURL": "https://am.runware.ai/audio/os/a02d21/ws/5/ai/23b7daa7-a97e-4298-9643-017e4de81fbd.mp3",
"cost": 0.0442
}