GLM TTS und ASR API Schnellstart

GLM TTS und ASR API Schnellstart

Diese Anleitung führt Sie vom API-Schlüssel zu funktionierendem Audio mit den GLM Audio-APIs – GLM TTS für Text-to-Speech, GLM ASR für Transkription und GLM Voice Clone für die Synthese benutzerdefinierter Stimmen. Alle drei sind synchrone REST-Endpunkte ohne Polling- oder Webhook-Schritt. Wenn Sie Sprachfunktionen, Transkriptionspipelines oder chinesischsprachige Audioanwendungen erstellen, ist dies der schnellste Weg zu einer funktionierenden Integration.

Wann dieser Schnellstart verwendet wird

Verwenden Sie diese Anleitung, wenn Sie:

  • Text mit chinesisch-optimierten Stimmen über POST /v3/glm-tts in Sprache umwandeln möchten
  • .wav- oder .mp3-Audiodateien über POST /v3/glm-asr transkribieren möchten
  • Eine Stimme aus einer kurzen Audioprobe klonen und neue Sprache über POST /v3/glm-tts-voice-clone synthetisieren möchten

Alle Endpunkte sind über die Novita AI API unter https://api.novita.ai verfügbar.

Voraussetzungen

  1. Ein Novita AI-Konto. Holen Sie Ihren API-Schlüssel aus der Novita AI-Konsole.
  2. curl für die Shell-Beispiele.
  3. Python 3.8+ mit installiertem requests für die Python-Beispiele.

Setzen Sie Ihren Schlüssel als Umgebungsvariable:

export NOVITA_API_KEY="your_api_key_here"

GLM TTS Schnellstart

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

Wandelt Text mit maximal 1024 Zeichen in Sprache um. Die Antwort ist binäres Audio – schreiben Sie es direkt in eine Datei.

Parameter

Parameter Typ Standard Anmerkungen
input string Erforderlich. Maximal 1024 Zeichen.
voice string tongtong System-Stimmen-ID oder Name der geklonten Stimme.
speed number 1.0 Bereich: 0.5–2.0
volume number 1.0 Bereich: 0–10
response_format string pcm wav oder pcm. WAV enthält einen standardmäßigen Audio-Header; PCM sind rohe Bytes bei 24000 Hz.
watermark_enabled boolean true Setzen Sie dies nur auf false, wenn Ihr Konto die Wasserzeichenentfernung aktiviert hat.

System-Stimmen

Stimmen-ID Anzeigename
tongtong Tongtong (Standard)
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)

Grenzen: 1024 Zeichen pro Anfrage. Bei längeren Texten an Satzgrenzen aufteilen und das Audio zusammenfügen. Empfohlene Abtastrate für die Wiedergabe: 24000 Hz. Stimmennamen unterscheiden zwischen Groß- und Kleinschreibung.

GLM ASR Schnellstart

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

Transkribiert .wav- oder .mp3-Audio mit dem GLM-ASR-2512-Modell. Das Audio kann als URL oder Base64-String übergeben werden. Einschränkungen: Datei ≤ 25 MB, Dauer ≤ 30 Sekunden.

Parameter

Parameter Typ Anmerkungen
file string Erforderlich. URL oder base64-codiertes Audio. Nur .wav oder .mp3.
prompt string Optional. Vorheriger Transkript-Kontext, bis zu 8000 Zeichen. Für die Kontinuität bei chunkweise Transkription verwenden.
hotwords array Optional. Bis zu 100 domänenspezifische Begriffe zur Verbesserung der Erkennungsgenauigkeit.

curl (URL-Eingabe)

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 (Base64-Eingabe)

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"])

Antwort

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

Umgang mit Audio länger als 30 Sekunden: In ≤30-Sekunden-Chunks aufteilen und Anfragen mit dem prompt-Feld verketten, um den Transkript-Kontext zwischen den Chunks zu übertragen:

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

GLM Voice Clone Schnellstart

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

Nimmt eine Audioprobe auf und synthetisiert neue Sprache in dieser Stimme. Weisen Sie der geklonten Stimme einen Namen zu; verwenden Sie diesen als voice-Parameter in GLM TTS, ohne die Probe erneut hochladen zu müssen.

Parameter

Parameter Typ Anmerkungen
audio_url string Erforderlich. URL zur Audioprobe. ≤ 10 MB, 3–30 s empfohlen.
input string Erforderlich. Text, der in der geklonten Stimme synthetisiert werden soll.
voice_name string Erforderlich. Eindeutiger Name, den Sie dieser Stimme zuweisen.
text string Optional. Transkript der Audioprobe – verbessert die Klonqualität.

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

Antwort

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

Der hier zurückgegebene voice-Wert kann für zukünftige Synthesen direkt an den GLM TTS voice-Parameter übergeben werden.

Tipps: Verwenden Sie eine saubere Probe von 5–15 Sekunden ohne Hintergrundgeräusche. Geben Sie das text-Transkript der Probe an, um die Phonemausrichtung zu verbessern.

Preise und Nutzungshinweise

Preise Stand Juni 2026, von novita.ai/pricing:

API Preis
GLM TTS 0,28 $ / 1M Zeichen
GLM ASR 0,021 $ / 1M Zeichen
GLM Voice Clone 0,83 $ / 1M Zeichen

GLM TTS eignet sich gut für die kostengünstige chinesischsprachige Synthese in großem Umfang. Wenn Sie eine breitere mehrsprachige TTS in über 30 Sprachen oder die asynchrone Verarbeitung von Langtexten benötigen, ist MiniMax Speech die Alternative, die Sie in Betracht ziehen sollten.

FAQ

Welche Sprachen unterstützt GLM TTS? Optimiert für Chinesisch (Mandarin). Verarbeitet gemischte chinesisch-englische Eingaben. Für eine breite mehrsprachige Abdeckung verwenden Sie stattdessen MiniMax Speech.

Kann ich eine geklonte Stimme mit GLM TTS wiederverwenden? Ja. Übergeben Sie den voice_name, den Sie im Voice Clone-Aufruf vergeben haben, als voice-Parameter in GLM TTS. Ein erneutes Hochladen der Probe ist nicht erforderlich.

Warum gibt es eine 30-Sekunden-Grenze für GLM ASR? Das Modell verarbeitet Audio synchron. Teilen Sie längere Aufnahmen an Satzgrenzen auf und verketten Sie Anfragen mit dem prompt-Feld, um den Kontext zu übertragen.

Was ist der Unterschied zwischen pcm- und wav-Ausgabe? PCM sind rohe Audiobytes bei 24000 Hz ohne Header. WAV verpackt das gleiche Audio in einem standardmäßigen Container, den die meisten Bibliotheken direkt lesen können. Verwenden Sie WAV, es sei denn, Ihre Pipeline erfordert rohes PCM.

Funktioniert das Setzen von watermark_enabled: false immer? Nur, wenn Sie die Wasserzeichenentfernung in Ihren Kontoeinstellungen abgeschlossen haben. Andernfalls wird das Flag ignoriert.

Empfohlene Artikel