Inicio rápido de las API GLM TTS y ASR

Inicio rápido de las API GLM TTS y ASR

Esta guía te lleva desde la clave de API hasta obtener audio funcional con las API de audio GLM — GLM TTS para conversión de texto a voz, GLM ASR para transcripción y GLM Voice Clone para síntesis de voz personalizada. Los tres son endpoints REST síncronos sin necesidad de sondeo ni webhook. Si creas funciones de voz, pipelines de transcripción o aplicaciones de audio en chino, este es el camino más rápido hacia una integración funcional.

Cuándo usar esta guía de inicio rápido

Usa esta guía si necesitas:

  • Convertir texto a voz con voces optimizadas para chino mediante POST /v3/glm-tts
  • Transcribir archivos de audio .wav o .mp3 mediante POST /v3/glm-asr
  • Clonar una voz a partir de una muestra de audio corta y sintetizar nuevo habla mediante POST /v3/glm-tts-voice-clone

Todos los endpoints están disponibles a través de la API de Novita AI en https://api.novita.ai.

Requisitos previos

  1. Una cuenta de Novita AI. Obtén tu clave de API desde la consola de Novita AI.
  2. curl para los ejemplos de shell.
  3. Python 3.8+ con requests instalado para los ejemplos de Python.

Configura tu clave como variable de entorno:

export NOVITA_API_KEY="tu_clave_de_api_aqui"

Inicio rápido de GLM TTS

Endpoint: POST https://api.novita.ai/v3/glm-tts

Convierte texto de hasta 1024 caracteres en voz. La respuesta es audio binario — escríbelo directamente en un archivo.

Parámetros

Parámetro Tipo Valor por defecto Notas
input string Obligatorio. Hasta 1024 caracteres.
voice string tongtong ID de voz del sistema o nombre de voz clonada.
speed number 1.0 Rango: 0.5–2.0
volume number 1.0 Rango: 0–10
response_format string pcm wav o pcm. WAV incluye una cabecera de audio estándar; PCM son bytes sin procesar a 24000 Hz.
watermark_enabled boolean true Establece false solo si tu cuenta tiene habilitada la eliminación de marcas de agua.

Voces del sistema

ID de voz Nombre para mostrar
tongtong Tongtong (por defecto)
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)

Límites: 1024 caracteres por solicitud. Para textos más largos, divide en límites de oraciones y concatena el audio. Frecuencia de muestreo recomendada para reproducción: 24000 Hz. Los nombres de las voces distinguen mayúsculas y minúsculas.

Inicio rápido de GLM ASR

Endpoint: POST https://api.novita.ai/v3/glm-asr

Transcribe audio .wav o .mp3 usando el modelo GLM-ASR-2512. El audio se puede pasar como URL o cadena en base64. Restricciones: archivo ≤ 25 MB, duración ≤ 30 segundos.

Parámetros

Parámetro Tipo Notas
file string Obligatorio. URL o audio codificado en base64. Solo .wav o .mp3.
prompt string Opcional. Contexto de transcripción previa, hasta 8000 caracteres. Úsalo para continuidad en transcripciones fragmentadas.
hotwords array Opcional. Hasta 100 términos específicos del dominio para mejorar la precisión del reconocimiento.

curl (entrada 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://example.com/sample.wav",
    "hotwords": ["Novita", "GLM"]
  }'

Python (entrada base64)

import requests, base64, os

with open("sample.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"])

Respuesta

{ "text": "你好,欢迎使用 Novita AI 语音合成接口。" }

Manejo de audio de más de 30 segundos: Divide en fragmentos de ≤30 segundos y encadena las solicitudes usando el campo prompt para llevar el contexto de la transcripción entre fragmentos:

payload = {
    "file": next_chunk_b64,
    "prompt": previous_transcript,
}

Inicio rápido de GLM Voice Clone

Endpoint: POST https://api.novita.ai/v3/glm-tts-voice-clone

Toma una muestra de audio y sintetiza nuevo habla en esa voz. Asigna un nombre a la voz clonada; reutilízala como el parámetro voice en GLM TTS sin necesidad de volver a subir la muestra.

Parámetros

Parámetro Tipo Notas
audio_url string Obligatorio. URL del audio de muestra. ≤ 10 MB, se recomiendan 3–30 s.
input string Obligatorio. Texto a sintetizar en la voz clonada.
voice_name string Obligatorio. Nombre único que asignas a esta voz.
text string Opcional. Transcripción del audio de muestra — mejora la calidad del clon.

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://example.com/voice-sample.wav",
    "input": "这是用克隆声音合成的语音示例。",
    "voice_name": "my-custom-voice",
    "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://example.com/voice-sample.wav",
        "input": "这是用克隆声音合成的语音示例。",
        "voice_name": "my-custom-voice",
        "text": "示例音频的文字内容",
    },
)
response.raise_for_status()
data = response.json()
print(f"Timbre de voz: {data['voice']}")
print(f"URL de audio: {data['audio_url']}")

Respuesta

{
  "voice": "my-custom-voice-timbre-id",
  "audio_url": "https://..."
}

El valor de voice devuelto aquí se puede pasar directamente al parámetro voice de GLM TTS para futuras llamadas de síntesis.

Consejos: Usa una muestra limpia de 5 a 15 segundos sin ruido de fondo. Proporciona la transcripción text de la muestra para mejorar la alineación fonética.

Precios y notas de uso

Precios a junio de 2026, desde novita.ai/pricing:

API Precio
GLM TTS $0.28 / 1M caracteres
GLM ASR $0.021 / 1M caracteres
GLM Voice Clone $0.83 / 1M caracteres

GLM TTS es adecuado para síntesis de alto volumen en chino donde el costo importa. Si necesitas TTS multilingüe más amplio en más de 30 idiomas o procesamiento asíncrono de contenido extenso, MiniMax Speech es la alternativa a evaluar.

Preguntas frecuentes

¿Qué idiomas admite GLM TTS? Optimizado para chino (mandarín). Maneja entrada mixta chino-inglés. Para cobertura multilingüe amplia, usa MiniMax Speech en su lugar.

¿Puedo reutilizar una voz clonada con GLM TTS? Sí. Pasa el voice_name que asignaste en la llamada de Voice Clone como el parámetro voice en GLM TTS. No es necesario volver a subir la muestra.

¿Por qué hay un límite de 30 segundos en GLM ASR? El modelo procesa el audio de forma síncrona. Divide grabaciones más largas en límites de oraciones y encadena las solicitudes usando el campo prompt para llevar el contexto.

¿Cuál es la diferencia entre salida pcm y wav? PCM son bytes de audio sin procesar a 24000 Hz sin cabecera. WAV envuelve el mismo audio en un contenedor estándar que la mayoría de las bibliotecas pueden leer directamente. Usa WAV a menos que tu pipeline requiera PCM sin procesar.

¿watermark_enabled: false siempre funciona? Solo si has completado la eliminación de marcas de agua en la configuración de tu cuenta. De lo contrario, la bandera se ignora.

Artículos recomendados