PL ▾
stableaudio.top

API tekstowe bez cenzury dla Twojego potoku audio

Pobierz klucz API

Tekstowy LLM do audio: co potrafi, a czego nie

Tekstowy LLM do audio to zwykle dwa narzędzia działające razem: model językowy piszący prompt i model audio zamieniający go w dźwięk. To API obejmuje pierwszą połowę.

Izometryczna ilustracja paneli tekstowych zamieniających się w fale dźwiękowe, pokazująca LLM piszący prompty dla narzędzi audio

Zaktualizowano

Kluczowe punkty

  1. Usługa obsługuje tylko tekst i nie generuje audio, obrazów ani wideo.

  2. Jego zadaniem w przepływie audio jest pisanie promptów, tekstów, scenariuszy i metadanych.

  3. Połączenie z narzędziem audio wymaga krótkiego skryptu i wyjścia JSON.

  4. 1 000 promptów (ok. 600 tokenów wejściowych i 300 wyjściowych) kosztuje ok. $0,24.

Krótka odpowiedź: LLM pisze instrukcje, nie dźwięk

Szukając tekstowego LLM do audio, ludzie często wyobrażają sobie jeden model, który czyta zdanie i zwraca plik dźwiękowy. Modele językowe tego nie robią. Czytają i piszą tekst. Dźwięk pochodzi od osobnego modelu zbudowanego do audio, który jako wejście przyjmuje opis tekstowy.

Ten podział jest przydatny, bo jakość opisu ma ogromne znaczenie. Niejasne żądanie typu "relaksująca muzyka" daje modelowi audio mało materiału do pracy. Konkretne, z podaniem gatunku, tempa, instrumentów, nastroju, struktury i długości, daje znacznie więcej. Pisanie takich szczegółowych opisów w dużej skali, w spójnym formacie, to dobra praca dla modelu językowego.

Ta strona oferuje dokładnie tę połowę: kompatybilny z OpenAI tekstowy endpoint API. Nie generuje audio, nie ma embeddingów ani fine-tuningu. Jeśli potrzebujesz samego dźwięku, połącz go z narzędziem audio i użyj tego endpointa jako kroku pisania przed generacją. Nie jesteśmy powiązani z żadnym dostawcą audio — sprawdź dokumentację każdego narzędzia pod kątem jego zasad wejściowych.

Gdzie model tekstowy pomaga w potoku audio

Zadania, które pasują, to takie, gdzie wynikiem są słowa:

  • Pisanie promptów. Zamień luźny pomysł w szczegółowy opis z gatunkiem, tempem, instrumentacją i nastrojem.
  • Teksty piosenek i scenariusze. Zwrotki i refren piosenki lub scenariusz narracji do intro podcastu lub rozdziału audiobooka.
  • Wariacje. Dziesięć alternatywnych promptów z jednego konceptu, abyś mógł przetestować kilka kierunków.
  • Metadane. Tytuły, opisy, tagi i notatki do utworu, gdy audio już istnieje.
  • Korekta. Przepisanie promptu po nieudanym wyniku, z uwzględnieniem Twoich notatek o tym, co poszło nie tak.

Model jest dostrojony do odpowiadania bez odrzuceń treści dla prawnego użytku dorosłego, co ma znaczenie przy audio z dużą ilością fikcji, takim jak mroczne opowiadania, dramaty horror czy dojrzałe dialogi gier, gdzie ściślejszy model może odrzucić rozsądne żądanie. Jedna twarda granica: nic z udziałem nieletnich w kontekście seksualnym nie jest dozwolone, a klucze nie służą do tego.

Nasza strona promptów wideo omawia tę samą zasadę dla narzędzi wideo; wzór pisania najpierw strukturalnego opisu, a następnie jego przekazania generatorowi, obowiązuje we wszystkich mediach.

Przykład: jedno wejście, jeden ustrukturyzowany prompt na wyjściu

Najbardziej niezawodnym sposobem dostarczenia danych do kolejnego narzędzia jest wyjście strukturalne. Tryb JSON (response_format: {"type":"json_object"}) sprawia, że model zwraca obiekt JSON, dzięki czemu Twój skrypt może odczytać nazwane pola zamiast parsować akapity. Oto skrypt Pythona używający SDK OpenAI przeciwko temu endpointowi.

import json, os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.stableaudio.top/v1",
    api_key=os.environ["UNCENSORED_API_KEY"],
)

