MiniMax Speech 2.8
Audio model · Available upstream
High-quality text-to-speech with expressive, natural voice synthesis
Generation is available through the published Meldport configurations below. Review the exact quote before submitting.
- Model ID
minimax-speech-2-8- Released
- Jan 29, 2026
- Billing unit
- Characters
Meldport generation prices
MiniMax Speech 2.8
75753d91-fd49-41de-b5a5-995d8f066a6atext to audio
Final quote depends on text length. Check the exact quote before generating.
Variable billing detailsAPI request and parameters
Use audio:generate on your API key. This configuration runs text to audio and returns audio/mpeg.
This configuration does not require an uploaded image. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.
{
"voice": {
"enum": [
"English_expressive_narrator",
"English_radiant_girl",
"English_magnetic_voiced_man",
"English_compelling_lady1",
"English_Aussie_Bloke",
"English_captivating_female1",
"English_Upbeat_Woman",
"English_Trustworth_Man",
"English_CalmWoman",
"English_UpsetGirl",
"English_Gentle-voiced_man",
"English_Whispering_girl",
"English_Diligent_Man",
"English_Graceful_Lady",
"English_ReservedYoungMan",
"English_PlayfulGirl",
"English_ManWithDeepVoice",
"English_MaturePartner",
"English_FriendlyPerson",
"English_MatureBoss",
"English_Debator",
"English_LovelyGirl",
"English_Steadymentor",
"English_Deep-VoicedGentleman",
"English_Wiselady",
"English_CaptivatingStoryteller",
"English_DecentYoungMan",
"English_SentimentalLady",
"English_ImposingManner",
"English_SadTeen",
"English_PassionateWarrior",
"English_WiseScholar",
"English_Soft-spokenGirl",
"English_SereneWoman",
"English_ConfidentWoman",
"English_PatientMan",
"English_Comedian",
"English_BossyLeader",
"English_Strong-WilledBoy",
"English_StressedLady",
"English_AssertiveQueen",
"English_AnimeCharacter",
"English_Jovialman",
"English_WhimsicalGirl",
"English_Kind-heartedGirl",
"Chinese (Mandarin)_Reliable_Executive",
"Chinese (Mandarin)_News_Anchor",
"Chinese (Mandarin)_Unrestrained_Young_Man",
"Chinese (Mandarin)_Mature_Woman",
"Arrogant_Miss",
"Robot_Armor",
"Chinese (Mandarin)_Kind-hearted_Antie",
"Chinese (Mandarin)_HK_Flight_Attendant",
"Chinese (Mandarin)_Humorous_Elder",
"Chinese (Mandarin)_Gentleman",
"Chinese (Mandarin)_Warm_Bestie",
"Chinese (Mandarin)_Stubborn_Friend",
"Chinese (Mandarin)_Sweet_Lady",
"Chinese (Mandarin)_Southern_Young_Man",
"Chinese (Mandarin)_Wise_Women",
"Chinese (Mandarin)_Gentle_Youth",
"Chinese (Mandarin)_Warm_Girl",
"Chinese (Mandarin)_Male_Announcer",
"Chinese (Mandarin)_Kind-hearted_Elder",
"Chinese (Mandarin)_Cute_Spirit",
"Chinese (Mandarin)_Radio_Host",
"Chinese (Mandarin)_Lyrical_Voice",
"Chinese (Mandarin)_Straightforward_Boy",
"Chinese (Mandarin)_Sincere_Adult",
"Chinese (Mandarin)_Gentle_Senior",
"Chinese (Mandarin)_Crisp_Girl",
"Chinese (Mandarin)_Pure-hearted_Boy",
"Chinese (Mandarin)_Soft_Girl",
"Chinese (Mandarin)_IntellectualGirl",
"Chinese (Mandarin)_Warm_HeartedGirl",
"Chinese (Mandarin)_Laid_BackGirl",
"Chinese (Mandarin)_ExplorativeGirl",
"Chinese (Mandarin)_Warm-HeartedAunt",
"Chinese (Mandarin)_BashfulGirl",
"Japanese_IntellectualSenior",
"Japanese_DecisivePrincess",
"Japanese_LoyalKnight",
"Japanese_DominantMan",
"Japanese_SeriousCommander",
"Japanese_ColdQueen",
"Japanese_DependableWoman",
"Japanese_GentleButler",
"Japanese_KindLady",
"Japanese_CalmLady",
"Japanese_OptimisticYouth",
"Japanese_GenerousIzakayaOwner",
"Japanese_SportyStudent",
"Japanese_InnocentBoy",
"Japanese_GracefulMaiden",
"Cantonese_ProfessionalHost (F)",
"Cantonese_GentleLady",
"Cantonese_ProfessionalHost (M)",
"Cantonese_PlayfulMan",
"Cantonese_CuteGirl",
"Cantonese_KindWoman",
"Korean_AirheadedGirl",
"Korean_AthleticGirl",
"Korean_AthleticStudent",
"Korean_BraveAdventurer",
"Korean_BraveFemaleWarrior",
"Korean_BraveYouth",
"Korean_CalmGentleman",
"Korean_CalmLady",
"Korean_CaringWoman",
"Korean_CharmingElderSister",
"Korean_CharmingSister",
"Korean_CheerfulBoyfriend",
"Korean_CheerfulCoolJunior",
"Korean_CheerfulLittleSister",
"Korean_ChildhoodFriendGirl",
"Korean_CockyGuy",
"Korean_ColdGirl",
"Korean_ColdYoungMan",
"Korean_ConfidentBoss",
"Korean_ConsiderateSenior",
"Korean_DecisiveQueen",
"Korean_DominantMan",
"Korean_ElegantPrincess",
"Korean_EnchantingSister",
"Korean_EnthusiasticTeen",
"Korean_FriendlyBigSister",
"Korean_GentleBoss",
"Korean_GentleWoman",
"Korean_HaughtyLady",
"Korean_InnocentBoy",
"Korean_IntellectualMan",
"Korean_IntellectualSenior",
"Korean_LonelyWarrior",
"Korean_MatureLady",
"Korean_MysteriousGirl",
"Korean_OptimisticYouth",
"Korean_PlayboyCharmer",
"Korean_PossessiveMan",
"Korean_QuirkyGirl",
"Korean_ReliableSister",
"Korean_ReliableYouth",
"Korean_SassyGirl",
"Korean_ShyGirl",
"Korean_SoothingLady",
"Korean_StrictBoss",
"Korean_SweetGirl",
"Korean_ThoughtfulWoman",
"Korean_WiseElf",
"Korean_WiseTeacher",
"Spanish_SereneWoman",
"Spanish_MaturePartner",
"Spanish_CaptivatingStoryteller",
"Spanish_Narrator",
"Spanish_WiseScholar",
"Spanish_Kind-heartedGirl",
"Spanish_DeterminedManager",
"Spanish_BossyLeader",
"Spanish_ReservedYoungMan",
"Spanish_ConfidentWoman",
"Spanish_ThoughtfulMan",
"Spanish_Strong-WilledBoy",
"Spanish_SophisticatedLady",
"Spanish_RationalMan",
"Spanish_AnimeCharacter",
"Spanish_Deep-tonedMan",
"Spanish_Fussyhostess",
"Spanish_SincereTeen",
"Spanish_FrankLady",
"Spanish_Comedian",
"Spanish_Debator",
"Spanish_ToughBoss",
"Spanish_Wiselady",
"Spanish_Steadymentor",
"Spanish_Jovialman",
"Spanish_SantaClaus",
"Spanish_Rudolph",
"Spanish_Intonategirl",
"Spanish_Arnold",
"Spanish_Ghost",
"Spanish_HumorousElder",
"Spanish_EnergeticBoy",
"Spanish_WhimsicalGirl",
"Spanish_StrictBoss",
"Spanish_ReliableMan",
"Spanish_SereneElder",
"Spanish_AngryMan",
"Spanish_AssertiveQueen",
"Spanish_CaringGirlfriend",
"Spanish_PowerfulSoldier",
"Spanish_PassionateWarrior",
"Spanish_ChattyGirl",
"Spanish_RomanticHusband",
"Spanish_CompellingGirl",
"Spanish_PowerfulVeteran",
"Spanish_SensibleManager",
"Spanish_ThoughtfulLady",
"Portuguese_SentimentalLady",
"Portuguese_BossyLeader",
"Portuguese_Wiselady",
"Portuguese_Strong-WilledBoy",
"Portuguese_Deep-VoicedGentleman",
"Portuguese_UpsetGirl",
"Portuguese_PassionateWarrior",
"Portuguese_AnimeCharacter",
"Portuguese_ConfidentWoman",
"Portuguese_AngryMan",
"Portuguese_CaptivatingStoryteller",
"Portuguese_Godfather",
"Portuguese_ReservedYoungMan",
"Portuguese_SmartYoungGirl",
"Portuguese_Kind-heartedGirl",
"Portuguese_Pompouslady",
"Portuguese_Grinch",
"Portuguese_Debator",
"Portuguese_SweetGirl",
"Portuguese_AttractiveGirl",
"Portuguese_ThoughtfulMan",
"Portuguese_PlayfulGirl",
"Portuguese_GorgeousLady",
"Portuguese_LovelyLady",
"Portuguese_SereneWoman",
"Portuguese_SadTeen",
"Portuguese_MaturePartner",
"Portuguese_Comedian",
"Portuguese_NaughtySchoolgirl",
"Portuguese_Narrator",
"Portuguese_ToughBoss",
"Portuguese_Fussyhostess",
"Portuguese_Dramatist",
"Portuguese_Steadymentor",
"Portuguese_Jovialman",
"Portuguese_CharmingQueen",
"Portuguese_SantaClaus",
"Portuguese_Rudolph",
"Portuguese_Arnold",
"Portuguese_CharmingSanta",
"Portuguese_CharmingLady",
"Portuguese_Ghost",
"Portuguese_HumorousElder",
"Portuguese_CalmLeader",
"Portuguese_GentleTeacher",
"Portuguese_EnergeticBoy",
"Portuguese_ReliableMan",
"Portuguese_SereneElder",
"Portuguese_GrimReaper",
"Portuguese_AssertiveQueen",
"Portuguese_WhimsicalGirl",
"Portuguese_StressedLady",
"Portuguese_FriendlyNeighbor",
"Portuguese_CaringGirlfriend",
"Portuguese_PowerfulSoldier",
"Portuguese_FascinatingBoy",
"Portuguese_RomanticHusband",
"Portuguese_StrictBoss",
"Portuguese_InspiringLady",
"Portuguese_PlayfulSpirit",
"Portuguese_ElegantGirl",
"Portuguese_CompellingGirl",
"Portuguese_PowerfulVeteran",
"Portuguese_SensibleManager",
"Portuguese_ThoughtfulLady",
"Portuguese_TheatricalActor",
"Portuguese_FragileBoy",
"Portuguese_ChattyGirl",
"Portuguese_Conscientiousinstructor",
"Portuguese_RationalMan",
"Portuguese_WiseScholar",
"Portuguese_FrankLady",
"Portuguese_DeterminedManager",
"French_Male_Speech_New",
"French_Female_News Anchor",
"French_CasualMan",
"French_MovieLeadFemale",
"French_FemaleAnchor",
"French_MaleNarrator",
"Indonesian_SweetGirl",
"Indonesian_ReservedYoungMan",
"Indonesian_CharmingGirl",
"Indonesian_CalmWoman",
"Indonesian_ConfidentWoman",
"Indonesian_CaringMan",
"Indonesian_BossyLeader",
"Indonesian_DeterminedBoy",
"Indonesian_GentleGirl",
"German_FriendlyMan",
"German_SweetLady",
"German_PlayfulMan",
"Russian_HandsomeChildhoodFriend",
"Russian_BrightHeroine",
"Russian_AmbitiousWoman",
"Russian_ReliableMan",
"Russian_CrazyQueen",
"Russian_PessimisticGirl",
"Russian_AttractiveGuy",
"Russian_Bad-temperedBoy",
"Italian_BraveHeroine",
"Italian_Narrator",
"Italian_WanderingSorcerer",
"Italian_DiligentLeader",
"Dutch_kindhearted_girl",
"Dutch_bossy_leader",
"Vietnamese_kindhearted_girl",
"Arabic_CalmWoman",
"Arabic_FriendlyGuy",
"Turkish_CalmWoman",
"Turkish_Trustworthyman",
"Ukrainian_CalmWoman",
"Ukrainian_WiseScholar",
"Thai_male_1_sample8",
"Thai_male_2_sample2",
"Thai_female_1_sample1",
"Thai_female_2_sample2",
"Polish_male_1_sample4",
"Polish_male_2_sample3",
"Polish_female_1_sample1",
"Polish_female_2_sample3",
"Romanian_male_1_sample2",
"Romanian_male_2_sample1",
"Romanian_female_1_sample4",
"Romanian_female_2_sample1",
"greek_male_1a_v1",
"Greek_female_1_sample1",
"Greek_female_2_sample3",
"czech_male_1_v1",
"czech_female_5_v7",
"czech_female_2_v2",
"finnish_male_3_v1",
"finnish_male_1_v2",
"finnish_female_4_v1",
"hindi_male_1_v2",
"hindi_female_2_v1",
"hindi_female_1_v2"
],
"type": "string",
"required": true,
"maxLength": 100
}
}Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");
async function post(path, body) {
const response = await fetch(api + path, {method: "POST",
headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
body: JSON.stringify(body)});
const result = await response.json();
if (!response.ok) throw new Error(JSON.stringify(result.error));
return result;
}
const request = {
"configuration_id": "75753d91-fd49-41de-b5a5-995d8f066a6a",
"prompt": "Replace with your prompt or speech script.",
"options": {
"voice": "English_expressive_narrator"
},
"input_asset_ids": []
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
...request, idempotency_key: idempotencyKey,
accepted_customer_price_microusd: quote.customer_price_microusd,
accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
...(quote.billing_policy_version === "actual-cost-v1"
? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.
MiniMax Speech 2.8
f9be509a-00ba-4dcb-9ac1-cd6a9827d17etext to audio
Final quote depends on text length. Check the exact quote before generating.
Variable billing detailsAPI request and parameters
Use audio:generate on your API key. This configuration runs text to audio and returns audio/mpeg.
This configuration does not require an uploaded image. Choose a different configuration ID to change the workflow or output settings. Send only options listed below.
{
"voice": {
"enum": [
"English_expressive_narrator",
"English_radiant_girl",
"English_magnetic_voiced_man",
"English_compelling_lady1",
"English_Aussie_Bloke",
"English_captivating_female1",
"English_Upbeat_Woman",
"English_Trustworth_Man",
"English_CalmWoman",
"English_UpsetGirl",
"English_Gentle-voiced_man",
"English_Whispering_girl",
"English_Diligent_Man",
"English_Graceful_Lady",
"English_ReservedYoungMan",
"English_PlayfulGirl",
"English_ManWithDeepVoice",
"English_MaturePartner",
"English_FriendlyPerson",
"English_MatureBoss",
"English_Debator",
"English_LovelyGirl",
"English_Steadymentor",
"English_Deep-VoicedGentleman",
"English_Wiselady",
"English_CaptivatingStoryteller",
"English_DecentYoungMan",
"English_SentimentalLady",
"English_ImposingManner",
"English_SadTeen",
"English_PassionateWarrior",
"English_WiseScholar",
"English_Soft-spokenGirl",
"English_SereneWoman",
"English_ConfidentWoman",
"English_PatientMan",
"English_Comedian",
"English_BossyLeader",
"English_Strong-WilledBoy",
"English_StressedLady",
"English_AssertiveQueen",
"English_AnimeCharacter",
"English_Jovialman",
"English_WhimsicalGirl",
"English_Kind-heartedGirl",
"Chinese (Mandarin)_Reliable_Executive",
"Chinese (Mandarin)_News_Anchor",
"Chinese (Mandarin)_Unrestrained_Young_Man",
"Chinese (Mandarin)_Mature_Woman",
"Arrogant_Miss",
"Robot_Armor",
"Chinese (Mandarin)_Kind-hearted_Antie",
"Chinese (Mandarin)_HK_Flight_Attendant",
"Chinese (Mandarin)_Humorous_Elder",
"Chinese (Mandarin)_Gentleman",
"Chinese (Mandarin)_Warm_Bestie",
"Chinese (Mandarin)_Stubborn_Friend",
"Chinese (Mandarin)_Sweet_Lady",
"Chinese (Mandarin)_Southern_Young_Man",
"Chinese (Mandarin)_Wise_Women",
"Chinese (Mandarin)_Gentle_Youth",
"Chinese (Mandarin)_Warm_Girl",
"Chinese (Mandarin)_Male_Announcer",
"Chinese (Mandarin)_Kind-hearted_Elder",
"Chinese (Mandarin)_Cute_Spirit",
"Chinese (Mandarin)_Radio_Host",
"Chinese (Mandarin)_Lyrical_Voice",
"Chinese (Mandarin)_Straightforward_Boy",
"Chinese (Mandarin)_Sincere_Adult",
"Chinese (Mandarin)_Gentle_Senior",
"Chinese (Mandarin)_Crisp_Girl",
"Chinese (Mandarin)_Pure-hearted_Boy",
"Chinese (Mandarin)_Soft_Girl",
"Chinese (Mandarin)_IntellectualGirl",
"Chinese (Mandarin)_Warm_HeartedGirl",
"Chinese (Mandarin)_Laid_BackGirl",
"Chinese (Mandarin)_ExplorativeGirl",
"Chinese (Mandarin)_Warm-HeartedAunt",
"Chinese (Mandarin)_BashfulGirl",
"Japanese_IntellectualSenior",
"Japanese_DecisivePrincess",
"Japanese_LoyalKnight",
"Japanese_DominantMan",
"Japanese_SeriousCommander",
"Japanese_ColdQueen",
"Japanese_DependableWoman",
"Japanese_GentleButler",
"Japanese_KindLady",
"Japanese_CalmLady",
"Japanese_OptimisticYouth",
"Japanese_GenerousIzakayaOwner",
"Japanese_SportyStudent",
"Japanese_InnocentBoy",
"Japanese_GracefulMaiden",
"Cantonese_ProfessionalHost (F)",
"Cantonese_GentleLady",
"Cantonese_ProfessionalHost (M)",
"Cantonese_PlayfulMan",
"Cantonese_CuteGirl",
"Cantonese_KindWoman",
"Korean_AirheadedGirl",
"Korean_AthleticGirl",
"Korean_AthleticStudent",
"Korean_BraveAdventurer",
"Korean_BraveFemaleWarrior",
"Korean_BraveYouth",
"Korean_CalmGentleman",
"Korean_CalmLady",
"Korean_CaringWoman",
"Korean_CharmingElderSister",
"Korean_CharmingSister",
"Korean_CheerfulBoyfriend",
"Korean_CheerfulCoolJunior",
"Korean_CheerfulLittleSister",
"Korean_ChildhoodFriendGirl",
"Korean_CockyGuy",
"Korean_ColdGirl",
"Korean_ColdYoungMan",
"Korean_ConfidentBoss",
"Korean_ConsiderateSenior",
"Korean_DecisiveQueen",
"Korean_DominantMan",
"Korean_ElegantPrincess",
"Korean_EnchantingSister",
"Korean_EnthusiasticTeen",
"Korean_FriendlyBigSister",
"Korean_GentleBoss",
"Korean_GentleWoman",
"Korean_HaughtyLady",
"Korean_InnocentBoy",
"Korean_IntellectualMan",
"Korean_IntellectualSenior",
"Korean_LonelyWarrior",
"Korean_MatureLady",
"Korean_MysteriousGirl",
"Korean_OptimisticYouth",
"Korean_PlayboyCharmer",
"Korean_PossessiveMan",
"Korean_QuirkyGirl",
"Korean_ReliableSister",
"Korean_ReliableYouth",
"Korean_SassyGirl",
"Korean_ShyGirl",
"Korean_SoothingLady",
"Korean_StrictBoss",
"Korean_SweetGirl",
"Korean_ThoughtfulWoman",
"Korean_WiseElf",
"Korean_WiseTeacher",
"Spanish_SereneWoman",
"Spanish_MaturePartner",
"Spanish_CaptivatingStoryteller",
"Spanish_Narrator",
"Spanish_WiseScholar",
"Spanish_Kind-heartedGirl",
"Spanish_DeterminedManager",
"Spanish_BossyLeader",
"Spanish_ReservedYoungMan",
"Spanish_ConfidentWoman",
"Spanish_ThoughtfulMan",
"Spanish_Strong-WilledBoy",
"Spanish_SophisticatedLady",
"Spanish_RationalMan",
"Spanish_AnimeCharacter",
"Spanish_Deep-tonedMan",
"Spanish_Fussyhostess",
"Spanish_SincereTeen",
"Spanish_FrankLady",
"Spanish_Comedian",
"Spanish_Debator",
"Spanish_ToughBoss",
"Spanish_Wiselady",
"Spanish_Steadymentor",
"Spanish_Jovialman",
"Spanish_SantaClaus",
"Spanish_Rudolph",
"Spanish_Intonategirl",
"Spanish_Arnold",
"Spanish_Ghost",
"Spanish_HumorousElder",
"Spanish_EnergeticBoy",
"Spanish_WhimsicalGirl",
"Spanish_StrictBoss",
"Spanish_ReliableMan",
"Spanish_SereneElder",
"Spanish_AngryMan",
"Spanish_AssertiveQueen",
"Spanish_CaringGirlfriend",
"Spanish_PowerfulSoldier",
"Spanish_PassionateWarrior",
"Spanish_ChattyGirl",
"Spanish_RomanticHusband",
"Spanish_CompellingGirl",
"Spanish_PowerfulVeteran",
"Spanish_SensibleManager",
"Spanish_ThoughtfulLady",
"Portuguese_SentimentalLady",
"Portuguese_BossyLeader",
"Portuguese_Wiselady",
"Portuguese_Strong-WilledBoy",
"Portuguese_Deep-VoicedGentleman",
"Portuguese_UpsetGirl",
"Portuguese_PassionateWarrior",
"Portuguese_AnimeCharacter",
"Portuguese_ConfidentWoman",
"Portuguese_AngryMan",
"Portuguese_CaptivatingStoryteller",
"Portuguese_Godfather",
"Portuguese_ReservedYoungMan",
"Portuguese_SmartYoungGirl",
"Portuguese_Kind-heartedGirl",
"Portuguese_Pompouslady",
"Portuguese_Grinch",
"Portuguese_Debator",
"Portuguese_SweetGirl",
"Portuguese_AttractiveGirl",
"Portuguese_ThoughtfulMan",
"Portuguese_PlayfulGirl",
"Portuguese_GorgeousLady",
"Portuguese_LovelyLady",
"Portuguese_SereneWoman",
"Portuguese_SadTeen",
"Portuguese_MaturePartner",
"Portuguese_Comedian",
"Portuguese_NaughtySchoolgirl",
"Portuguese_Narrator",
"Portuguese_ToughBoss",
"Portuguese_Fussyhostess",
"Portuguese_Dramatist",
"Portuguese_Steadymentor",
"Portuguese_Jovialman",
"Portuguese_CharmingQueen",
"Portuguese_SantaClaus",
"Portuguese_Rudolph",
"Portuguese_Arnold",
"Portuguese_CharmingSanta",
"Portuguese_CharmingLady",
"Portuguese_Ghost",
"Portuguese_HumorousElder",
"Portuguese_CalmLeader",
"Portuguese_GentleTeacher",
"Portuguese_EnergeticBoy",
"Portuguese_ReliableMan",
"Portuguese_SereneElder",
"Portuguese_GrimReaper",
"Portuguese_AssertiveQueen",
"Portuguese_WhimsicalGirl",
"Portuguese_StressedLady",
"Portuguese_FriendlyNeighbor",
"Portuguese_CaringGirlfriend",
"Portuguese_PowerfulSoldier",
"Portuguese_FascinatingBoy",
"Portuguese_RomanticHusband",
"Portuguese_StrictBoss",
"Portuguese_InspiringLady",
"Portuguese_PlayfulSpirit",
"Portuguese_ElegantGirl",
"Portuguese_CompellingGirl",
"Portuguese_PowerfulVeteran",
"Portuguese_SensibleManager",
"Portuguese_ThoughtfulLady",
"Portuguese_TheatricalActor",
"Portuguese_FragileBoy",
"Portuguese_ChattyGirl",
"Portuguese_Conscientiousinstructor",
"Portuguese_RationalMan",
"Portuguese_WiseScholar",
"Portuguese_FrankLady",
"Portuguese_DeterminedManager",
"French_Male_Speech_New",
"French_Female_News Anchor",
"French_CasualMan",
"French_MovieLeadFemale",
"French_FemaleAnchor",
"French_MaleNarrator",
"Indonesian_SweetGirl",
"Indonesian_ReservedYoungMan",
"Indonesian_CharmingGirl",
"Indonesian_CalmWoman",
"Indonesian_ConfidentWoman",
"Indonesian_CaringMan",
"Indonesian_BossyLeader",
"Indonesian_DeterminedBoy",
"Indonesian_GentleGirl",
"German_FriendlyMan",
"German_SweetLady",
"German_PlayfulMan",
"Russian_HandsomeChildhoodFriend",
"Russian_BrightHeroine",
"Russian_AmbitiousWoman",
"Russian_ReliableMan",
"Russian_CrazyQueen",
"Russian_PessimisticGirl",
"Russian_AttractiveGuy",
"Russian_Bad-temperedBoy",
"Italian_BraveHeroine",
"Italian_Narrator",
"Italian_WanderingSorcerer",
"Italian_DiligentLeader",
"Dutch_kindhearted_girl",
"Dutch_bossy_leader",
"Vietnamese_kindhearted_girl",
"Arabic_CalmWoman",
"Arabic_FriendlyGuy",
"Turkish_CalmWoman",
"Turkish_Trustworthyman",
"Ukrainian_CalmWoman",
"Ukrainian_WiseScholar",
"Thai_male_1_sample8",
"Thai_male_2_sample2",
"Thai_female_1_sample1",
"Thai_female_2_sample2",
"Polish_male_1_sample4",
"Polish_male_2_sample3",
"Polish_female_1_sample1",
"Polish_female_2_sample3",
"Romanian_male_1_sample2",
"Romanian_male_2_sample1",
"Romanian_female_1_sample4",
"Romanian_female_2_sample1",
"greek_male_1a_v1",
"Greek_female_1_sample1",
"Greek_female_2_sample3",
"czech_male_1_v1",
"czech_female_5_v7",
"czech_female_2_v2",
"finnish_male_3_v1",
"finnish_male_1_v2",
"finnish_female_4_v1",
"hindi_male_1_v2",
"hindi_female_2_v1",
"hindi_female_1_v2"
],
"type": "string",
"required": true,
"maxLength": 100
}
}Replace the prompt and set a unique MELDPORT_IDEMPOTENCY_KEY for this operation. The example quotes the request and then creates one paid job. Read the billing rules before accepting variable charges.
const api = "https://api.meldport.com";
const key = process.env.MELDPORT_API_KEY;
const idempotencyKey = process.env.MELDPORT_IDEMPOTENCY_KEY;
if (!key || !idempotencyKey) throw new Error("Set your API key and a unique operation ID first.");
async function post(path, body) {
const response = await fetch(api + path, {method: "POST",
headers: {Authorization: `Bearer ${key}`, "Content-Type": "application/json"},
body: JSON.stringify(body)});
const result = await response.json();
if (!response.ok) throw new Error(JSON.stringify(result.error));
return result;
}
const request = {
"configuration_id": "f9be509a-00ba-4dcb-9ac1-cd6a9827d17e",
"prompt": "Replace with your prompt or speech script.",
"options": {
"voice": "English_expressive_narrator"
},
"input_asset_ids": []
};
const {data: quote} = await post("/v1/media/quotes", request);
console.log("Quote:", quote);
const result = await post("/v1/media/jobs", {
...request, idempotency_key: idempotencyKey,
accepted_customer_price_microusd: quote.customer_price_microusd,
accepted_maximum_reservation_microusd: quote.maximum_reservation_microusd,
...(quote.billing_policy_version === "actual-cost-v1"
? {billing_policy_version: "actual-cost-v1"} : {}),
});
console.log(result.job);
// Poll GET /v1/media/jobs/<job.id> with the same API key.
// Keep this operation ID for retries. A new ID requests another generation.Poll the returned job ID. Download only after state is succeeded and billing_state is settled. Polling and download example.
About this model
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.