Adres bazowy API TTS: czym jest i co wpisać
Adres bazowy to wspólna początkowa część każdego adresu endpointu. Na tej stronie wyjaśniamy, co wpisać dla tej usługi, która jest API modelu tekstowego LLM, a nie endpointem do syntezy mowy, oraz jak ją skonfigurować w popularnych narzędziach.
Zaktualizowano

Kluczowe punkty
- Adres bazowy tego API to https://api.ttsapihub.com/v1; ścieżki takie jak /chat/completions dodaje się po nim.
- Mimo nazwy strony, endpoint zwraca tylko tekst. Nie ma endpointu do syntezy mowy ani audio.
- Większość narzędzi kompatybilnych z OpenAI wymaga tylko trzech wartości: bazowego URL, klucza API i ID modelu uncensored.
- Dwa częste błędy to podwojenie /v1 i wklejenie pełnej ścieżki /chat/completions w pole bazowego URL.
Adres bazowy i jedna ważna rzecz do wiedzy
Jeśli trafiłeś tu, szukając adresu bazowego API TTS, sprawdź jeden szczegół przed skopiowaniem: usługa za tą stroną to API modelu językowego tekstowego, a nie syntezator mowy. Adres bazowy to https://api.ttsapihub.com/v1, a endpointy to POST /v1/chat/completions i GET /v1/models. Nie ma trasy /audio/speech, listy głosów ani wyjścia audio.
To ma znaczenie, bo wiele narzędzi nazywa ustawienia ogólnie. Pole „adres bazowy” w kliencie działa tak samo, czy serwer zwraca tekst, czy dźwięk. Jeśli celem jest zamiana tekstu na audio, ten endpoint nie spełni zadania. Jeśli celem jest generowanie tekstu, który narzędzie do syntezy przeczyta później (np. scenariusze, dialogi, szkice narracji), endpoint ten dobrze się sprawdzi. Na liście kontrolnej potoku TTS znajdziesz wskazówki przy planowaniu takiego przepływu pracy, a w dokumentacji szybkiego startu znajdziesz listę wszystkich parametrów zapytania.
Reszta tej strony dotyczy dowolnego klienta kompatybilnego z OpenAI, więc jest przydatna nawet jeśli jesteś tu tylko po to, aby zrozumieć, jak działają adresy bazowe.
Czym tak naprawdę jest adres bazowy
Adres API składa się z dwóch części. Pierwsza identyfikuje usługę i wersję jej interfejsu. Druga określa akcję. Biblioteka klienta łączy je za Ciebie. W przypadku SDK OpenAI elementy te wyglądają następująco:
| Część | Wartość |
|---|---|
| Adres bazowy | https://api.ttsapihub.com/v1 |
| Ścieżka dodawana przez SDK dla czatu | /chat/completions |
| Pełny adres, który jest wywoływany | https://api.ttsapihub.com/v1/chat/completions |
| Ścieżka do listy modeli | /models |
Ponieważ SDK dodaje ścieżkę, podajesz tylko pierwszą część. W tym cały sens zmiany dostawcy przy zmianie jednej linii: format zapytania jest wspólny, więc jedyną rzeczą, która musi się zmienić, jest miejsce wysyłania zapytań. Zmienia się też klucz, ponieważ każda usługa wydaje własny. I nazwa modelu, ponieważ każda usługa nazywa swoje modele inaczej. Dla tego API identyfikator modelu to uncensored.
Dwa drobne szczegóły oszczędzają czas. Segment wersji, /v1, należy do adresu bazowego, ponieważ oznacza generację interfejsu; przyszły niekompatybilny interfejs działałby pod inną wersją, a Twój kod nie zmieni się, dopóki nie zdecydujesz się na zmianę. Śladowy ukośnik na końcu adresu bazowego jest akceptowany przez większość SDK, ale bezpieczniej go nie dodawać, aby połączone ścieżki nie zawierały podwójnego ukośnika.
Uwierzytelnianie to standardowy nagłówek Bearer: Authorization: Bearer YOUR_KEY. SDK budują ten nagłówek z klucza, który mu podasz, więc rzadko piszesz go ręcznie, z wyjątkiem curl.
Ustawianie bazowego URL w kodzie
Python
Oficjalny pakiet openai przyjmuje argument base_url. To pełne, działające wywołanie:
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": "Write a two-line scene opening."}],
)
print(resp.choices[0].message.content)Node
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: "Write a two-line scene opening." }],
});
console.log(resp.choices[0].message.content);curl
W curl piszesz cały adres samodzielnie, więc ścieżka jest wliczona:
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": "Say hello."}]}'Zmienne środowiskowe
Nowsze wersje oficjalnych SDK OpenAI odczytują OPENAI_BASE_URL oraz OPENAI_API_KEY ze środowiska, jeśli nie przekażesz ich w kodzie. To wygodne, gdy chcesz skierować istniejące oprogramowanie na nowy endpoint bez jego edycji. Ustaw je w powłoce lub menedżerze procesów, a następnie uruchom program normalnie. Sprawdź dokumentację wersji Twojego SDK, jeśli nie odczytują one tych zmiennych.
Ustawianie w edytorach i aplikacjach
Narzędzia akceptujące niestandardowy endpoint OpenAI pytają o te same trzy wartości. Nazwy się różnią, więc szukaj opisów takich jak poniższe:
- Cursor: w ustawieniach modelu jest opcja nadpisania bazowego adresu URL OpenAI. Wklej
https://api.ttsapihub.com/v1, dodaj swój klucz i dodajuncensoredjako niestandardową nazwę modelu. Etykiety interfejsu zmieniają się między wersjami Cursor, więc traktuj te nazwy jako wskazówkę. - SillyTavern: wybierz Chat Completion, a następnie źródło Custom (OpenAI-compatible), i wypełnij endpoint, klucz oraz model.
- Open WebUI i podobne interfejsy czatu: dodaj połączenie typu OpenAI z bazowym URL i kluczem.
- Twoje własne skrypty: zadziała dowolny klient HTTP, ponieważ interfejs to zwykły JSON przez HTTPS.
Niektóre narzędzia sprawdzają połączenie, wywołując GET /v1/models. To API obsługuje tę trasę, więc sprawdzenie przechodzi pomyślnie. Niektóre narzędzia pozwalają wybrać tylko z ustalonej listy; jeśli Twoje tak działa, szukaj pola niestandardowego lub ręcznego modelu, a nie rozwijanej listy.
Pamiętaj, do czego służy narzędzie. Edytor taki jak Cursor będzie wysyłał pytania o kod do ogólnego modelu czatu, co działa. Ale funkcje zależne od specjalnych endpointów, takich jak embeddingi do wyszukiwania kodu, nie są tutaj dostępne, ponieważ embeddingi nie są oferowane.
Błędy powodujące większość błędów bazowego URL
Prawie każde nieudane pierwsze połączenie wynika z jednego z tych powodów.
- Podwojenie wersji. Adres bazowy kończy się już na
/v1. Jeśli dodasz kolejny, adres stanie się/v1/v1/chat/completions, a serwer zwróci błąd nie znaleziono. - Wklejenie pełnej ścieżki. Pole bazowego URL oczekuje
https://api.ttsapihub.com/v1, a niehttps://api.ttsapihub.com/v1/chat/completions. SDK dodałoby ścieżkę po raz drugi. - Użycie adresu strony internetowej. Strona, którą czytasz, nie jest hostem API. Zapytania trafiają do hosta
api.pokazanego powyżej. - Wywołanie trasy mowy. Ścieżki takie jak
/audio/speechnie istnieją tutaj i zwracają błąd. - Zła lub brakująca nazwa modelu. Zawsze wysyłaj
uncensoredmałymi literami. - Problemy z kluczem API. Przypadkowa spacja lub brakujący prefiks
Bearerw ręcznie napisanym nagłówku powoduje błąd uwierzytelniania.
Aby odróżnić problem z URL od problemu z kluczem, pobierz listę modeli. Poprawny URL i zły klucz dają błąd uwierzytelniania. Zły URL daje błąd nie znaleziono, błąd DNS lub stronę HTML zamiast JSON.
curl https://api.ttsapihub.com/v1/models -H "Authorization: Bearer $API_KEY"
# then a minimal chat call with the model ID "uncensored":
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":"ping"}],"max_tokens":5}'Uzyskaj klucz i jego koszt
Potrzebujesz klucza, aby wszystko zadziałało. Zarejestruj się przez Google lub e-mail i hasło na stronie klucza API, a następnie jednym kliknięciem odbierz darmowy kredyt próbny w wysokości $0,50. Ważny przez 7 dni, jedno przypisanie na osobę, bez karty. Klucz próbny pozwala na 2 równoległe zapytania i 60 zapytań na minutę, podczas gdy pełny klucz to 8 równoległych i 300 na minutę.
Ceny to $0,15 za 1M tokenów wejściowych i $0,50 za 1M tokenów wyjściowych, pobierane z przedpłaconego kredytu bez subskrypcji. Zapytanie z 2 000 tokenami wejściowymi i 500 tokenami wyjściowymi kosztuje $0,0003 plus $0,00025, czyli $0,00055. Doładowania wynoszą od $20 do $500 z bonusami od $50, a płatności przyjmujemy kartą (Visa, Mastercard, Apple Pay, Google Pay) lub kryptowalutami (USDT w TRC20, USDC na Base). Na stronie z cenami znajdziesz pełną tabelę. Prompty nie są używane do trenowania, a model jest przeznaczony wyłącznie do użytku przez osoby dorosłe w celach zgodnych z prawem, bez treści seksualnych z udziałem nieletnich.
Więcej przewodników
Pytania i odpowiedzi
Jaki jest podstawowy URL tego API?
To jest https://api.ttsapihub.com/v1. Dodaj ścieżki takie jak /chat/completions po nim, lub pozwól swojemu SDK dodać je.
Czy mogę użyć tego endpointa do zamiany tekstu na mowę?
Nie. Zwraca tylko tekst, bez generowania audio, obrazu ani wideo. Możesz go użyć do napisania tekstu, który kolejne narzędzie zamieni na mowę.
Czy dodaję /chat/completions do Base URL w SDK?
Nie. SDK dodaje tę ścieżkę samodzielnie. Tylko czysti klienci HTTP, tacy jak curl, potrzebują pełnego adresu.
Którą nazwę modelu powinienem wysłać?
Wyślij uncensored. Możesz potwierdzić, co lista serwera, wysyłając GET /v1/models.
Dlaczego moje narzędzie zwraca błąd not found po ustawieniu URL?
Najczęstsze przyczyny to podwojony /v1, wklejenie pełnej ścieżki lub użycie adresu strony internetowej zamiast api. host.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień bazowy URL. To cała konfiguracja.