Guide de démarrage rapide des API GLM TTS et ASR

Guide de démarrage rapide des API GLM TTS et ASR

Ce guide vous permet de passer de la clé API à l’audio fonctionnel avec les API audio GLM — GLM TTS pour la synthèse vocale, GLM ASR pour la transcription et GLM Voice Clone pour la synthèse vocale personnalisée. Les trois sont des points de terminaison REST synchrones sans étape de sondage (polling) ni de webhook. Si vous créez des fonctionnalités vocales, des pipelines de transcription ou des applications audio en chinois, c’est le chemin le plus rapide vers une intégration fonctionnelle.

Quand utiliser ce guide de démarrage rapide

Utilisez ce guide si vous avez besoin de :

  • Convertir du texte en parole avec des voix optimisées pour le chinois via POST /v3/glm-tts
  • Transcrire des fichiers audio .wav ou .mp3 via POST /v3/glm-asr
  • Cloner une voix à partir d’un court échantillon audio et synthétiser de nouvelles paroles via POST /v3/glm-tts-voice-clone

Tous les points de terminaison sont disponibles via l’API Novita AI à l’adresse https://api.novita.ai.

Prérequis

  1. Un compte Novita AI. Obtenez votre clé API depuis la console Novita AI.
  2. curl pour les exemples en ligne de commande.
  3. Python 3.8+ avec requests installé pour les exemples Python.

Définissez votre clé comme variable d’environnement :

export NOVITA_API_KEY="votre_clé_api_ici"

Démarrage rapide avec GLM TTS

Point de terminaison : POST https://api.novita.ai/v3/glm-tts

Convertit du texte jusqu’à 1024 caractères en parole. La réponse est un audio binaire — écrivez-la directement dans un fichier.

Paramètres

Paramètre Type Défaut Remarques
input chaîne Requis. Jusqu’à 1024 caractères.
voice chaîne tongtong Identifiant de voix système ou nom de voix clonée.
speed nombre 1.0 Plage : 0.5–2.0
volume nombre 1.0 Plage : 0–10
response_format chaîne pcm wav ou pcm. WAV inclut un en-tête audio standard ; PCM est des octets bruts à 24000 Hz.
watermark_enabled booléen true Mettez false uniquement si votre compte a activé la suppression du filigrane.

Voix système

Identifiant de voix Nom d’affichage
tongtong Tongtong (par défaut)
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 caractères par requête. Pour les textes plus longs, divisez aux limites de phrases et concaténez l’audio. Fréquence d’échantillonnage recommandée : 24000 Hz. Les noms de voix sont sensibles à la casse.

Démarrage rapide avec GLM ASR

Point de terminaison : POST https://api.novita.ai/v3/glm-asr

Transcrit un audio .wav ou .mp3 en utilisant le modèle GLM-ASR-2512. L’audio peut être passé sous forme d’URL ou de chaîne base64. Contraintes : fichier ≤ 25 Mo, durée ≤ 30 secondes.

Paramètres

Paramètre Type Remarques
file chaîne Requis. URL ou audio encodé en base64. Uniquement .wav ou .mp3.
prompt chaîne Optionnel. Contexte de transcription antérieur, jusqu’à 8000 caractères. Utilisez pour la continuité de transcription par segments.
hotwords tableau Optionnel. Jusqu’à 100 termes spécifiques au domaine pour améliorer la précision de la reconnaissance.

curl (entrée 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 (entrée 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"])

Réponse

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

Gestion d’un audio de plus de 30 secondes : Divisez en segments de ≤30 secondes et enchaînez les requêtes en utilisant le champ prompt pour transporter le contexte de transcription entre les segments :

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

Démarrage rapide avec GLM Voice Clone

Point de terminaison : POST https://api.novita.ai/v3/glm-tts-voice-clone

Prend un clip audio d’échantillon et synthétise de nouvelles paroles dans cette voix. Assignez un nom à la voix clonée ; réutilisez-la comme paramètre voice dans GLM TTS sans retélécharger l’échantillon.

Paramètres

Paramètre Type Remarques
audio_url chaîne Requis. URL de l’audio d’échantillon. ≤ 10 Mo, 3–30 s recommandé.
input chaîne Requis. Texte à synthétiser dans la voix clonée.
voice_name chaîne Requis. Nom unique que vous assignez à cette voix.
text chaîne Optionnel. Transcription de l’audio d’échantillon — améliore la qualité du clonage.

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 vocal : {data['voice']}")
print(f"URL audio : {data['audio_url']}")

Réponse

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

La valeur voice renvoyée ici peut être passée directement au paramètre voice de GLM TTS pour les futurs appels de synthèse.

Conseils : Utilisez un échantillon propre de 5 à 15 secondes sans bruit de fond. Fournissez la transcription text de l’échantillon pour améliorer l’alignement phonémique.

Tarifs et remarques d’utilisation

Tarifs en vigueur en juin 2026, depuis novita.ai/pricing :

API Prix
GLM TTS 0,28 $ / 1 million de caractères
GLM ASR 0,021 $ / 1 million de caractères
GLM Voice Clone 0,83 $ / 1 million de caractères

GLM TTS est bien adapté à la synthèse chinoise à volume élevé où le coût est important. Si vous avez besoin d’une synthèse vocale multilingue plus étendue dans plus de 30 langues ou d’un traitement asynchrone de contenu long, MiniMax Speech est l’alternative à évaluer.

FAQ

Quelles langues GLM TTS prend-il en charge ? Optimisé pour le chinois (mandarin). Gère les entrées mixtes chinois-anglais. Pour une couverture multilingue large, utilisez plutôt MiniMax Speech.

Puis-je réutiliser une voix clonée avec GLM TTS ? Oui. Passez le voice_name que vous avez assigné lors de l’appel Voice Clone comme paramètre voice dans GLM TTS. Pas besoin de retélécharger l’échantillon.

Pourquoi y a-t-il une limite de 30 secondes sur GLM ASR ? Le modèle traite l’audio de manière synchrone. Divisez les enregistrements plus longs aux limites de phrases et enchaînez les requêtes en utilisant le champ prompt pour transporter le contexte.

Quelle est la différence entre les sorties pcm et wav ? PCM est des octets audio bruts à 24000 Hz sans en-tête. WAV encapsule le même audio dans un conteneur standard que la plupart des bibliothèques peuvent lire directement. Utilisez WAV sauf si votre pipeline nécessite du PCM brut.

Le fait de définir watermark_enabled: false fonctionne-t-il toujours ? Seulement si vous avez complété la suppression du filigrane dans les paramètres de votre compte. Sinon, le drapeau est ignoré.

Articles recommandés