API för talgenerering (Speech)

Uppdaterad 2026-09-18 · Suno-API-teamet

Beskrivning av ändpunkten

Speech gör om ett talmanus eller en beskrivning på en rad till "tal/anförande"-ljud, med bakgrundsmusik som valfritt tillägg. Det passar tal, skåltal, berättarröst, inläsningstexter, ljudinnehåll och liknande.

Observera: den här ändpunkten skapar talljud, inte en sjungen låt (ingen melodi och ingen sjungen sång). Behöver du sång använder du genererings-API i enkelt läge eller genererings-API i anpassat läge.

Ändpunkt: POST /api/music/speech

Fakturering: Betalt, för närvarande som standard 0,6 ¥ per anrop. Varje anrop ger oftast 2 ljudfiler; det faktiskt debiterade beloppet följer prisinställningen i backoffice.

Max Mode / Variety: den här ändpunkten stöder de valfria parametrarna max_mode och variety (0-4). Med max_mode på debiteras anropet till dubbelt pris (0,6 → 1,2 ¥ per anrop); variety kostar inget extra. Vad de betyder och hur de skickas står i avsnittet "Avancerade parametrar" i Översikt över det nya API:t.

Väntetider och timeouts (viktigt): detta är en synkron ändpunkt — beställningen accepteras och lämnas till generering först när svaret kommer. Mätt: de flesta anrop svarar inom sekunder (1-10 s); men som vid andra synkrona genereringsändpunkter kan det i extrema fall ta längre tid. Ställ in klientens timeout på 300 sekunder eller mer; inget svar betyder inte att inget genererades, och försök inte igen direkt efter en timeout (det duplicerar beställningen och debiterar igen). Om anslutningen bröts, kontrollera senare med GET /api/music/songs. Se "Väntetider och timeout-inställningar" i Översikt över det nya API:t.

Innehållsefterlevnad: plattformen granskar texten för upphovsrätt och innehållspolicy. Bedöms den innehålla skyddat material (till exempel att citera någon annans sångtext eller den ordagranna texten i ett känt verk), misslyckas anropet och hela beloppet återbetalas automatiskt. Byt till din egen formulering, eller gör om citatet till en omskrivning, och försök igen.

Begäransparametrar

Headers

Parameter Typ Krävs Anmärkningar
Authorization string ja Bearer YOUR_API_KEY
Content-Type string ja application/json

Brödtextparametrar

Parameter Typ Krävs Standard Anmärkningar
script string ja - Hela talmanuset; högst 3000 tecken (mer ger 400, ingen debitering)
tone string nej - Beskrivning av ton / tempo / känsla / miljö, till exempel "energiskt och kraftfullt, tempo från långsamt till snabbt; skolans aula"; högst 1000 tecken
song_title string nej - Titel; högst 100 tecken
gender string nej valfritt Talarens kön: m, f (accepterar även male, female); du kan skicka samma värde som vocal_gender
backing_music boolean nej true Om bakgrundsmusik läggs till; false ger ett tal med bara röst
model string nej suno-v6 Kundvänt modellnamn: suno-v6, suno-v6-wild eller suno-v6-mini
wait_completion boolean nej false Om svaret väntar tills genereringen är klar
max_mode boolean nej false På innebär att anropet debiteras till dubbelt pris
variety integer nej - Grad av stilvariation 0-4; se "Avancerade parametrar" i översikten

Den här ändpunkten stöder inte duration: skickas det returneras HTTP 400, det ignoreras inte tyst. Talets längd bestäms av innehållets längd i script.

Exempelbegäranden

Minsta begäran (bara texten)

curl -X POST https://www.suno-api.io/api/music/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 300 \
  -d '{
    "script": "God morgon allihop! Mitt tal idag handlar om att använda vår tid väl och gå framåt."
  }'

Fullständig begäran (med ton, kön och bakgrundsmusik av)

curl -X POST https://www.suno-api.io/api/music/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 300 \
  -d '{
    "script": "Good evening everyone, thank you all for coming to celebrate this special day with us.",
    "tone": "warm and slow, wedding reception",
    "song_title": "Wedding Toast",
    "gender": "f",
    "backing_music": false,
    "model": "suno-v6"
  }'

Python-exempel

import requests

response = requests.post(
    'https://www.suno-api.io/api/music/speech',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={
        'script': 'God eftermiddag, kollegor. Jag rapporterar om veckans framsteg.',
        'tone': 'lugnt och tydligt, mötesrapport',
        'gender': 'male',
        'backing_music': True,
    },
    timeout=300,
)
response.raise_for_status()
items = response.json()          # oftast 2 poster
for item in items:
    print(item['song_id'], item['status'])

Förklaring av parametrarna

script (talet, obligatoriskt)

tone (ton och miljö, valfritt)

Det beskriver hur något sägs, inte vad som sägs. Ta gärna med fyra slags information: ton, tempo/rytm, känsla och miljö.

