Este guia leva você da chave de API ao áudio funcional com as GLM audio APIs — GLM TTS para texto‑para‑fala, GLM ASR para transcrição e GLM Voice Clone para síntese de voz personalizada. As três são endpoints REST síncronos sem necessidade de polling ou webhook. Se você desenvolve recursos de voz, pipelines de transcrição ou aplicações de áudio em chinês, este é o caminho mais rápido para uma integração funcional.
Quando Usar Este Início Rápido
Utilize este guia quando precisar:
- Converter texto em fala com vozes otimizadas para chinês através de
POST /v3/glm-tts - Transcrever arquivos de áudio
.wavou.mp3através dePOST /v3/glm-asr - Clonar uma voz a partir de uma amostra curta de áudio e sintetizar nova fala através de
POST /v3/glm-tts-voice-clone
Todos os endpoints estão disponíveis através da API Novita AI em https://api.novita.ai.
Pré‑requisitos
- Uma conta Novita AI. Obtenha sua chave de API no console Novita AI.
curlpara os exemplos em shell.- Python 3.8+ com
requestsinstalado para os exemplos em Python.
Defina sua chave como variável de ambiente:
export NOVITA_API_KEY="sua_chave_api_aqui"
GLM TTS — Início Rápido
Endpoint: POST https://api.novita.ai/v3/glm-tts
Converte texto de até 1024 caracteres em fala. A resposta é áudio binário — escreva‑o diretamente em um arquivo.
Parâmetros
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
input |
string | — | Obrigatório. Até 1024 caracteres. |
voice |
string | tongtong |
ID da voz do sistema ou nome da voz clonada. |
speed |
number | 1.0 | Intervalo: 0.5–2.0 |
volume |
number | 1.0 | Intervalo: 0–10 |
response_format |
string | pcm |
wav ou pcm. WAV inclui cabeçalho de áudio padrão; PCM são bytes brutos a 24000 Hz. |
watermark_enabled |
boolean | true | Defina como false apenas se sua conta tiver remoção de marca d’água ativada. |
Vozes do sistema
| ID da voz | Nome de exibição |
|---|---|
tongtong |
Tongtong (padrão) |
chuichui |
Chuichui |
xiaochen |
Xiaochen |
jam |
Dongdong Zoo – Jam |
kazi |
Dongdong Zoo – Kazi |
douji |
Dongdong Zoo – Douji |
luodo |
Dongdong Zoo – Luodo |
curl
curl -s -X POST https://api.novita.ai/v3/glm-tts \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "你好,欢迎使用 Novita AI 语音合成接口。",
"voice": "tongtong",
"speed": 1.0,
"volume": 5,
"response_format": "wav"
}' \
--output output.wav
Python
import requests, os
response = requests.post(
"https://api.novita.ai/v3/glm-tts",
headers={
"Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
"Content-Type": "application/json",
},
json={
"input": "你好,欢迎使用 Novita AI 语音合成接口。",
"voice": "tongtong",
"speed": 1.0,
"volume": 5,
"response_format": "wav",
},
)
response.raise_for_status()
with open("output.wav", "wb") as f:
f.write(response.content)
Limites: 1024 caracteres por requisição. Para textos mais longos, divida nos limites de sentenças e concatene o áudio. Taxa de amostragem recomendada: 24000 Hz. Os nomes das vozes diferenciam maiúsculas de minúsculas.
GLM ASR — Início Rápido
Endpoint: POST https://api.novita.ai/v3/glm-asr
Transcreve áudio .wav ou .mp3 usando o modelo GLM-ASR-2512. O áudio pode ser passado como URL ou string base64. Restrições: arquivo ≤ 25 MB, duração ≤ 30 segundos.
Parâmetros
| Parâmetro | Tipo | Notas |
|---|---|---|
file |
string | Obrigatório. URL ou áudio codificado em base64. Apenas .wav ou .mp3. |
prompt |
string | Opcional. Contexto de transcrição anterior, até 8000 caracteres. Use para continuidade de transcrição em partes. |
hotwords |
array | Opcional. Até 100 termos específicos de domínio para melhorar a precisão do reconhecimento. |
curl (entrada por URL)
curl -s -X POST https://api.novita.ai/v3/glm-asr \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file": "https://exemplo.com/amostra.wav",
"hotwords": ["Novita", "GLM"]
}'
Python (entrada base64)
import requests, base64, os
with open("amostra.wav", "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode()
response = requests.post(
"https://api.novita.ai/v3/glm-asr",
headers={
"Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
"Content-Type": "application/json",
},
json={"file": audio_b64, "hotwords": ["Novita", "GLM"]},
)
response.raise_for_status()
print(response.json()["text"])
Resposta
{ "text": "你好,欢迎使用 Novita AI 语音合成接口。" }
Lidando com áudio com mais de 30 segundos: Divida em partes de ≤30 segundos e encadeie as requisições usando o campo prompt para carregar o contexto da transcrição entre as partes:
payload = {
"file": proxima_parte_b64,
"prompt": transcricao_anterior,
}
GLM Voice Clone — Início Rápido
Endpoint: POST https://api.novita.ai/v3/glm-tts-voice-clone
Recebe um clipe de áudio de amostra e sintetiza nova fala nessa voz. Atribua um nome à voz clonada; reutilize‑o como parâmetro voice no GLM TTS sem reenviar a amostra.
Parâmetros
| Parâmetro | Tipo | Notas |
|---|---|---|
audio_url |
string | Obrigatório. URL do áudio de amostra. ≤ 10 MB, 3–30 s recomendado. |
input |
string | Obrigatório. Texto a ser sintetizado na voz clonada. |
voice_name |
string | Obrigatório. Nome único que você atribui a esta voz. |
text |
string | Opcional. Transcrição do áudio de amostra — melhora a qualidade da clonagem. |
curl
curl -s -X POST https://api.novita.ai/v3/glm-tts-voice-clone \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://exemplo.com/amostra-voz.wav",
"input": "这是用克隆声音合成的语音示例。",
"voice_name": "minha-voz-personalizada",
"text": "示例音频的文字内容"
}'
Python
import requests, os
response = requests.post(
"https://api.novita.ai/v3/glm-tts-voice-clone",
headers={
"Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
"Content-Type": "application/json",
},
json={
"audio_url": "https://exemplo.com/amostra-voz.wav",
"input": "这是用克隆声音合成的语音示例。",
"voice_name": "minha-voz-personalizada",
"text": "示例音频的文字内容",
},
)
response.raise_for_status()
data = response.json()
print(f"Timbre da voz: {data['voice']}")
print(f"URL do áudio: {data['audio_url']}")
Resposta
{
"voice": "minha-voz-personalizada-timbre-id",
"audio_url": "https://..."
}
O valor voice retornado aqui pode ser passado diretamente ao parâmetro voice do GLM TTS em futuras chamadas de síntese.
Dicas: Use uma amostra limpa de 5 a 15 segundos sem ruído de fundo. Forneça a transcrição text da amostra para melhorar o alinhamento dos fonemas.
Preços e Notas de Uso
Preços a partir de junho de 2026, em novita.ai/pricing:
| API | Preço |
|---|---|
| GLM TTS | $0.28 / 1M caracteres |
| GLM ASR | $0.021 / 1M caracteres |
| GLM Voice Clone | $0.83 / 1M caracteres |
O GLM TTS é adequado para síntese de chinês em alto volume onde o custo importa. Se precisar de TTS multilíngue mais abrangente em mais de 30 idiomas ou processamento assíncrono de conteúdo longo, MiniMax Speech é a alternativa a avaliar.
FAQ
Quais idiomas o GLM TTS suporta? Otimizado para chinês (mandarim). Lida com entrada mista chinês‑inglês. Para cobertura multilíngue ampla, use MiniMax Speech.
Posso reutilizar uma voz clonada com o GLM TTS?
Sim. Passe o voice_name que você atribuiu na chamada do Voice Clone como parâmetro voice no GLM TTS. Não é necessário reenviar a amostra.
Por que há um limite de 30 segundos no GLM ASR?
O modelo processa áudio de forma síncrona. Divida gravações mais longas nos limites das sentenças e encadeie requisições usando o campo prompt para carregar contexto.
Qual é a diferença entre saída pcm e wav?
PCM são bytes de áudio brutos a 24000 Hz sem cabeçalho. WAV envolve o mesmo áudio em um contêiner padrão que a maioria das bibliotecas pode ler diretamente. Use WAV a menos que seu pipeline exija PCM puro.
Definir watermark_enabled: false sempre funciona?
Apenas se você tiver concluído a remoção de marca d’água nas configurações da sua conta. Caso contrário, a flag é ignorada.
