tts-1
TTS-1 zamienia przygotowany tekst na audio z mową z wyborem głosów, szybkości odtwarzania i formatów wyjściowych. OpenAI optymalizuje tę wersję pod kątem generowania mowy z niższym opóźnieniem, dzięki czemu jest praktycznym wyborem do szybkich odczytów, krótkiej narracji i strumieniowego dostarczania gotowego scenariusza.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
TTS-1 to model zamiany tekstu na mowę OpenAI zoptymalizowany pod kątem szybkości. Otrzymuje słowa do wypowiedzenia i tworzy audio, a nie transkrypcję lub odpowiedź pisemną. Przykłady producenta obejmują narrację artykułów, tworzenie mowy w kilku językach i odtwarzanie napływającego audio. TTS-1 jest wyborem o niższym opóźnieniu w porównaniu z TTS-1 HD; model HD kładzie nacisk na jakość wyjścia. Użyteczna decyzja dotyczy więc tego, czy w zadaniu ważniejsze jest szybkie odtwarzanie, czy profil narracji o wyższej jakości.
Proces generowania mowy opiera się na modelu, tekście wejściowym i wybranym głosie. Dokumentacja OpenAI ogranicza wejście tekstowe do 4096 znaków — jest to limit znaków, a nie okno kontekstu tokenów. Przed syntezą przygotuj rzeczywisty scenariusz: napisz zdania, które słuchacz ma usłyszeć, rozstrzygnij skróty i ustal wymowę nazw, wielkości i nagłówków. W długim artykule zorganizuj sekcje w samodzielnie zrozumiałe fragmenty, zamiast traktować cały dokument jako jedno żądanie mowy.
Aktualna lista głosów OpenAI właściwa dla TTS-1 obejmuje alloy, ash, coral, echo, fable, onyx, nova, sage i shimmer. Są to gotowe głosy, a nie pełny zestaw każdego nowszego modelu mowy. Głosy są zoptymalizowane dla angielskiego, a mowa wielojęzyczna jest wspierana przez podanie wejścia w języku do wypowiedzenia. Dobieraj głos na reprezentatywnym fragmencie z tym samym słownictwem i tempem co końcowy scenariusz. Gdy ważna jest ciągłość, utrzymuj wybór w powiązanych klipach.
Audio można strumieniować fragmentami, aby odtwarzanie zaczęło się przed zakończeniem generowania całego pliku. Jest to strumieniowanie mowy utworzonej z tekstu, a nie dwustronna rozmowa głosowa. Udokumentowane formaty wyjściowe to MP3, Opus, AAC, FLAC, WAV i PCM, z MP3 jako domyślnym. MP3 i AAC zapewniają skompresowane audio; Opus pasuje do strumieniowania i komunikacji; FLAC jest bezstratny. WAV unika dekodowania skompresowanego audio, a surowy PCM zawiera próbki 24 kHz, 16-bitowe ze znakiem w porządku little-endian, bez nagłówka pliku. OpenAI zaleca WAV lub PCM, gdy priorytetem jest czas odpowiedzi.
Dokumentacja mowy udostępnia ustawienie szybkości od 0.25 do 4.0, z 1.0 jako wartością domyślną. Dodatkowe pole instrukcji w języku naturalnym nie działa z TTS-1, a wyjście zdarzeń SSE nie jest obsługiwane dla tego modelu. Udokumentowane parametry to scenariusz, głos, szybkość i format audio; parametrów akcentu, emocji lub szeptu nowszych modeli nie należy przypisywać tej wersji. Przygotowując klip, dobierz szybkość pod kątem zrozumiałości, a następnie oceń wypowiedziane słowa i pauzy, zamiast zakładać, że liczba znaków scenariusza wyznacza dokładny czas.
Przewodnik językowy obejmuje angielski, rosyjski, ukraiński, francuski, niemiecki, hiszpański, portugalski, włoski, arabski, chiński, japoński, koreański, hindi, kazachski i wiele innych języków. Mowa podąża za językiem dostarczonego tekstu. Brief wielojęzycznej narracji zaczyna się więc od przetłumaczonego scenariusza i docelowych odbiorców; zamiana tekstu na mowę jest etapem realizacji, a nie instrukcją tłumaczenia lub przepisania. W praktycznym ogłoszeniu przygotuj dokładny komunikat i nazwy. W narracji edukacyjnej zaznacz w wypowiadanych słowach granice sekcji i definicje.
Gotowym materiałem może być krótka instrukcja mówiona, fragment narracji lub segment audio do większego montażu. Sprawdź wymowę, kompletność, tempo i wybrany format na rzeczywistym wyjściu. Zachowaj scenariusz wraz z audio, aby późniejsze poprawki można było ograniczyć do właściwego fragmentu. Wytyczne OpenAI wymagają jasnego poinformowania słuchaczy, że głos wygenerowała AI. Ta informacja należy do doświadczenia słuchowego; nie zmienia TTS-1 w nagranie ludzkiego głosu ani nie dodaje modelowi funkcji klonowania głosu.
Ailoot Ultra · Synteza mowy POST /v1/audio/speech openai/tts-1
openai/tts-1Start
TTS-1 zamienia przygotowany tekst na audio z mową z wyborem głosów, szybkości odtwarzania i formatów wyjściowych. OpenAI optymalizuje tę wersję pod kątem generowania mowy z niższym opóźnieniem, dzięki czemu jest praktycznym wyborem do szybkich odczytów, krótkiej narracji i strumieniowego dostarczania gotowego scenariusza.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Audio
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Synteza mowy POST /v1/audio/speech
- Wejście
text- Wyjście
audio- Format wyjściowy
- mp3
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity openai/tts-1 | Domyślnie— |
Poleinput | Typstring | WymaganieWymagane | Wartości i limity Minimalna długość: 1 Maksymalna długość: 4096 Jednostka: znaki Unicode | Domyślnie— |
Polevoice | Typstring | WymaganieWymagane | Wartości i limity alloy | Domyślnie— |
Kombinacje materiałów wejściowych
text_to_speech · Wymagane: input
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, input, voice |
Parametrvoice_ids | Kontraktalloy |
Parametrmax_input_characters | Kontrakt4096 |
Parametrother_options | Kontraktfalse |
Parametrinput | Kontraktdokładny tekst UTF-8; liczba znaków Unicode bez normalizacji |
Parametrmaterial_types | Kontrakttext |
Cykl życia: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Rzeczywiście zwrócony task_id lub wpis w bibliotece multimediów
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Wybierz dokładny głos z profilu tego modelu.
Znaki wejściowe i sekundy dźwięku to różne jednostki pomiaru.
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Stawki Ailoot
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Ilość rozliczana | Ilość do rozliczenia | Jednostka rozliczeniowa | Opłata |
|---|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Ilość rozliczana— | Ilość do rozliczenia— | Jednostka rozliczeniowa— | Opłata Wejście · Tokeny wejściowe — / 1K tokenów Wyjście · Tokeny wyjściowe — / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
| KonfiguracjaUltra | Tabela stawek— | Ilość rozliczanaKażdy punkt kodowy Unicode liczy się jako jeden znak, w tym znaki Han. | Ilość do rozliczenia— | Jednostka rozliczeniowaza 1K znaków wejściowych | Opłata Wejście · znak wejściowy $0.03 za 1K znaków wejściowych |
| KonfiguracjaZa żądanie | Tabela stawek— | Ilość rozliczana— | Ilość do rozliczeniajedno żądanie | Jednostka rozliczeniowa— | Opłata Wejście $0 za żądanie |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Synteza mowy
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/tts-1", "input": "Good afternoon! This is a short voice take.", "voice": "alloy"}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o speech.mp3
Odbieranie i zapisywanie wyników
Ailoot Ultra · Synteza mowy
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Inne odczyty treści
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj pełny wynik binarny i nagłówki. Jeśli zwrócono JSON lub wiele wyników, zachowaj każdy element danych i pobierz zasób spod każdego rzeczywiście zwróconego podpisanego adresu URL.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj pierwotny operation_id/X-Client-Request-ID do uzgodnienia danych bez ponownego wysyłania żądania; brak osobnej ścieżki API do cyklicznego sprawdzania stanu audio.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Polebinary audio | Typbytes |
Poleresponse headers | Typheaders |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
Odpowiedźserver_error | WarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzenia | Następny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra openai/tts-1
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · tts-1
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/audio/speech·openai/tts-1:text→audio- Jakich pól używa żądanie?
POST /v1/audio/speech·openai/tts-1:model,input,voice- Jakie limity obowiązują?
POST /v1/audio/speech·openai/tts-1:input.maximum_length:4096