API generowania mowy (Speech)

Zaktualizowano 2026-09-18 · zespół Suno-API

Opis punktu końcowego

Speech zamienia tekst wystąpienia lub jednozdaniowy opis w audio „mowy/wystąpienia”, opcjonalnie z muzyką w tle. Nadaje się do wystąpień, toastów, narracji, tekstów lektorskich, treści audio i podobnych zastosowań.

Uwaga: ten punkt końcowy tworzy audio mowy, a nie śpiewany utwór (bez melodii i bez śpiewanego wokalu). Jeśli potrzebujesz śpiewu, użyj API generowania w trybie prostym lub API generowania w trybie niestandardowym.

Punkt końcowy: POST /api/music/speech

Rozliczenie: Płatne, obecnie domyślnie 0,6 juana za wywołanie. Jedno wywołanie zwykle zwraca 2 pliki audio; faktycznie pobierana kwota zależy od konfiguracji cen w panelu administracyjnym.

Max Mode / Variety: ten punkt końcowy obsługuje opcjonalne parametry max_mode i variety (0-4). Przy włączonym max_mode to wywołanie jest rozliczane po podwójnej cenie (0,6 → 1,2 ¥ za wywołanie); variety nie kosztuje nic dodatkowo. Znaczenie i sposób wysyłania opisano w sekcji „Parametry zaawansowane” Przeglądu nowego API.

Czasy oczekiwania i limity czasu (ważne): to punkt końcowy synchroniczny — zamówienie zostaje przyjęte i przekazane do generowania dopiero, gdy przyjdzie odpowiedź. Z pomiarów wynika, że większość żądań odpowiada w kilka sekund (1-10 s); ale jak przy innych synchronicznych punktach końcowych generowania, w skrajnych przypadkach może to potrwać dłużej. Ustaw limit czasu klienta na 300 sekund lub więcej; brak odpowiedzi nie oznacza, że nic nie zostało wygenerowane, a ponawianie od razu po limicie czasu duplikuje zamówienie i pobiera opłatę ponownie. Jeśli połączenie się zerwało, sprawdź później przez GET /api/music/songs. Zobacz „Czasy oczekiwania i ustawienia limitu czasu” w Przeglądzie nowego API.

Zgodność treści: platforma sprawdza tekst pod kątem praw autorskich i polityki treści. Jeśli zostanie uznany za materiał chroniony (na przykład cytowanie cudzego tekstu piosenki albo dosłownego tekstu znanego utworu), to wywołanie kończy się niepowodzeniem, a cała kwota jest automatycznie zwracana. Zmień tekst na własne sformułowanie albo zamień cytat na parafrazę i spróbuj ponownie.

Parametry żądania

Headers

Parametr Typ Wymagany Uwagi
Authorization string tak Bearer YOUR_API_KEY
Content-Type string tak application/json

Parametry treści

Parametr Typ Wymagany Domyślnie Uwagi
script string tak - Pełny tekst wystąpienia; maksymalnie 3000 znaków (więcej zwraca 400, bez opłaty)
tone string nie - Opis tonu / tempa / emocji / miejsca, np. „energicznie i mocno, tempo od wolnego do szybkiego; aula szkolna”; maksymalnie 1000 znaków
song_title string nie - Tytuł; maksymalnie 100 znaków
gender string nie dowolny Płeć mówiącego: m, f (przyjmowane też male, female); tę samą wartość możesz przekazać jako vocal_gender
backing_music boolean nie true Czy dodać muzykę w tle; false daje wystąpienie tylko z głosem
model string nie suno-v6 Nazwa modelu dla klienta: suno-v6, suno-v6-wild lub suno-v6-mini
wait_completion boolean nie false Czy czekać na zakończenie generowania przed odpowiedzią
max_mode boolean nie false Włączone powoduje rozliczenie tego wywołania po podwójnej cenie
variety integer nie - Stopień zmienności stylu 0-4; zobacz „Parametry zaawansowane” w przeglądzie

Ten punkt końcowy nie obsługuje duration: przekazanie go zwraca HTTP 400, nie jest po cichu ignorowane. Długość wystąpienia zależy od długości treści script.

Przykładowe żądania

Żądanie minimalne (tylko tekst)

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": "Dzień dobry wszystkim! Dziś moje wystąpienie dotyczy tego, jak dobrze wykorzystywać czas i iść naprzód."
  }'

Pełne żądanie (z tonem, płcią i wyłączoną muzyką w tle)

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"
  }'

Przykład w Pythonie

import requests

response = requests.post(
    'https://www.suno-api.io/api/music/speech',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={
        'script': 'Dzień dobry, koledzy. Przedstawię postępy z tego tygodnia.',
        'tone': 'spokojnie i wyraźnie, raport na spotkaniu',
        'gender': 'male',
        'backing_music': True,
    },
    timeout=300,
)
response.raise_for_status()
items = response.json()          # zwykle 2 pozycje
for item in items:
    print(item['song_id'], item['status'])

Opis parametrów

script (wystąpienie, wymagane)

tone (ton i scena, opcjonalne)

Opisuje, jak mówić, a nie co mówić. Warto podać cztery rodzaje informacji: ton, tempo/rytm, emocję i miejsce.

Energicznie i mocno, tempo od wolnego do szybkiego, wyraźne pauzy; aula szkolna, przed całą społecznością szkolną
Ciepło i łagodnie, spokojne tempo; przyjęcie weselne
Spokojnie i powściągliwie, równo i wyraźnie; raport dla zarządu

