hexgrad: Kokoro 82M
O Kokoro 82M da hexgrad gera fala com um modelo compacto de 82 milhões de parâmetros e uma voz predefinida específica do idioma. O seu perfil documentado v1.0 inclui oito idiomas, 54 vozes e saída de áudio a 24 kHz.
Sobre o modelo
Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.
Kokoro 82M é o modelo da hexgrad de conversão de texto em fala com pesos abertos e oitenta e dois milhões de parâmetros. A sua ficha de modelo descreve uma arquitetura compacta apenas com descodificador, baseada em StyleTTS 2 e iSTFTNet. O texto escrito é convertido em informação de pronúncia e depois em fala na voz selecionada. A versão documentada v1.0 disponibiliza cinquenta e quatro vozes em oito idiomas; esse perfil é distinto da versão anterior v0.19, que só suporta inglês.
Selecionar um idioma e uma voz correspondentes
O catálogo de vozes abrange inglês americano e britânico, japonês, chinês mandarim, espanhol, francês, hindi, italiano e português brasileiro. Os dois sotaques ingleses são variantes de um único idioma. Os nomes das vozes e as definições de idioma estão ligados: af_heart é um exemplo de inglês americano no fluxo oficial, enquanto o catálogo tem grupos separados para os restantes idiomas e sotaques.
Escolha o locutor tendo em conta o material efetivo que irá ler. A narração de um curso curto pode usar uma voz predefinida consistente em todas as secções; uma coleção multilingue pode selecionar uma voz de cada grupo linguístico necessário. A cobertura do catálogo varia entre grupos. O francês, por exemplo, está representado por uma voz listada, em vez da seleção mais ampla disponível para inglês.
Preparar a pronúncia e os trechos
O fluxo de referência do Kokoro converte as formas escritas em fonemas. Os seus exemplos permitem uma leitura fonética explícita de um termo, para que um nome difícil possa ser preparado, em vez de ficar dependente de uma grafia ambígua. Mantenha a frase envolvente natural e preserve as palavras que o ouvinte deve ouvir.
Um trecho prático é: «O guia tem três partes. Primeiro, escolha o material. Depois, compare os exemplos. Por fim, guarde a versão que pretende utilizar.» Escreva frases completas e mantenha as pausas implícitas na pontuação. Numa peça longa, organize a entrada em parágrafos coerentes, em vez de tratar todo o documento como uma única enunciação ininterrupta.
O guia de vozes indica que muitos locutores têm melhor desempenho com trechos de cerca de 100–200 tokens dentro de um intervalo de aproximadamente 500 tokens. Aponta fragilidades em enunciados muito curtos, sobretudo abaixo de 10–20 tokens, e uma tendência para acelerar nos trechos mais longos, especialmente acima de 400 tokens. Estas são observações de preparação baseadas em tokens, e não limites de número de palavras ou de duração de gravação. Juntar fragmentos curtos ou dividir um trecho longo pode proporcionar uma unidade de fala mais adequada.
Saída de áudio e ritmo
O fluxo oficial devolve o texto processado, os fonemas e um resultado de áudio para cada segmento gerado. Guarda esses segmentos como WAV a 24 000 Hz e disponibiliza uma definição de velocidade no fluxo de referência. Mantenha o texto e a ordem dos segmentos associados ao áudio, para que a narração reunida siga o guião pretendido.
Uma verificação útil na edição é ouvir a passagem entre dois trechos e depois examinar os nomes recorrentes e o ritmo das listas. A saída de áudio e a vista de fonemas servem finalidades diferentes: uma é a gravação que o ouvinte ouve, a outra ajuda a examinar como o texto escrito está a ser pronunciado.
Cobertura linguística e limites úteis
O fabricante indica explicitamente que o suporte de idiomas diferentes do inglês pode ser limitado, porque o processamento da pronúncia ou os dados de treino de voz são reduzidos. Os seus grupos de vozes predefinidas não devem, por isso, ser tratados como garantias equivalentes de elocução para todos os trechos. Escolha um locutor adequado e reveja os nomes e as formulações efetivos exigidos pela tarefa.
A entrega útil é um trecho falado ou uma narração reunida com uma voz predefinida documentada, e com texto preparado de acordo com as necessidades de pronúncia e comprimento dos trechos. Este perfil segue os materiais do fabricante para Kokoro 82M v1.0; outro checkpoint, uma implementação quantizada ou uma voz modificada externamente têm o seu próprio âmbito técnico.
Ailoot Ultra · Síntese de voz POST /v1/audio/speech hexgrad/kokoro-82m
hexgrad/kokoro-82mIntrodução
O Kokoro 82M da hexgrad gera fala com um modelo compacto de 82 milhões de parâmetros e uma voz predefinida específica do idioma. O seu perfil documentado v1.0 inclui oito idiomas, 54 vozes e saída de áudio a 24 kHz.
- Entradas aceites
- Texto
- Resultados
- Áudio
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · Síntese de voz POST /v1/audio/speech
- Entrada
text- Saída
audio- Formato de saída
- mp3
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites hexgrad/kokoro-82m | Predefinição— |
Campoinput | Tipostring | RequisitoObrigatório | Valores e limites Comprimento mínimo: 1 Unidade: carateres Unicode | Predefinição— |
Campovoice | Tipostring | RequisitoObrigatório | Valores e 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 | Predefinição— |
Camporesponse_format | Tipostring | RequisitoObrigatório | Valores e limites mp3 | Predefinição— |
Combinações de materiais de entrada
text_to_speech · Obrigatório: input
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, input, voice, response_format |
Parâmetrovoice_ids | Contratoaf_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âmetroresponse_format | Contratomp3 |
Parâmetromax_input_characters | Contratonull |
Parâmetroother_options | Contratofalse |
Parâmetroinput | Contratotexto UTF-8 exato; contagem de carateres Unicode sem normalização |
Parâmetromaterial_types | Contratotext |
Ciclo de vida: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id efetivamente devolvido ou registo na biblioteca de multimédia
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Selecione a voz exata deste perfil de modelo.
Os carateres de entrada e os segundos de áudio são medidas de utilização diferentes.
Tarifários
As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.
- Modo rápido
- Não especificado Quando o modo rápido está selecionado
- Modo flex
- Não especificado Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
Tarifas Ailoot
Preços por configuração
Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.
| Configuração | Tabela de tarifas | Quantidade faturável | Unidade de faturação | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base por token | Tabela de tarifasTarifa base | Quantidade faturável— | Unidade de faturação— | Custo Entrada · Tokens de entrada — / 1K tokens Saída · Tokens de saída — / 1K tokens Entrada · Leitura da cache — / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoUltra | Tabela de tarifas— | Quantidade faturávelCada ponto de código Unicode conta como um caráter, incluindo os caracteres Han. | Unidade de faturaçãopor 1K caracteres de entrada | Custo Entrada · carácter de entrada $0.008 por 1K caracteres de entrada |
Detalhes da tarifa de referência
As tabelas de referência do modelo não alteram a seleção do método, as cotações ou os custos. Os custos ativos usam as tarifas do método Ailoot selecionado.
hexgrad: Kokoro 82M
Preços por configuração
| Configuração | Condições de faturação | Custo |
|---|---|---|
| Configuraçãohexgrad: Kokoro 82M · Configuração predefinida | Condições de faturaçãoConfiguração predefinida | Custo Entrada · Caracteres de entrada 0,00000124 US$ por carácter de entrada |
O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →
Exemplos de pedidos
Ailoot Ultra · Síntese de voz
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
Receber e guardar os resultados
Ailoot Ultra · Síntese de voz
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Outras leituras de conteúdo
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
Guardar todos os resultados concluídos
Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.
Guarde o resultado binário completo e os cabeçalhos. Se forem devolvidos JSON/vários resultados, conserve todos os itens de dados e obtenha cada recurso através do seu URL assinado efetivo.
Se for necessário verificar a resposta original
Conserve o operation_id/X-Client-Request-ID original para reconciliação sem voltar a enviar o pedido; não existe uma rota dedicada à consulta periódica do estado do áudio.
Campos da resposta
| Campo | Tipo |
|---|---|
Campobinary audio | Tipobytes |
Camporesponse headers | Tipoheaders |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Respostaserver_error | CondiçãoA resposta devolvida indica que a operação ou o resultado requer verificação | Passo seguinteGuarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra hexgrad/kokoro-82m
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · hexgrad: Kokoro 82M
- Que entradas e resultados estão disponíveis?
POST /v1/audio/speech·hexgrad/kokoro-82m:text→audio- Que campos utiliza o pedido?
POST /v1/audio/speech·hexgrad/kokoro-82m:model,input,voice,response_format