system = (
    "You write prompts for text-to-audio tools. Return a JSON object with keys: "
    "genre, tempo_bpm, instruments (list), mood, structure, duration_seconds, prompt. "
    "The prompt field is one paragraph, no more than 60 words."
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": system},
        {"role": "user", "content": "A tense chase scene in a rain-soaked neon city."},
    ],
    response_format={"type": "json_object"},
    temperature=0.8,
)

spec = json.loads(resp.choices[0].message.content)
print(spec["prompt"])

Zachowaj słowo JSON w systemowym promptcie i wypisz klucze, których oczekujesz. Model ma wtedy jasny cel. Zwaliduj wynik przed wysłaniem dalej: sprawdź, czy tempo_bpm jest liczbą, a instruments jest listą, i spróbuj ponownie, jeśli nie.

To samo zapytanie w curlu, przydatne do szybkiego sprawdzenia, wygląda tak:

curl https://api.stableaudio.top/v1/chat/completions \
  -H "Authorization: Bearer $UNCENSORED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "response_format": {"type": "json_object"},
    "messages": [
      {"role": "system", "content": "Return JSON with keys mood and prompt for a text-to-audio tool."},
      {"role": "user", "content": "A quiet morning in a mountain village."}
    ]
  }'

Pisanie promptów użytecznych dla modelu audio

Model językowy napisze prompt w dowolnym kształcie, jaki poprosisz, więc prawdziwą pracą jest decyzja o kształcie. Kilka zasad sprawdza się w większości narzędzi audio.

Powiedz narzędziu, czego chce, w kolejności, jakiej oczekuje

Przeczytaj dokumentację narzędzia audio i skopiuj jego słownictwo. Jeśli reaguje na tagi sekcji w nawiasach lub linię stylu z oddzielonymi przecinkami deskryptorami, umieść przykład dokładnie tego formatu w systemowym promptcie. Modele dokładnie naśladują przykłady.

Podawaj konkretne rzeczowniki

"Rzadkie pianino, szczotkowane perkusje, kontrabas, trzask winyla" bije "miły jazzowy klimat". Powiedz modelowi, aby wymieniał instrumenty, zakres tempa i teksturę, i unikał przymiotników-zapełniaczy.

Ustal limity długości w instrukcji

Wiele narzędzi audio ogranicza długość promptu. Wpisz limit w systemowym promptcie ("nie więcej niż 60 słów") i wymuś go w kodzie. Modele mogą stopniowo odbiegać od liczby słów, więc obcinaj lub próbuj ponownie, gdy sprawdzanie się nie powiedzie.

Zachowaj pętlę zwrotną

Po wysłuchaniu wyniku, przekaż swoją notatkę z powrotem: "Zbyt gęsto w drugiej połowie, perkusja za głośna, zachowaj tonację". Drugie wywołanie może zaktualizować wcześniejszy prompt z tą notatką w kontekście. Okno 100 000 tokenów pozwala przechować długą historię prób, jeśli chcesz, aby model nauczył się, co odrzucasz.

Łączenie modelu z generatorem audio

Kod łączący jest krótki. Wygeneruj specyfikację, zwaliduj ją, a następnie przekaż pole prompt do dowolnego serwisu audio, którego używasz. Wywołanie audio jest oznaczone jako placeholder, ponieważ interfejsy poszczególnych dostawców różnią się; pobierz jego parametry z dokumentacji.

def make_spec(idea: str) -> dict:
    r = client.chat.completions.create(
        model="uncensored",
        messages=[
            {"role": "system", "content": system},
            {"role": "user", "content": idea},
        ],
        response_format={"type": "json_object"},
    )
    return json.loads(r.choices[0].message.content)

ideas = ["Lo-fi study beat", "Epic orchestral trailer hit", "Haunted music box"]
for idea in ideas:
    spec = make_spec(idea)
    # send spec["prompt"] to your audio generator here
    print(idea, "->", spec["prompt"][:80])

Jeśli uruchomisz to równolegle na liście, pamiętaj o limitach. Pełny klucz pozwala na 8 równoległych zapytań i 300 na minutę; klucz próbny pozwala na 2 i 60. Błąd 429 z concurrency oznacza za dużo naraz, rate_limited oznacza za dużo na minutę, a nagłówek Retry-After: 5 oznacza poczekaj 5 sekund i spróbuj ponownie. Mała pula wątków dopasowana do limitu plus retry wystarcza.

Dokumentacja API wymienia obsługiwane parametry, w tym temperature, top_p, stop i seed. Stały seed pomaga, gdy chcesz uzyskać powtarzalne prompty podczas strojenia wiadomości systemowej.

Teksty, narracja i metadane w skali masowej