Limit to 1000 znaków. Bez tej wartości model ocenia na podstawie treści script.

gender / vocal_gender (płeć mówiącego, opcjonalne)

backing_music (muzyka w tle, opcjonalne)

model (model, opcjonalne)

Wszystkie trzy modele dla klienta są dostępne w tej samej cenie (0,6 juana za wywołanie). Mowę generuje rodzina Suno v6; bez wartości przyjmowane jest suno-v6. Jeśli nie masz wyraźnych preferencji, zwykle nie trzeba tego pola przekazywać.

Walidacja parametrów i limity tekstu

Poniższe przypadki zwracają HTTP 400, a wszystkie są blokowane przed pobraniem opłaty, więc nie powstaje żaden koszt:

Przypadek Komunikat błędu
Brak script lub tylko białe znaki script is required for speech
gender nie jest m/f/male/female gender must be one of m, f, male, female
backing_music nie jest wartością logiczną backing_music must be a boolean
Przekazano nieobsługiwany duration duration is not supported on /api/music/speech

Limity pól tekstowych

Przekroczenie limitu również zwraca HTTP 400 i nie uruchamia generowania ani nie pobiera opłaty z góry. Liczenie odbywa się w znakach Unicode (jeden znak chiński liczy się jako 1) i obejmuje spacje na początku i na końcu:

Pole Limit
script (wystąpienie) 3000 znaków
tone (opis tonu) 1000 znaków
song_title (tytuł) 100 znaków

Błąd ma postać script must not exceed 3000 characters; received 4120: pierwsze słowo to pole, które przekroczyło limit, a końcówka to rzeczywista liczba znaków, więc przy 400 możesz od razu przyciąć tekst według tych dwóch liczb.

Odpowiedź

Odpowiedzią jest tablica utworów dokładnie taka jak w innych punktach końcowych generowania (zwykle 2 pozycje); zapisz song_id i użyj API zapytań o utwory i historii, aby sprawdzić stan końcowy i adres audio:

[
  {
    "song_id": "b7529174-b495-465b-8c5e-cd21bea2df8c",
    "song_title": "Dobrze wykorzystać czas",
    "status": "pending",
    "audio_url": "",
    "cover_url": "",
    "video_url": "",
    "model_version": "suno-v6",
    "generation_type": "generate",
    "created_at": "2026-10-08T01:00:00Z"
  }
]
Pole Uwagi
song_id ID utworu; używane we wszystkich kolejnych zapytaniach i pobieraniach
status pending (zgłoszone, generowanie), processing, completed (zakończone), failed (niepowodzenie)
song_title Tytuł (generowany przez model, gdy nie przekazano song_title; może być pusty)
audio_url Adres audio; pusty przed zakończeniem generowania, a po zakończeniu od razu do odtworzenia lub pobrania

Niepowodzenie generowania i zwroty

Gdy generowanie się nie powiedzie, opłata za to wywołanie jest automatycznie zwracana w całości; nie trzeba kontaktować się z pomocą techniczną. Przyczynę widać w odpowiedzi lub w error_message API zapytań o utwory i historii.

Najczęstszą przyczyną jest uznanie treści za materiał chroniony, na przykład:

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

W takiej sytuacji zamień tekst na własne sformułowanie (albo zamień cytat na parafrazę) i wyślij ponownie.

Częste pytania

P: Dlaczego wynikiem jest „mowa”, a nie śpiew? O: To punkt końcowy wystąpień, a jego wynikiem jest audio mowy. Do śpiewu użyj punktów końcowych generowania lub trybu niestandardowego.

P: Dlaczego za każdym razem zwracane są 2 pozycje? O: Jak w innych punktach końcowych generowania na platformie, jedno generowanie daje 2 kandydatów; odpytaj je osobno po song_id i zostaw ten, który ci odpowiada.

P: Jak kontrolować długość? O: Decyduje o niej długość script; ten punkt końcowy nie przyjmuje parametru duration.

P: Czy mogę wskazać głos (na przykład swój sklonowany)? O: Obecna wersja tego nie obsługuje. Mowa używa stałego zestawu głosów, a gender wybiera męski lub żeński; jeśli potrzebujesz własnego głosu, użyj odpowiedniej funkcji API tworzenia profilu głosu (zalecane).

P: Co się stanie, jeśli nie przekażę tone? O: Model sam oceni ton i rytm na podstawie treści script. Aby stabilnie odtwarzać jakiś styl, wpisz ton, tempo i miejsce w tone.

Pola zgodne

Zalecane pole Pole zgodne Uwagi
gender vocal_gender Przekaż jedno z dwóch; m/f/male/female są akceptowane

Przy nowych integracjach używaj konsekwentnie snake_case. Pozostałe pola (script, tone, song_title, backing_music) nie mają aliasów camelCase.

Następne kroki

Gdy masz song_id:

  1. Użyj API zapytań o utwory i historii, aby sprawdzić status generowania i adres audio;
  2. Po zakończeniu użyj API pobierania i odsłuchu mediów utworów, aby pobrać lub odsłuchać;
  3. W sprawie pobierania wsadowego lub przenoszenia do własnego magazynu zobacz punkty końcowe centrum pobierania.
NastępnyAPI generowania efektów dźwiękowych

Uzyskaj klucz API

Po rejestracji utwórz klucz API w konsoli. Każde generowanie kosztuje 0,6 ¥ i zwraca 2 utwory, pobierania są nieograniczone, a numer telefonu nie jest wymagany.

Pobierz klucz API Powrót do przeglądu