hexgrad: Kokoro 82M
Kokoro 82M di hexgrad genera parlato con un modello compatto da 82 milioni di parametri e una voce preimpostata specifica della lingua. Il profilo v1.0 documentato comprende otto lingue, 54 voci e output audio a 24 kHz.
Informazioni sul modello
Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.
Kokoro 82M è il modello di sintesi vocale a pesi aperti di hexgrad con ottantadue milioni di parametri. La scheda descrive un’architettura compatta solo decoder basata su StyleTTS 2 e iSTFTNet. Il testo scritto viene convertito in informazioni di pronuncia e poi in parlato con una voce selezionata. La release v1.0 documentata fornisce cinquantaquattro voci in otto lingue; quel profilo è distinto dalla precedente release v0.19 esclusivamente inglese.
Selezionare lingua e voce corrispondenti
Il catalogo delle voci copre inglese americano e britannico, giapponese, cinese mandarino, spagnolo, francese, hindi, italiano e portoghese brasiliano. I due accenti inglesi sono varianti di una lingua. Nomi delle voci e impostazioni linguistiche vanno insieme: af_heart è un esempio di inglese americano nel flusso ufficiale, mentre il catalogo ha gruppi separati per le altre lingue e accenti.
Scegli il parlante in base al materiale effettivo che leggerà. Una breve narrazione di corso può usare una voce preimpostata coerente nelle sezioni; una raccolta multilingue può selezionare una voce da ogni gruppo linguistico richiesto. La copertura del catalogo differisce tra i gruppi. Il francese, per esempio, è rappresentato da una sola voce elencata anziché dalla selezione più ampia disponibile per l’inglese.
Preparare pronuncia e passaggi
La pipeline di riferimento di Kokoro converte le forme scritte in fonemi. Gli esempi permettono una lettura fonetica esplicita per un termine, quindi un nome difficile può essere preparato anziché lasciato a una grafia ambigua. Mantieni naturale la frase circostante e preserva le parole che l’ascoltatore dovrebbe sentire.
Un passaggio concreto è: «La guida ha tre parti. Prima scegli il materiale. Poi confronta gli esempi. Infine salva la versione che vuoi usare». Scrivi frasi complete e mantieni le pause implicite nella punteggiatura. Per un contenuto lungo, organizza l’input in paragrafi coerenti anziché trattare l’intero documento come un unico enunciato ininterrotto.
La guida alle voci afferma che molti parlanti funzionano meglio con passaggi di circa 100–200 token nell’ambito di una lunghezza di circa 500 token. Osserva debolezze su enunciati molto brevi, soprattutto sotto 10–20 token, e una tendenza ad accelerare nei passaggi più lunghi, in particolare oltre 400 token. Sono osservazioni di preparazione basate sui token, non limiti di conteggio delle parole o durata della registrazione. Combinare frammenti brevi o suddividere un passaggio lungo può fornire un’unità di parlato più adatta.
Output audio e ritmo
Il flusso ufficiale produce testo elaborato, fonemi e un risultato audio per ogni segmento generato. Salva i segmenti come WAV a 24.000 Hz ed espone un’impostazione di velocità nella pipeline di riferimento. Mantieni testo e ordine dei segmenti associati all’audio, affinché la narrazione assemblata segua il copione previsto.
Un controllo utile di montaggio consiste nell’ascoltare il confine tra due passaggi e poi esaminare nomi ricorrenti e ritmo degli elenchi. L’output audio e la vista dei fonemi hanno scopi differenti: uno è la registrazione udita dall’ascoltatore, l’altra aiuta a esaminare come viene pronunciato il testo scritto.
Copertura linguistica e limiti utili
Il produttore osserva esplicitamente che il supporto non inglese può essere limitato perché elaborazione della pronuncia o dati di addestramento delle voci sono scarsi. I gruppi di voci preimpostate non dovrebbero quindi essere trattati come garanzie equivalenti di interpretazione per ogni passaggio. Scegli un parlante adatto e verifica nomi e formulazioni reali richiesti dall’attività.
Il risultato utile è un passaggio parlato o una narrazione assemblata con una voce preimpostata documentata, con testo preparato secondo le esigenze di pronuncia e lunghezza dei passaggi. Questo profilo segue il materiale v1.0 di Kokoro 82M del produttore; un altro checkpoint, un’implementazione quantizzata o una voce modificata esternamente ha un ambito tecnico proprio.
Ailoot Ultra · Sintesi vocale POST /v1/audio/speech hexgrad/kokoro-82m
hexgrad/kokoro-82mIntroduzione
Kokoro 82M di hexgrad genera parlato con un modello compatto da 82 milioni di parametri e una voce preimpostata specifica della lingua. Il profilo v1.0 documentato comprende otto lingue, 54 voci e output audio a 24 kHz.
- Input accettati
- Testo
- Risultati
- Audio
Disponibile in Ailoot · input e metodi
Ailoot Ultra · Sintesi vocale POST /v1/audio/speech
- Tipi di input
text- Tipi di output
audio- Formato di output
- mp3
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti hexgrad/kokoro-82m | Predefinito— |
Campoinput | Tipostring | RequisitoObbligatorio | Valori e limiti Lunghezza minima: 1 Unità: caratteri Unicode | Predefinito— |
Campovoice | Tipostring | RequisitoObbligatorio | Valori e limiti 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 | Predefinito— |
Camporesponse_format | Tipostring | RequisitoObbligatorio | Valori e limiti mp3 | Predefinito— |
Combinazioni di materiali in input
text_to_speech · Obbligatorio: input
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattomodel, input, voice, response_format |
Parametrovoice_ids | Contrattoaf_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 |
Parametroresponse_format | Contrattomp3 |
Parametromax_input_characters | Contrattonull |
Parametroother_options | Contrattofalse |
Parametroinput | Contrattotesto UTF-8 esatto; conteggio dei caratteri Unicode senza normalizzazione |
Parametromaterial_types | Contrattotext |
Ciclo di vita: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id effettivamente restituito o record della libreria multimediale
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Seleziona la voce esatta dal profilo di questo modello.
I caratteri in ingresso e i secondi di audio sono unità di misurazione diverse.
Tariffe
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
Tariffe Ailoot
Prezzi per configurazione
Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.
| Configurazione | Listino delle tariffe | Quantità fatturabile | Unità di fatturazione | Costo |
|---|---|---|---|---|
| ConfigurazioneTariffe base dei token | Listino delle tariffeTariffa base | Quantità fatturabile— | Unità di fatturazione— | Costo Input · Token in input — / 1K token Output · Token in output — / 1K token Input · Lettura dalla cache — / 1K token Input · Scrittura nella cache — / 1K token Input · Scrittura nella cache, 1 ora — / 1K token |
| ConfigurazioneUltra | Listino delle tariffe— | Quantità fatturabileOgni punto di codice Unicode conta come un carattere, inclusi i caratteri Han. | Unità di fatturazioneper 1K caratteri in input | Costo Input · carattere in ingresso $0.008 per 1K caratteri in input |
Dettagli della tariffa di riferimento
I listini di riferimento del modello non modificano la selezione del metodo, i preventivi o gli addebiti. Gli addebiti attivi usano le tariffe del metodo Ailoot selezionato.
hexgrad: Kokoro 82M
Prezzi per configurazione
| Configurazione | Condizioni di fatturazione | Costo |
|---|---|---|
| Configurazionehexgrad: Kokoro 82M · Configurazione predefinita | Condizioni di fatturazioneConfigurazione predefinita | Costo Input · Caratteri in input 0,00000124 USD per carattere in input |
Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →
Esempi di richieste
Ailoot Ultra · Sintesi vocale
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
Ricevi e salva i risultati
Ailoot Ultra · Sintesi vocale
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Altre letture di contenuto
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
Conserva tutti i risultati completati
Conserva ogni risposta, file e parte di contenuto restituiti per intero.
Conserva il risultato binario completo e gli header. Se vengono restituiti JSON o più output, conserva ogni elemento data e recupera ogni URL firmato effettivo della risorsa.
Se occorre verificare la risposta originale
Conserva operation_id/X-Client-Request-ID originale per la riconciliazione senza reinvio; non esiste una rotta dedicata al polling audio.
Campi della risposta
| Campo | Tipo |
|---|---|
Campobinary audio | Tipobytes |
Camporesponse headers | Tipoheaders |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validi | Passaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione. |
Rispostaserver_error | CondizioneLa risposta restituita indica che l'operazione o il risultato richiede una verifica | Passaggio successivoConserva l'ID originale di operazione/task restituito, gli header della richiesta e la risposta; continua a leggere l'operazione originale tramite le modalità supportate. Non reinviare la richiesta di creazione. |
Alias
Alias del modello
Ailoot Ultra hexgrad/kokoro-82m
Alias dei percorsi dei metodi
Usa i percorsi dei metodi indicati sopra.
ID di chiamata correlati
FAQ · hexgrad: Kokoro 82M
- Quali input e risultati sono disponibili?
POST /v1/audio/speech·hexgrad/kokoro-82m:text→audio- Quali campi usa la richiesta?
POST /v1/audio/speech·hexgrad/kokoro-82m:model,input,voice,response_format