Szybki start API TTS
Ten przewodnik szybkiego startu pokazuje, jak zintegrować nasz API uzupełnień czatu bez cenzury z Twoim potokiem TTS. Użyj endpointa kompatybilnego z OpenAI, aby generować scenariusze, napisy i dialogi bez odmów treści.
https://api.ttsapihub.com/v1
Base URL i uwierzytelnianie
Skonfiguruj klienta, aby wskazywał nasz base URL: https://api.ttsapihub.com/v1. Nasze API jest w pełni kompatybilne z OpenAI, więc możesz używać standardowych SDK, zmieniając tylko base_url i podając swój klucz API. Uwierzytelnianie odbywa się przez nagłówek Authorization z tokenem Bearer. Unikalny klucz generujesz podczas rejestracji na stronie Uzyskanie klucza API. Na koncie może być aktywny tylko jeden klucz, który możesz wygenerować ponownie w dowolnym momencie. Twoje prompty nie są używane do trenowania modelu, a do rozpoczęcia nie potrzebujesz karty ani numeru telefonu.
Generowanie tekstu przez Chat Completions
Wyślij standardowe zapytanie POST /v1/chat/completions, aby wygenerować tekst. ID modelu to uncensored. Jest to LLM o otwartych wagach dostosowany do odpowiadania bez odmów treści przy prawnym użyciu dorosłym, co czyni go idealnym do kreatywnych skryptów lub dialogów, gdzie korporacyjne filtry mogłyby zablokować Twoją treść. Nie generuje audio, obrazów ani wideo; zwraca czysty tekst do przetworzenia przez Twój potok TTS. Możesz dostosować parametry takie jak temperature i max_tokens. API obsługuje wywoływanie funkcji do ekstrakcji danych strukturalnych, pozwalając na formatowanie odpowiedzi dla Twojej aplikacji.
curl https://api.ttsapihub.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
Integracja z Python SDK
Dla programistów Python oficjalny SDK openai działa od razu przy minimalnej konfiguracji. Zainicjuj klienta, podając base URL i klucz API, a następnie wywołaj chat.completions.create(). To podejście pozwala wykorzystać istniejące klienty kompatybilne z OpenAI, czerpiąc jednocześnie korzyści z naszego modelu bez cenzury. Odpowiedź zawiera wygenerowany tekst, który możesz bezpośrednio przekazać do silnika syntezy mowy. Pamiętaj, że jest to API tylko tekstowe, więc generowanie audio obsługujesz osobno w swoim potoku.
from openai import OpenAI
client = OpenAI(base_url="https://api.ttsapihub.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Integracja z Node SDK
Programiści Node.js mogą użyć pakietu npm openai z tą samą konfiguracją co w Python. Ustaw baseURL na nasz endpoint i podaj klucz API. Wywołaj endpoint completions z ID modelu uncensored. Integracja jest prosta i pozwala na bezpośrednie włączenie generowania tekstu do istniejących usług TTS Node.js. API zwraca standardowy JSON, co ułatwia parsowanie i przetwarzanie wygenerowanego tekstu.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ttsapihub.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Strumieniowanie odpowiedzi przez SSE
Aby zmniejszyć opóźnienia, włącz strumieniowanie, ustawiając stream: true w zapytaniu. API zwraca zdarzenia wysyłane przez serwer (SSE) zawierające przyrostowe fragmenty tekstu. Jest to szczególnie przydatne przy generowaniu długich treści, ponieważ użytkownicy widzą tekst w czasie rzeczywistym. Odpowiedź strumieniowa jest zgodna ze standardowym formatem SSE OpenAI, więc możesz użyć istniejących parserów strumieni. To podejście skraca czas oczekiwania i pozwala wyświetlać tekst w miarę jego generowania, poprawiając UX w Twoim potoku TTS.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Limity, błędy i okno kontekstu
Twój klucz API jest ograniczony do 300 zapytań na minutę i 8 MB treści zapytania. Model obsługuje okno kontekstu 100 000 tokenów, umożliwiając długie skrypty lub dokumenty. Typowe błędy to 401 (nieprawidłowy klucz), 402 (niewystarczający kredyt) i 429 (limit zapytań). Jeśli osiągniesz limit zapytań, wdróż wykładnicze opóźnienie ponownych prób. Ceny są przejrzyste: $0,25 za 1M tokenów wejściowych i $1,00 za 1M tokenów wyjściowych. Kredyty są przedpłacone, nie wygasają, a doładowania zaczynają się od $10. Nowe konto otrzymuje $0,50 w darmowym kredycie próbnym ważnym przez 7 dni, bez karty. Ograniczenia treści blokują tylko treści seksualne z udziałem małoletnich; wszystkie inne prawne, fikcyjne lub kontrowersyjne tematy dla dorosłych są dozwolone.
Specyfikacja techniczna
Wszystkie rzeczywiste limity i funkcje API w jednym miejscu — sprawdź je przed doładowaniem.
| Element | Wartość |
|---|---|
| Format API | zgodne z OpenAI: działa każdy SDK OpenAI — zmień base URL i klucz |
| Endpointy | POST /v1/chat/completions · GET /v1/models |
| ID modelu | uncensored |
| Uwierzytelnianie | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.ttsapihub.com/v1 |
| Okno kontekstu | 100 000 tokenów (wejście + odpowiedź) |
| Strumieniowanie | tak — server-sent events; ostatni fragment zawiera zużycie tokenów |
| Tryb JSON | response_format: {"type": "json_object"} |
| Parametry | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Wywoływanie funkcji | tak — tools, tool_choice; odpowiedź zawiera tool_calls, także w strumieniu; wyniki jako role: tool |
| Maks. odpowiedź | do reszty okna 100 000 tokenów; max_tokens opcjonalne (bez osobnego limitu) |
| Nagłówki odpowiedzi | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Równoległe zapytania | do 8 jednocześnie na klucz |
| Rozmiar zapytania | do 8 MB |
| Limit zapytań | 300 zapytań na minutę na klucz |
| Rozliczenie | przedpłacony kredyt według rzeczywistego zużycia; błędy i odmowy są darmowe |
| Bonus | +5% od $50, +10% od $100 |
| Cena | $0,25 za 1 mln tokenów wejścia · $1,00 za 1 mln tokenów wyjścia |
| Doładowanie | USDT (TRC20) lub USDC (Base), dowolna pełna kwota od $10 do $500 |
| Ważność | opłacony kredyt nie wygasa, bez subskrypcji |
| Darmowy kredyt | $0,50 na 7 dni, bez karty · Klucz próbny: 2 równoległe żądania, 60 na minutę; pełne limity (8 i 300) po pierwszym doładowaniu |
| Treści | treści dla dorosłych dozwolone; treści seksualne z udziałem nieletnich są odrzucane |
| Klucze | jeden aktywny klucz na konto; nowy zastępuje stary |
| Logowanie | Google albo e-mail i hasło |
Kody błędów
Błędy wracają jako JSON ze stałym type; nieudane i odrzucone zapytania są bezpłatne.
| Kod | Typ | Znaczenie |
|---|---|---|
400 | bad_request | błędny JSON, puste wiadomości, zły parametr lub za długi kontekst |
401 | missing_key · invalid_key · key_revoked | brak klucza, zły klucz lub klucz zastąpiony nowym |
402 | no_credit | brak kredytu — doładuj, działa od razu |
403 | content_blocked | treści seksualne z nieletnimi — odmowa, bez opłaty |
404 | not_found | nieznany endpoint |
413 | request_too_large | treść większa niż 8 MB |
429 | rate_limited · concurrency | ponad 300/min lub 8 równolegle — odczekaj i ponów |
503 | upstream_busy | model zajęty — ponów za kilka sekund |
Pytania i odpowiedzi
Czy to API generuje audio?
Nie, to jest API typu text-only. Generuje tekstowy prompt lub dialog, który następnie wysyłasz do oddzielnego silnika TTS do generowania audio. Nie produkuje plików audio, obrazów ani wideo.
Jak zacząć korzystać z API?
Zarejestruj się na stronie Uzyskanie klucza API, podając adres e-mail i hasło. Otrzymasz natychmiast klucz API i $0,50 w darmowym kredycie próbnym ważnym przez 7 dni. Nie jest wymagana karta kredytowa ani numer telefonu.
Jaki jest rozmiar okna kontekstu?
Model obsługuje 100 000-tokenowe okno kontekstu, obejmujące zarówno prompt wejściowy, jak i wygenerowane uzupełnienie. Pozwala to na przetwarzanie długich dokumentów lub zachowanie szerokiej historii rozmów w Twoim potoku.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień base URL. To cała konfiguracja.