hexgrad: Kokoro 82M
Kokoro 82M firmy hexgrad generuje mowę za pomocą kompaktowego modelu o 82 milionach parametrów i gotowego głosu właściwego dla języka. Udokumentowany profil v1.0 obejmuje osiem języków, 54 głosy i wyjście audio 24 kHz.
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.
Kokoro 82M to model zamiany tekstu na mowę hexgrad z otwartymi wagami i osiemdziesięcioma dwoma milionami parametrów. Karta modelu opisuje kompaktową architekturę decoder-only opartą na StyleTTS 2 i iSTFTNet. Pisemny tekst jest przekształcany w informacje o wymowie, a następnie w mowę wybranym głosem. Udokumentowane wydanie v1.0 udostępnia pięćdziesiąt cztery głosy w ośmiu językach; profil ten różni się od wcześniejszego anglojęzycznego wydania v0.19.
Wybierz pasujący język i głos
Katalog głosów obejmuje amerykański i brytyjski angielski, japoński, chiński mandaryński, hiszpański, francuski, hindi, włoski i brazylijski portugalski. Dwa akcenty angielskie są wariantami jednego języka. Nazwy głosów i ustawienia języka stanowią parę: af_heart to przykład amerykańskiego angielskiego w oficjalnym procesie, a katalog ma osobne grupy dla pozostałych języków i akcentów.
Dobieraj mówcę do rzeczywistego materiału, który będzie czytać. Krótka narracja kursu może używać jednego spójnego gotowego głosu we wszystkich sekcjach; zbiór wielojęzyczny może wybierać głos z każdej wymaganej grupy językowej. Zakres katalogu różni się między grupami. Francuski reprezentuje na przykład jeden wymieniony głos, zamiast większego wyboru dostępnego dla angielskiego.
Przygotuj wymowę i fragmenty
Referencyjny proces Kokoro zamienia formy pisemne na fonemy. Przykłady pozwalają jawnie określić odczyt fonetyczny terminu, dzięki czemu trudną nazwę można przygotować, zamiast pozostawiać ją niejednoznacznej pisowni. Zachowaj naturalność otaczającego zdania i słowa, które słuchacz ma usłyszeć.
Praktyczny fragment brzmi: „Przewodnik ma trzy części. Najpierw wybierz materiał. Następnie porównaj przykłady. Na koniec zapisz wersję, której chcesz użyć”. Pisz pełne frazy i zachowuj pauzy wynikające z interpunkcji. Długi materiał zorganizuj w spójne akapity, zamiast traktować cały dokument jako jedną nieprzerwaną wypowiedź.
Przewodnik głosów wskazuje, że wielu mówców działa najlepiej z fragmentami około 100–200 tokenów w obrębie zakresu około 500 tokenów. Zaznacza słabości przy bardzo krótkich wypowiedziach, szczególnie poniżej 10–20 tokenów, i tendencję do pośpiechu w dłuższych fragmentach, zwłaszcza powyżej 400 tokenów. Są to obserwacje przygotowania oparte na tokenach, a nie limity liczby słów lub długości nagrania. Połączenie krótkich fragmentów lub podzielenie długiego może zapewnić bardziej odpowiednią jednostkę mowy.
Wyjście audio i tempo
Oficjalny proces zwraca przetworzony tekst, fonemy i wynik audio dla każdego wygenerowanego segmentu. Zapisuje segmenty jako WAV z częstotliwością 24 000 Hz i udostępnia ustawienie szybkości w procesie referencyjnym. Zachowaj powiązanie tekstu segmentów i ich kolejności z audio, aby złożona narracja podążała za zamierzonym scenariuszem.
Przydatna kontrola montażowa polega na odsłuchaniu granicy między dwoma fragmentami, a następnie sprawdzeniu powracających nazw i tempa list. Wyjście audio i widok fonemów służą różnym celom: pierwsze jest nagraniem słyszanym przez odbiorcę, a drugi pomaga ocenić wymowę tekstu pisanego.
Zakres języków i użyteczne ograniczenia
Producent wprost zaznacza, że obsługa języków innych niż angielski może być ograniczona ze względu na przetwarzanie wymowy lub małą ilość danych treningowych głosów. Grupy gotowych głosów nie powinny więc być traktowane jako równorzędne gwarancje wykonania każdego fragmentu. Wybierz odpowiedniego mówcę i oceń rzeczywiste nazwy oraz sformułowania wymagane w zadaniu.
Użytecznym rezultatem jest wypowiedziany fragment lub złożona narracja z udokumentowanym gotowym głosem i tekstem przygotowanym pod kątem wymowy oraz długości fragmentów. Profil ten wynika z materiałów producenta Kokoro 82M v1.0; inny model, implementacja skwantyzowana lub głos zmodyfikowany zewnętrznie mają własny zakres techniczny.
Ailoot Ultra · Synteza mowy POST /v1/audio/speech hexgrad/kokoro-82m
hexgrad/kokoro-82mStart
Kokoro 82M firmy hexgrad generuje mowę za pomocą kompaktowego modelu o 82 milionach parametrów i gotowego głosu właściwego dla języka. Udokumentowany profil v1.0 obejmuje osiem języków, 54 głosy i wyjście audio 24 kHz.
- 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 hexgrad/kokoro-82m | Domyślnie— |
Poleinput | Typstring | WymaganieWymagane | Wartości i limity Minimalna długość: 1 Jednostka: znaki Unicode | Domyślnie— |
Polevoice | Typstring | WymaganieWymagane | Wartości i limity af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky, am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa, bf_alice, bf_emma, bf_isabella, bf_lily, bm_daniel, bm_fable, bm_george, bm_lewis, ef_dora, em_alex, em_santa, ff_siwis, hf_alpha, hf_beta, hm_omega, hm_psi, if_sara, im_nicola, jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro, jm_kumo, pf_dora, pm_alex, pm_santa, zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi, zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang | Domyślnie— |
Poleresponse_format | Typstring | WymaganieWymagane | Wartości i limity mp3 | 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, response_format |
Parametrvoice_ids | Kontraktaf_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky, am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa, bf_alice, bf_emma, bf_isabella, bf_lily, bm_daniel, bm_fable, bm_george, bm_lewis, ef_dora, em_alex, em_santa, ff_siwis, hf_alpha, hf_beta, hm_omega, hm_psi, if_sara, im_nicola, jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro, jm_kumo, pf_dora, pm_alex, pm_santa, zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi, zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang |
Parametrresponse_format | Kontraktmp3 |
Parametrmax_input_characters | Kontraktnull |
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 | Jednostka rozliczeniowa | Opłata |
|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Ilość rozliczana— | 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. | Jednostka rozliczeniowaza 1K znaków wejściowych | Opłata Wejście · znak wejściowy $0.008 za 1K znaków wejściowych |
Szczegóły taryfy referencyjnej
Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.
hexgrad: Kokoro 82M
Ceny według konfiguracji
| Konfiguracja | Warunki rozliczania | Opłata |
|---|---|---|
| Konfiguracjahexgrad: Kokoro 82M · Domyślna konfiguracja | Warunki rozliczaniaKonfiguracja domyślna | Opłata Wejście · Znaki wejściowe 0,00000124 USD za znak wejściowy |
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}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "hexgrad/kokoro-82m", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["af_alloy", "af_aoede", "af_bella", "af_heart", "af_jessica", "af_kore", "af_nicole", "af_nova", "af_river", "af_sarah", "af_sky", "am_adam", "am_echo", "am_eric", "am_fenrir", "am_liam", "am_michael", "am_onyx", "am_puck", "am_santa", "bf_alice", "bf_emma", "bf_isabella", "bf_lily", "bm_daniel", "bm_fable", "bm_george", "bm_lewis", "ef_dora", "em_alex", "em_santa", "ff_siwis", "hf_alpha", "hf_beta", "hm_omega", "hm_psi", "if_sara", "im_nicola", "jf_alpha", "jf_gongitsune", "jf_nezumi", "jf_tebukuro", "jm_kumo", "pf_dora", "pm_alex", "pm_santa", "zf_xiaobei", "zf_xiaoni", "zf_xiaoxiao", "zf_xiaoyi", "zm_yunjian", "zm_yunxi", "zm_yunxia", "zm_yunyang"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
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 hexgrad/kokoro-82m
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · hexgrad: Kokoro 82M
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/audio/speech·hexgrad/kokoro-82m:text→audio- Jakich pól używa żądanie?
POST /v1/audio/speech·hexgrad/kokoro-82m:model,input,voice,response_format