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

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

Это руководство проведет вас от получения 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="ваш_ключ_api_здесь"

Быстрый старт с 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 Tongtong (по умолчанию)
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)

Ограничения: 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? Только если вы завершили удаление водяных знаков в настройках своей учетной записи. В противном случае флаг игнорируется.

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