Быстрый старт GLM TTS и ASR API

Быстрый старт GLM TTS и ASR API

Это руководство проведёт вас от получения API-ключа до рабочего аудио с помощью аудио API от GLM — GLM TTS для преобразования текста в речь, GLM ASR для транскрибации и GLM Voice Clone для синтеза речи на основе клонированного голоса. Все три являются синхронными REST-эндпоинтами без необходимости опроса или вебхуков. Если вы разрабатываете функции с голосом, пайплайны транскрибации или аудиоприложения на китайском языке, это самый быстрый путь к рабочей интеграции.

Когда использовать это руководство

Используйте это руководство, если вам нужно:

  • Преобразовать текст в речь с голосами, оптимизированными для китайского языка, через POST /v3/glm-tts
  • Транскрибировать аудиофайлы .wav или .mp3 через POST /v3/glm-asr
  • Клонировать голос из короткого аудиосэмпла и синтезировать новую речь через POST /v3/glm-tts-voice-clone

Все эндпоинты доступны через API Novita AI по адресу https://api.novita.ai.

Предварительные требования

  1. Учётная запись Novita AI. Получите API-ключ в консоли Novita AI.
  2. curl для примеров в командной строке.
  3. Python 3.8+ с установленным requests для примеров на Python.

Установите ключ как переменную окружения:

export NOVITA_API_KEY="your_api_key_here"

Быстрый старт GLM TTS

Эндпоинт: POST https://api.novita.ai/v3/glm-tts

Преобразует текст длиной до 1024 символов в речь. Ответ — бинарные аудиоданные; запишите их напрямую в файл.

Параметры

Параметр Тип По умолчанию Примечания
input string Обязательно. До 1024 символов.
voice string tongtong ID системного голоса или имя клонированного голоса.
speed number 1.0 Диапазон: 0.5–2.0
volume number 1.0 Диапазон: 0–10
response_format string pcm wav или pcm. WAV включает стандартный аудиозаголовок; PCM — сырые байты при 24000 Гц.
watermark_enabled boolean true Установите false только если в вашей учётной записи отключено наложение водяного знака.

Системные голоса

ID голоса Отображаемое имя
tongtong Тунтун (по умолчанию)
chuichui Чуйчуй
xiaochen Сяочэнь
jam Дундун Зоопарк – Jam
kazi Дундун Зоопарк – Kazi
douji Дундун Зоопарк – Douji
luodo Дундун Зоопарк – 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)

Ограничения: 1024 символа на запрос. Для более длинных текстов разбивайте по границам предложений и объединяйте аудио. Рекомендуемая частота дискретизации воспроизведения: 24000 Гц. Имена голосов чувствительны к регистру.

Быстрый старт GLM ASR

Эндпоинт: POST https://api.novita.ai/v3/glm-asr

Транскрибирует аудио .wav или .mp3 с помощью модели GLM-ASR-2512. Аудио можно передать как URL или строку в кодировке base64. Ограничения: файл ≤ 25 МБ, длительность ≤ 30 секунд.

Параметры

Параметр Тип Примечания
file string Обязательно. URL или аудио в кодировке base64. Только .wav или .mp3.
prompt string Необязательно. Контекст предыдущей транскрипции, до 8000 символов. Используется для непрерывности при чанковой транскрибации.
hotwords array Необязательно. До 100 доменно-специфичных терминов для повышения точности распознавания.

curl (ввод 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 (ввод 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"])

Ответ

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

Обработка аудио длиннее 30 секунд: Разбейте на чанки ≤30 секунд и объединяйте запросы, используя поле prompt для передачи контекста транскрипции между чанками:

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

Быстрый старт GLM Voice Clone

Эндпоинт: POST https://api.novita.ai/v3/glm-tts-voice-clone

Принимает аудиосэмпл и синтезирует новую речь этим голосом. Присвойте имя клонированному голосу; используйте его как параметр voice в GLM TTS без повторной загрузки сэмпла.

Параметры

Параметр Тип Примечания
audio_url string Обязательно. URL аудиосэмпла. ≤ 10 МБ, рекомендуется 3–30 с.
input string Обязательно. Текст для синтеза клонированным голосом.
voice_name string Обязательно. Уникальное имя, которое вы присваиваете этому голосу.
text string Необязательно. Транскрипция аудиосэмпла — улучшает качество клонирования.

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"Тембр голоса: {data['voice']}")
print(f"URL аудио: {data['audio_url']}")

Ответ

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

Значение voice, возвращённое здесь, можно напрямую передать в параметр voice GLM TTS для последующих вызовов синтеза.

Советы: Используйте чистый сэмпл длительностью 5–15 секунд без фонового шума. Укажите транскрипцию text сэмпла для улучшения фонемного выравнивания.

Цены и примечания по использованию

Цены по состоянию на июнь 2026 г., с novita.ai/pricing:

API Цена
GLM TTS $0.28 / 1M символов
GLM ASR $0.021 / 1M символов
GLM Voice Clone $0.83 / 1M символов

GLM TTS хорошо подходит для крупнообъёмного синтеза на китайском языке, где важна стоимость. Если вам нужен более широкий многоязычный TTS для более чем 30 языков или асинхронная обработка длинного контента, рассмотрите MiniMax Speech как альтернативу.

Часто задаваемые вопросы

Какие языки поддерживает GLM TTS? Оптимизирован для китайского (мандаринского). Обрабатывает смешанный китайско-английский ввод. Для широкого многоязычного охвата используйте MiniMax Speech.

Можно ли повторно использовать клонированный голос с GLM TTS? Да. Передайте voice_name, который вы задали при вызове Voice Clone, как параметр voice в GLM TTS. Повторно загружать сэмпл не нужно.

Почему существует ограничение в 30 секунд для GLM ASR? Модель обрабатывает аудио синхронно. Разбивайте длинные записи по границам предложений и объединяйте запросы, используя поле prompt для передачи контекста.

В чём разница между выводом pcm и wav? PCM — это сырые аудиобайты с частотой 24000 Гц без заголовка. WAV оборачивает то же аудио в стандартный контейнер, который большинство библиотек могут прочитать напрямую. Используйте WAV, если ваш конвейер не требует сырого PCM.

Всегда ли работает установка watermark_enabled: false? Только если вы отключили наложение водяного знака в настройках учётной записи. В противном случае флаг игнорируется.

Рекомендуемые статьи