hexgrad: Kokoro 82M
Kokoro 82M van hexgrad genereert spraak met een compact model van 82 miljoen parameters en een taalspecifieke vooraf ingestelde stem. Het gedocumenteerde v1.0-profiel omvat acht talen, 54 stemmen en audio-uitvoer op 24 kHz.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Kokoro 82M is het tekst-naar-spraakmodel met open gewichten van hexgrad, met tweeëntachtig miljoen parameters. De modelkaart beschrijft een compacte architectuur met alleen een decoder, gebaseerd op StyleTTS 2 en iSTFTNet. Geschreven tekst wordt omgezet in uitspraakgegevens en vervolgens in spraak met een geselecteerde stem. De gedocumenteerde v1.0-release biedt vierenvijftig stemmen in acht talen; dit profiel staat los van de eerdere v0.19-release die alleen Engels ondersteunt.
Een passende taal en stem selecteren
De stemmencatalogus omvat Amerikaans en Brits Engels, Japans, Mandarijn-Chinees, Spaans, Frans, Hindi, Italiaans en Braziliaans Portugees. De twee Engelse accenten zijn varianten van één taal. Stemnamen en taalinstellingen horen bij elkaar: af_heart is een Amerikaans-Engels voorbeeld in de officiële workflow, terwijl de catalogus afzonderlijke groepen bevat voor de andere talen en accenten.
Kies de spreker aan de hand van het concrete materiaal dat deze zal voorlezen. Een korte cursustekst kan in alle onderdelen dezelfde vooraf ingestelde stem gebruiken; voor een meertalige verzameling kan een stem uit elke vereiste taalgroep worden geselecteerd. De dekking van de catalogus verschilt per groep. Frans is bijvoorbeeld vertegenwoordigd door één vermelde stem, terwijl voor Engels een ruimere keuze beschikbaar is.
Uitspraak en passages voorbereiden
De referentiepipeline van Kokoro zet geschreven vormen om in fonemen. In de voorbeelden kan voor een term een expliciete fonetische uitspraak worden opgegeven, zodat een moeilijke naam kan worden voorbereid in plaats van aan een dubbelzinnige spelling te worden overgelaten. Houd de omliggende zin natuurlijk en behoud de formulering die de luisteraar moet horen.
Een praktische passage is: “De handleiding bestaat uit drie delen. Kies eerst het materiaal. Vergelijk vervolgens de voorbeelden. Sla tot slot de versie op die u wilt gebruiken.” Schrijf volledige zinsdelen en behoud de pauzes die de leestekens aangeven. Verdeel de invoer voor een lang stuk in samenhangende alinea's, in plaats van het hele document als één ononderbroken uiting te behandelen.
Volgens de stemmengids presteren veel sprekers het best met passages van ongeveer 100–200 tokens binnen een bereik van circa 500 tokens. De gids vermeldt zwakke punten bij zeer korte uitingen, vooral onder 10–20 tokens, en een neiging om langere passages te gehaast uit te spreken, met name boven 400 tokens. Dit zijn observaties over de voorbereiding op basis van tokens, geen limieten voor het aantal woorden of de opnameduur. Het combineren van korte fragmenten of opdelen van een lange passage kan een geschiktere spraakeenheid opleveren.
Audio-uitvoer en tempo
De officiële workflow levert voor elk gegenereerd segment de verwerkte tekst, fonemen en een audioresultaat op. De workflow slaat die segmenten op als WAV op 24.000 Hz en biedt een snelheidsinstelling in de referentiepipeline. Houd de segmenttekst en de volgorde gekoppeld aan de audio zodat de samengestelde vertelopname het bedoelde script volgt.
Een nuttige montagecontrole is luisteren naar de overgang tussen twee passages en daarna terugkerende namen en het tempo van opsommingen controleren. De audio-uitvoer en de foneemweergave dienen verschillende doelen: de ene is de opname die de luisteraar hoort, de andere helpt te controleren hoe de geschreven tekst wordt uitgesproken.
Taaldekking en praktische grenzen
De maker vermeldt expliciet dat de ondersteuning voor andere talen dan Engels beperkt kan zijn doordat de uitspraakverwerking of de trainingsgegevens voor stemmen beperkt zijn. De groepen met vooraf ingestelde stemmen mogen daarom niet worden beschouwd als gelijke garanties voor de voordracht van elke passage. Kies een geschikte spreker en controleer de concrete namen en formuleringen die de taak vereist.
Een bruikbaar resultaat is een gesproken passage of samengestelde vertelopname met een gedocumenteerde vooraf ingestelde stem, waarbij de tekst is voorbereid met aandacht voor de uitspraak en geschikte passagelengte. Dit profiel volgt het v1.0-materiaal van de maker voor Kokoro 82M; een ander checkpoint, een gekwantiseerde implementatie of een extern aangepaste stem heeft een eigen technische reikwijdte.
Ailoot Ultra · Spraakgeneratie POST /v1/audio/speech hexgrad/kokoro-82m
hexgrad/kokoro-82mAan de slag
Kokoro 82M van hexgrad genereert spraak met een compact model van 82 miljoen parameters en een taalspecifieke vooraf ingestelde stem. Het gedocumenteerde v1.0-profiel omvat acht talen, 54 stemmen en audio-uitvoer op 24 kHz.
- Toegestane invoer
- Tekst
- Resultaten
- Audio
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Spraakgeneratie POST /v1/audio/speech
- Invoer
text- Uitvoer
audio- Uitvoerformaat
- mp3
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten hexgrad/kokoro-82m | Standaard— |
Veldinput | Typestring | VereisteVereist | Waarden en limieten Minimumlengte: 1 Eenheid: Unicode-tekens | Standaard— |
Veldvoice | Typestring | VereisteVereist | Waarden en limieten 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 | Standaard— |
Veldresponse_format | Typestring | VereisteVereist | Waarden en limieten mp3 | Standaard— |
Combinaties van invoermaterialen
text_to_speech · Vereist: input
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, input, voice, response_format |
Parametervoice_ids | Contractaf_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 |
Parameterresponse_format | Contractmp3 |
Parametermax_input_characters | Contractnull |
Parameterother_options | Contractfalse |
Parameterinput | Contractexacte UTF-8-tekst; aantal Unicode-tekens zonder normalisatie |
Parametermaterial_types | Contracttext |
Levenscyclus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · daadwerkelijk teruggegeven task_id of record in de mediabibliotheek
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Selecteer de exacte stem uit dit modelprofiel.
Invoertekens en audioseconden zijn verschillende meeteenheden.
Tarieven
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus geselecteerd is
- Flex-modus
- Niet opgegeven Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Ailoot-tarieven
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Factureerbare hoeveelheid | Rekeneenheid | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Factureerbare hoeveelheid— | Rekeneenheid— | Kosten Invoer · Invoertokens — / 1K tokens Uitvoer · Uitvoertokens — / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieUltra | Tariefstaffel— | Factureerbare hoeveelheidElk Unicode-codepunt telt als één teken, inclusief Han-tekens. | Rekeneenheidper 1K invoertekens | Kosten Invoer · invoerteken $0.008 per 1K invoertekens |
Details van het referentietarief
Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.
hexgrad: Kokoro 82M
Prijzen per configuratie
| Configuratie | Factureringsvoorwaarden | Kosten |
|---|---|---|
| Configuratiehexgrad: Kokoro 82M · Standaardconfiguratie | FactureringsvoorwaardenStandaardconfiguratie | Kosten Invoer · Invoertekens US$ 0,00000124 per invoerteken |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
Ailoot Ultra · Spraakgeneratie
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
Resultaten ophalen en opslaan
Ailoot Ultra · Spraakgeneratie
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Lezen van andere inhoud
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
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar het volledige binaire resultaat en de headers. Als JSON of meerdere uitvoerresultaten worden teruggegeven, bewaar dan elk gegevensitem en haal elke daadwerkelijke ondertekende asset-URL op.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de oorspronkelijke operation_id/X-Client-Request-ID voor reconciliatie zonder de aanvraag opnieuw in te dienen; er is geen afzonderlijke route om de audiostatus te pollen.
Antwoordvelden
| Veld | Type |
|---|---|
Veldbinary audio | Typebytes |
Veldresponse headers | Typeheaders |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |
Antwoordserver_error | VoorwaardeDe teruggegeven respons geeft aan dat de bewerking of het resultaat gecontroleerd moet worden | Volgende stapBewaar de oorspronkelijk teruggegeven bewerkings-/taak-ID, aanvraagheaders en respons; blijf de oorspronkelijke bewerking uitlezen via de ondersteunde leesaanvragen. Dien de aanmaakaanvraag niet opnieuw in. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra hexgrad/kokoro-82m
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · hexgrad: Kokoro 82M
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/audio/speech·hexgrad/kokoro-82m:text→audio- Welke velden gebruikt het verzoek?
POST /v1/audio/speech·hexgrad/kokoro-82m:model,input,voice,response_format