Energiskt och kraftfullt, tempo från långsamt till snabbt, tydliga pauser; skolans aula, inför alla elever och lärare
Varmt och mjukt, lugnt tempo; bröllopsmottagning
Lugnt och återhållet, jämnt och tydligt; rapport till styrelsen

Gränsen är 1000 tecken. Skickas det inte bedömer modellen utifrån innehållet i script.

gender / vocal_gender (talarens kön, valfritt)

backing_music (bakgrundsmusik, valfritt)

model (modell, valfritt)

Alla tre kundvända modeller finns till samma pris (0,6 ¥ per anrop). Talet genereras av Suno v6-familjen; utan värde behandlas det som suno-v6. Om du inte har en tydlig preferens behövs oftast inte detta fält.

Parametervalidering och textgränser

Följande fall returnerar HTTP 400, och alla blockeras före debiteringen, så ingen kostnad uppstår:

Fall Felmeddelande
script saknas eller innehåller bara blanksteg script is required for speech
gender är inte m/f/male/female gender must be one of m, f, male, female
backing_music är inte booleskt backing_music must be a boolean
En duration som inte stöds skickades duration is not supported on /api/music/speech

Gränser för textfält

För lång text returnerar också HTTP 400 och startar ingen generering och gör ingen förhandsdebitering. Räkningen sker i Unicode-tecken (ett kinesiskt tecken räknas som 1) och inledande/avslutande blanksteg räknas med:

Fält Gräns
script (talet) 3000 tecken
tone (tonbeskrivning) 1000 tecken
song_title (titel) 100 tecken

Felet ser ut så här: script must not exceed 3000 characters; received 4120: första ordet är fältet som överskred gränsen och slutet är det faktiska antalet, så vid ett 400 kan du korta direkt med de två talen.

Svar

Svaret är en låtarray exakt som för de andra genereringsändpunkterna (oftast 2 poster); spara song_id och använd API för låtfrågor och historik för att se sluttillståndet och ljudadressen:

[
  {
    "song_id": "b7529174-b495-465b-8c5e-cd21bea2df8c",
    "song_title": "Använda tiden väl",
    "status": "pending",
    "audio_url": "",
    "cover_url": "",
    "video_url": "",
    "model_version": "suno-v6",
    "generation_type": "generate",
    "created_at": "2026-10-08T01:00:00Z"
  }
]
Fält Anmärkningar
song_id Spårets ID; används för alla senare frågor och nedladdningar
status pending (inskickad, genereras), processing, completed (klar), failed (misslyckades)
song_title Titel (skapas av modellen om du inte skickade song_title; kan vara tom)
audio_url Ljudadress; tom innan genereringen är klar och direkt spelbar eller nedladdningsbar när den är klar

Misslyckad generering och återbetalningar

Misslyckas genereringen återbetalas hela beloppet för anropet automatiskt; ingen kontakt med supporten behövs. Orsaken syns i svaret eller i error_message för API för låtfrågor och historik.

Den vanligaste orsaken är att innehållet bedöms vara skyddat material, till exempel:

Your lyrics contain copyrighted material. Please change it and try again.

Byt då ut manuset mot din egen formulering (eller gör om citatet till en omskrivning) och skicka in igen.

Vanliga frågor

F: Varför blir resultatet "tal" och inte sång? S: Det här är taländpunkten och dess utdata är talljud. För sång använder du genererings- eller anpassat-läge-ändpunkterna.

F: Varför kommer 2 poster varje gång? S: Som vid plattformens andra genereringsändpunkter ger en generering 2 kandidater; fråga efter dem separat via song_id och behåll den du gillar.

F: Hur styr jag längden? S: Den bestäms av längden på script; ändpunkten accepterar ingen duration-parameter.

F: Kan jag ange en röst (till exempel min klonade röst)? S: Nuvarande version stöder inte det. Talet använder en fast uppsättning talröster och gender väljer manlig eller kvinnlig; behöver du din egen röst använder du motsvarande funktion i API för att skapa röstprofil (rekommenderas).

F: Vad händer om jag inte skickar tone? S: Modellen bedömer ton och rytm utifrån innehållet i script. För att återge en stil tillförlitligt, skriv ton, tempo och miljö i tone.

Kompatibla fält

Rekommenderat fält Kompatibelt fält Anmärkningar
gender vocal_gender Skicka ett av dem; m/f/male/female fungerar alla

Använd snake_case genomgående i nya integrationer. Övriga fält (script, tone, song_title, backing_music) har inga camelCase-alias.

Nästa steg

När du har song_id:

  1. Använd API för låtfrågor och historik för att se genereringsstatus och ljudadress;
  2. Ladda ner eller lyssna med API för nedladdning och uppspelning av låtmedia när den är klar;
  3. För massnedladdning eller kopiering till din egen lagring, se nedladdningscentrets ändpunkter.
NästaAPI för ljudeffekter

Skaffa en API-nyckel

Skapa en API-nyckel i konsolen efter registreringen. Varje generering kostar 0,6 ¥ och returnerar 2 spår, nedladdningar är obegränsade och inget telefonnummer krävs.

Hämta API-nyckel Tillbaka till översikten