Prompty to tylko jeden rodzaj tekstu potrzebny w projekcie audio. Gdy potok działa, ten sam endpoint może pisać inne elementy wokół niego, a ty możesz ponownie użyć obiektu klienta z wcześniejszego skryptu.

Scenariusze narracji

W przypadku audio mówionego poproś o scenariusz z reżyserią w ustalonej notacji, np. znacznikiem pauzy między akapitami i notatką, gdy mówca powinien zwolnić. Podaj modelowi docelowy czas czytania. Powszechna zasada jest taka, że lektor czyta około 150 słów na minutę, więc dwuminutowy tekst wymaga około 300 słów; poproś o tę liczbę, a następnie policz słowa w kodzie.

Teksty o stałej strukturze

Poproś o nazwane sekcje, schemat rymów i zakres sylab na linię. Model lepiej radzi sobie z "cztery linie, ABAB, osiem do dziesięciu sylab" niż z "ładny rymowany wiersz". Uruchom sprawdzanie w kodzie i poproś o przepisanie tylko tej sekcji, która się nie udała.

Tytuły, tagi i opisy

Po wygenerowaniu audio wyślij końcowy prompt i teksty z powrotem do modelu i poproś o trzy opcje tytułu, pięć tagów i dwuzdaniowy opis. To tania, powtarzalna praca, która dobrze pasuje do modelu tekstowego.

Opowieści i gry

Audiofikcje, takie jak serial horrorowy, interaktywna opowieść czy dialogi do gry, często zawierają mroczne lub dojrzałe tematy. Model jest dostrojony do odpowiadania bez odrzuceń treści dla prawnego użytku dorosłych, więc zapytanie pasujące do gatunku nie zostanie spotkane z wykładem. Zasada dotycząca treści seksualnych z udziałem nieletnich pozostaje absolutna.

Jeśli przesyłasz długie scenariusze na ekran, ustaw stream: true i czytaj fragmenty, gdy przychodzą; zużycie jest raportowane na końcu strumienia.

Ile kosztuje napisanie tysiąca promptów

Tekst jest tani w porównaniu z krokiem audio. Stawka to $0.15 za 1M tokenów wejściowych i $0.50 za 1M tokenów wyjściowych, rozliczane z przedpłaconego kredytu bez subskrypcji.

Załóżmy, że każde zapytanie wysyła około 600 tokenów (komunikat systemowy plus pomysł) i otrzymuje około 300 tokenów JSON. Dla 1 000 zapytań:

  • Wejście: 600 000 tokenów x $0.15 / 1M = $0.09
  • Wyjście: 300 000 tokenów x $0.50 / 1M = $0.15
  • Razem: $0.24

Zatem tysiąc ukończonych promptów kosztuje około dwudziestu czterech centów, a zapytania, które się nie powiodą lub zostaną odrzucone, nie są rozliczane. Nowe konto może zebrać $0.50 kredytu próbnego jednym kliknięciem na stronie klucza, bez karty, ważne przez 7 dni, co daje około dwa tysiące promptów przy powyższym rozmiarze. Po tym doładowania zaczynają się od $20; zobacz cennik w celu uzyskania informacji o poziomach bonusów i opcjach płatności. Prompty nie są używane do trenowania.

Pytania i odpowiedzi

Czy tekstowy LLM może generować audio?

Nie. Model językowy produkuje tekst. Audio pochodzi z osobnego modelu audio, a rola LLM polega na napisaniu promptu, tekstów piosenek lub scenariusza, którego ten model potrzebuje.

Czy to API generuje muzykę lub mowę?

Nie. To tylko tekst, bez generowania audio, obrazu lub wideo. Jest przeznaczony jako krok pisania poprzedzający narzędzie audio.

Jak uzyskać ustrukturyzowane prompty, które można przekazać do skryptu?

Użyj trybu JSON z ustawionym response_format na json_object, nazwij klucze w swoim komunikacie systemowym i zweryfikuj wynik parsowania w kodzie.

Ile kosztuje wygenerowanie wielu promptów?

Po stawce $0.15 za 1M tokenów wejściowych i $0.50 za 1M tokenów wyjściowych, 1 000 promptów o rozmiarze około 600 tokenów wejściowych i 300 wyjściowych kosztuje około $0.24.

Czy jest darmowy sposób, aby go wypróbować?

Nowi użytkownicy mogą zaksięgować $0.50 kredytu próbnego jednym kliknięciem po rejestracji. Nie wymaga karty i jest ważny przez 7 dni.

Twój klucz jest już tylko jeden formularz od Ciebie

Utwórz konto, skopiuj klucz, zmień bazowy URL. To cała konfiguracja.

Pobierz klucz API