GLM TTS e ASR API — Início Rápido

GLM TTS e ASR API — Início Rápido

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 .wav ou .mp3 através de POST /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

  1. Uma conta Novita AI. Obtenha sua chave de API no console Novita AI.
  2. curl para os exemplos em shell.
  3. Python 3.8+ com requests instalado 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.

Artigos Recomendados