GLM TTS und ASR API – Schnellstart

GLM TTS und ASR API – Schnellstart

Diese Anleitung führt Sie vom API-Schlüssel bis zur fertigen Audioausgabe 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 von eigenen Stimmen. Alle drei sind synchrone REST-Endpunkte ohne Polling oder Webhook-Schritt. Wenn Sie Sprachfunktionen, Transkriptionspipelines oder chinesischsprachige Audioanwendungen entwickeln, ist dies der schnellste Weg zu einer funktionierenden Integration.

Wann dieser Schnellstart sinnvoll ist

Verwenden Sie diese Anleitung, wenn Sie Folgendes benötigen:

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

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="Ihr_API_Schluessel_hier"

GLM TTS Schnellstart

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

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

Parameter

Parameter Typ Standard Hinweise
input Zeichenkette Erforderlich. Maximal 1024 Zeichen.
voice Zeichenkette tongtong System-Stimmen-ID oder Name der geklonten Stimme.
speed Zahl 1.0 Bereich: 0.5–2.0
volume Zahl 1.0 Bereich: 0–10
response_format Zeichenkette pcm wav oder pcm. WAV enthält einen standardmäßigen Audio-Header; PCM sind rohe Bytes bei 24000 Hz.
watermark_enabled Boolesch true Setzen Sie false nur, wenn Ihr Konto die Entfernung von Wasserzeichen 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)

Einschränkungen: 1024 Zeichen pro Anfrage. Bei längeren Texten teilen Sie ihn an Satzgrenzen und fügen Sie das Audio zusammen. Empfohlene Abtastrate für die Wiedergabe: 24000 Hz. Die Namen der Stimmen sind groß-/kleinschreibungsabhängig.

GLM ASR Schnellstart

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

Transkribiert .wav- oder .mp3-Audio mithilfe des GLM-ASR-2512-Modells. Audio kann als URL oder base64-Zeichenkette übergeben werden. Einschränkungen: Datei ≤ 25 MB, Dauer ≤ 30 Sekunden.

Parameter

Parameter Typ Hinweise
file Zeichenkette Erforderlich. URL oder base64-kodiertes Audio. Nur .wav oder .mp3.
prompt Zeichenkette Optional. Vorheriger Transkriptionskontext, bis zu 8000 Zeichen. Für die Kontinuität bei chunkweiser 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: Teilen Sie es in ≤30-Sekunden-Chunks auf und verketten Sie Anfragen mithilfe des prompt-Felds, um den Transkriptionskontext zwischen den Chunks zu übertragen:

payload = {
    "file": naechster_chunk_b64,
    "prompt": vorheriges_transkript,
}

GLM Voice Clone Schnellstart

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

Nimmt eine Audiobeispiel-Clip auf und synthetisiert neue Sprache mit dieser Stimme. Weisen Sie der geklonten Stimme einen Namen zu; verwenden Sie ihn als voice-Parameter in GLM TTS, ohne das Beispiel erneut hochladen zu müssen.

Parameter

Parameter Typ Hinweise
audio_url Zeichenkette Erforderlich. URL zum Beispiel-Audio. ≤ 10 MB, 3–30 s empfohlen.
input Zeichenkette Erforderlich. Text, der mit der geklonten Stimme synthetisiert werden soll.
voice_name Zeichenkette Erforderlich. Eindeutiger Name, den Sie dieser Stimme zuweisen.
text Zeichenkette Optional. Transkript des Beispiel-Audios – 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"Stimmtimbre: {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 direkt als voice-Parameter in GLM TTS für zukünftige Syntheseaufrufe verwendet werden.

Tipps: Verwenden Sie ein sauberes 5–15 Sekunden langes Beispiel ohne Hintergrundgeräusche. Geben Sie das text-Transkript des Beispiels an, um die Phonemausrichtung zu verbessern.

Preisgestaltung und Nutzungshinweise

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

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

GLM TTS eignet sich gut für die chinesischsprachige Synthese in großem Volumen, bei der die Kosten eine Rolle spielen. Wenn Sie eine breitere mehrsprachige TTS für über 30 Sprachen oder asynchrone Verarbeitung von Langforminhalten benötigen, ist MiniMax Speech die Alternative, die Sie in Betracht ziehen sollten.

FAQ

Welche Sprachen werden von GLM TTS unterstützt? Optimiert für Chinesisch (Mandarin). Verarbeitet gemischte chinesisch-englische Eingaben. Verwenden Sie für eine breite mehrsprachige Abdeckung 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. Sie müssen das Beispiel nicht erneut hochladen.

Warum gibt es eine 30-Sekunden-Grenze bei GLM ASR? Das Modell verarbeitet Audio synchron. Teilen Sie längere Aufnahmen an Satzgrenzen und verketten Sie Anfragen mithilfe des prompt-Felds, um den Kontext zu übertragen.

Was ist der Unterschied zwischen pcm- und wav-Ausgabe? PCM sind rohe Audio-Bytes bei 24000 Hz ohne Header. WAV verpackt dasselbe 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 Entfernung von Wasserzeichen in Ihren Kontoeinstellungen abgeschlossen haben. Andernfalls wird das Flag ignoriert.

Empfohlene Artikel