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

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

Ce guide vous fait 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 polling ni de webhook. Si vous développez 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 devez :

  • 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 une nouvelle parole 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 GLM TTS

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

Convertit un texte de 1024 caractères maximum en parole. La réponse est un fichier audio binaire — écrivez-le directement dans un fichier.

Paramètres

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

Voix système

Identifiant de voix Nom affiché
tongtong Tongtong (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 des phrases et concaténez l’audio. Taux d’échantillonnage de lecture recommandé : 24000 Hz. Les noms de voix sont sensibles à la casse.

Démarrage rapide GLM ASR

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

Transcrit un fichier audio .wav ou .mp3 à l’aide du 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 string Requis. URL ou audio encodé en base64. Uniquement .wav ou .mp3.
prompt string Optionnel. Contexte de transcription précédent, 8000 caractères maximum. Utilisé pour la continuité de la transcription par segments.
hotwords array 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 de l’audio de plus de 30 secondes : Divisez en segments de ≤30 secondes et chaînez les requêtes en utilisant le champ prompt pour transmettre le contexte de la transcription entre les segments :

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

Démarrage rapide GLM Voice Clone

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

Prend un échantillon audio et synthétise une nouvelle parole dans cette voix. Attribuez un nom à la voix clonée ; réutilisez-le comme paramètre voice dans GLM TTS sans retélécharger l’échantillon.

Paramètres

Paramètre Type Remarques
audio_url string Requis. URL de l’échantillon audio. ≤ 10 Mo, 3–30 s recommandé.
input string Requis. Texte à synthétiser dans la voix clonée.
voice_name string Requis. Nom unique que vous attribuez à cette voix.
text string Optionnel. Transcription de l’échantillon audio — 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 retournée ici peut être passée directement au paramètre voice de GLM TTS pour de 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 notes d’utilisation

Tarifs en vigueur depuis juin 2026, issus de 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 en volume où le coût importe. Si vous avez besoin d’une TTS multilingue plus large couvrant 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 attribué dans 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 des phrases et chaînez les requêtes en utilisant le champ prompt pour transmettre le contexte.

Quelle est la différence entre les sorties pcm et wav ? PCM est constitué d’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 ? Uniquement si vous avez terminé la suppression du filigrane dans les paramètres de votre compte. Le drapeau est sinon ignoré.

Articles recommandés