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-ttsin Sprache umwandeln möchten .wav- oder.mp3-Audiodateien überPOST /v3/glm-asrtranskribieren möchten- Eine Stimme aus einer kurzen Audioprobe klonen und neue Sprache über
POST /v3/glm-tts-voice-clonesynthetisieren möchten
Alle Endpunkte sind über die Novita AI API unter https://api.novita.ai verfügbar.
Voraussetzungen
- Ein Novita AI-Konto. Holen Sie Ihren API-Schlüssel aus der Novita AI-Konsole.
curlfür die Shell-Beispiele.- Python 3.8+ mit installiertem
requestsfü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.
