hexgrad: Kokoro 82M
Kokoro 82M de hexgrad génère de la parole avec un modèle compact de 82 millions de paramètres et une voix prédéfinie propre à la langue. Son profil v1.0 documenté comprend huit langues, 54 voix et une sortie audio à 24 kHz.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
Kokoro 82M est le modèle de synthèse vocale à poids ouverts de hexgrad avec quatre-vingt-deux millions de paramètres. Sa fiche de modèle décrit une architecture compacte à décodeur seul, fondée sur StyleTTS 2 et iSTFTNet. Le texte écrit est converti en informations de prononciation, puis en parole dans une voix choisie. La publication v1.0 documentée fournit cinquante-quatre voix dans huit langues ; ce profil est distinct de la publication v0.19 antérieure, exclusivement anglophone.
Choisir une langue et une voix correspondantes
Le catalogue vocal couvre l’anglais américain et britannique, le japonais, le chinois mandarin, l’espagnol, le français, l’hindi, l’italien et le portugais brésilien. Les deux accents anglais sont des variantes d’une même langue. Les noms de voix et les réglages linguistiques vont ensemble : af_heart est un exemple d’anglais américain dans le processus officiel, tandis que le catalogue possède des groupes distincts pour les autres langues et accents.
Choisissez le locuteur en fonction du contenu réel qu’il lira. Une courte narration de cours peut utiliser une voix prédéfinie cohérente dans toutes ses sections ; une collection multilingue peut choisir une voix dans chaque groupe linguistique requis. La couverture du catalogue diffère entre les groupes. Le français, par exemple, est représenté par une seule voix répertoriée, plutôt que par le choix plus vaste disponible en anglais.
Préparer la prononciation et les passages
Le pipeline de référence de Kokoro convertit les formes écrites en phonèmes. Ses exemples autorisent une lecture phonétique explicite pour un terme ; un nom difficile peut donc être préparé, plutôt que laissé à une graphie ambiguë. Gardez la phrase environnante naturelle et préservez les mots que l’auditeur doit entendre.
Un passage concret est : « Le guide comporte trois parties. D’abord, choisissez le contenu. Ensuite, comparez les exemples. Enfin, sauvegardez la version que vous voulez utiliser. » Rédigez des phrases complètes et gardez les pauses suggérées par la ponctuation. Pour un contenu long, organisez l’entrée en paragraphes cohérents, plutôt que de traiter le document entier comme un énoncé ininterrompu.
Le guide vocal indique que de nombreux locuteurs donnent leurs meilleurs résultats avec des passages d’environ 100 à 200 tokens dans une plage approximative de 500 tokens. Il relève des faiblesses sur les énoncés très courts, particulièrement en dessous de 10 à 20 tokens, et une tendance à accélérer sur les passages plus longs, surtout au-delà de 400 tokens. Ce sont des observations de préparation fondées sur les tokens, plutôt que des limites en nombre de mots ou en durée d’enregistrement. Réunir de courts fragments ou diviser un long passage peut fournir une unité de parole plus adaptée.
Sortie audio et rythme
Le processus officiel fournit le texte traité, les phonèmes et un résultat audio pour chaque segment généré. Il sauvegarde ces segments en WAV à 24 000 Hz et expose un réglage de vitesse dans le pipeline de référence. Gardez le texte des segments et leur ordre associés à l’audio afin que la narration assemblée suive le script visé.
Une vérification de montage utile consiste à écouter la jonction entre deux passages, puis à examiner les noms récurrents et le rythme des listes. La sortie audio et la vue des phonèmes servent à des objectifs différents : l’une est l’enregistrement entendu par l’auditeur, l’autre aide à examiner la prononciation du texte écrit.
Couverture linguistique et limites utiles
Le fabricant souligne explicitement que la prise en charge d’autres langues que l’anglais peut être limitée parce que le traitement de prononciation ou les données d’entraînement des voix sont restreints. Ses groupes de voix prédéfinies ne doivent donc pas être traités comme des garanties égales d’interprétation pour chaque passage. Choisissez un locuteur adapté et vérifiez les noms et les formulations réels nécessaires à la tâche.
Le livrable utile est un passage parlé ou une narration assemblée utilisant une voix prédéfinie documentée, avec un texte préparé selon ses besoins de prononciation et de longueur de passage. Ce profil suit les matériaux v1.0 de Kokoro 82M du fabricant ; une autre version, une implémentation quantifiée ou une voix modifiée extérieurement possèdent leur propre périmètre technique.
Ailoot Ultra · Synthèse vocale POST /v1/audio/speech hexgrad/kokoro-82m
hexgrad/kokoro-82mPour commencer
Kokoro 82M de hexgrad génère de la parole avec un modèle compact de 82 millions de paramètres et une voix prédéfinie propre à la langue. Son profil v1.0 documenté comprend huit langues, 54 voix et une sortie audio à 24 kHz.
- Entrées acceptées
- Texte
- Résultats
- Audio
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Synthèse vocale POST /v1/audio/speech
- Entrée
text- Sortie
audio- Format de sortie
- mp3
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites hexgrad/kokoro-82m | Par défaut— |
Champinput | Typestring | ExigenceObligatoire | Valeurs et limites Longueur minimale: 1 Unité: caractères Unicode | Par défaut— |
Champvoice | Typestring | ExigenceObligatoire | Valeurs et limites 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 | Par défaut— |
Champresponse_format | Typestring | ExigenceObligatoire | Valeurs et limites mp3 | Par défaut— |
Combinaisons d’éléments d’entrée
text_to_speech · Obligatoire : input
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, input, voice, response_format |
Paramètrevoice_ids | Contrataf_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 |
Paramètreresponse_format | Contratmp3 |
Paramètremax_input_characters | Contratnull |
Paramètreother_options | Contratfalse |
Paramètreinput | Contrattexte UTF-8 exact; nombre de caractères Unicode sans normalisation |
Paramètrematerial_types | Contrattext |
Cycle de vie : synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Sélectionnez la voix exacte dans ce profil de modèle.
Les caractères d’entrée et les secondes audio sont des unités de mesure distinctes.
Tarifs
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs Ailoot
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité facturable | Unité de facturation | Coût |
|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité facturable— | Unité de facturation— | Coût Entrée · Jetons en entrée — / 1K jetons Sortie · Jetons en sortie — / 1K jetons Entrée · Lecture du cache — / 1K jetons Entrée · Écriture dans le cache — / 1K jetons Entrée · Écriture dans le cache, 1 h — / 1K jetons |
| ConfigurationUltra | Barème tarifaire— | Quantité facturableChaque point de code Unicode compte pour un caractère, y compris les caractères Han. | Unité de facturationpar 1K caractères en entrée | Coût Entrée · caractère en entrée $0.008 par 1K caractères en entrée |
Détails du tarif de référence
Les barèmes de référence du modèle ne modifient ni la sélection de méthode, ni les devis, ni les coûts. Les frais actifs utilisent les tarifs de la méthode Ailoot sélectionnée.
hexgrad: Kokoro 82M
Prix par configuration
| Configuration | Conditions de facturation | Coût |
|---|---|---|
| Configurationhexgrad: Kokoro 82M · Configuration par défaut | Conditions de facturationConfiguration par défaut | Coût Entrée · Caractères en entrée 0,00000124 USD par caractère en entrée |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Synthèse 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
Recevoir et enregistrer les résultats
Ailoot Ultra · Synthèse vocale
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Autres lectures de contenu
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
Conserver tous les résultats terminés
Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.
Conservez le résultat binaire complet et les en-têtes. Si une réponse JSON ou plusieurs sorties sont renvoyées, conservez chaque élément de données et récupérez chaque ressource via son URL signée réelle.
Si la réponse d’origine doit être vérifiée
Conservez l’operation_id/X-Client-Request-ID d’origine pour le rapprochement sans nouvelle soumission ; aucune route dédiée à l’interrogation du statut audio.
Champs de la réponse
| Champ | Type |
|---|---|
Champbinary audio | Typebytes |
Champresponse headers | Typeheaders |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionChamps obligatoires, représentation des éléments fournis ou valeur de paramètre invalides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Réponseserver_error | ConditionLa réponse renvoyée indique que l’opération ou le résultat nécessite une vérification | Étape suivanteConservez l’identifiant d’opération/de tâche initialement renvoyé, les en-têtes de la requête et la réponse ; poursuivez les lectures prises en charge de cette opération d’origine. Ne soumettez pas à nouveau la requête de création. |
Alias
Alias du modèle
Ailoot Ultra hexgrad/kokoro-82m
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · hexgrad: Kokoro 82M
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/audio/speech·hexgrad/kokoro-82m:text→audio- Quels champs la requête utilise-t-elle ?
POST /v1/audio/speech·hexgrad/kokoro-82m:model,input,voice,response_format