GLM TTS 및 ASR API 빠른 시작

GLM TTS 및 ASR API 빠른 시작

이 가이드는 API 키에서 GLM 오디오 API로 작업 오디오를 얻는 과정을 안내합니다. GLM TTS(텍스트 음성 변환), GLM ASR(전사), GLM 음성 복제(사용자 정의 음성 합성)를 다룹니다. 세 API 모두 동기식 REST 엔드포인트로, 폴링이나 웹훅 단계가 필요 없습니다. 음성 기능, 전사 파이프라인 또는 중국어 오디오 애플리케이션을 구축한다면, 이 가이드가 가장 빠른 통합 경로입니다.

이 빠른 시작을 사용해야 할 때

다음이 필요할 때 이 가이드를 사용하세요:

  • POST /v3/glm-tts를 통해 중국어에 최적화된 음성으로 텍스트를 음성으로 변환
  • POST /v3/glm-asr를 통해 .wav 또는 .mp3 오디오 파일 전사
  • POST /v3/glm-tts-voice-clone를 통해 짧은 오디오 샘플에서 음성을 복제하고 새로운 음성 합성

모든 엔드포인트는 https://api.novita.ai에서 Novita AI API를 통해 사용 가능합니다.

사전 요구 사항

  1. Novita AI 계정. Novita AI 콘솔에서 API 키를 받으세요.
  2. 셸 예제를 위한 curl.
  3. Python 예제를 위한 requests가 설치된 Python 3.8+.

환경 변수로 키를 설정하세요:

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 Hz의 원시 바이트.
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 Hz. 음성 이름은 대소문자를 구분합니다.

GLM ASR 빠른 시작

엔드포인트: POST https://api.novita.ai/v3/glm-asr

GLM-ASR-2512 모델을 사용하여 .wav 또는 .mp3 오디오를 전사합니다. 오디오는 URL 또는 base64 문자열로 전달할 수 있습니다. 제약 사항: 파일 ≤ 25MB, 지속 시간 ≤ 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 음성 복제 빠른 시작

엔드포인트: POST https://api.novita.ai/v3/glm-tts-voice-clone

오디오 샘플 클립을 가져와 해당 음성으로 새로운 음성을 합성합니다. 복제된 음성에 이름을 할당하고, 샘플을 다시 업로드하지 않고 GLM TTS의 voice 매개변수로 재사용하세요.

매개변수

매개변수 유형 참고
audio_url string 필수. 샘플 오디오 URL. ≤ 10MB, 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"Voice timbre: {data['voice']}")
print(f"Audio URL: {data['audio_url']}")

응답

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

여기서 반환된 voice 값은 향후 합성 호출을 위해 GLM TTS voice 매개변수에 직접 전달할 수 있습니다.

팁: 배경 소음이 없는 깨끗한 5–15초 샘플을 사용하세요. 샘플의 text 전사본을 제공하여 음소 정렬을 개선하세요.

가격 및 사용 참고 사항

2026년 6월 기준 가격은 novita.ai/pricing에서 확인할 수 있습니다:

API 가격
GLM TTS $0.28 / 100만 자
GLM ASR $0.021 / 100만 자
GLM 음성 복제 $0.83 / 100만 자

GLM TTS는 비용이 중요한 대량 중국어 합성에 적합합니다. 30개 이상의 언어에 대한 광범위한 다국어 TTS 또는 긴 콘텐츠의 비동기 처리가 필요하다면 MiniMax Speech를 평가해 보세요.

FAQ

GLM TTS는 어떤 언어를 지원하나요? 중국어(표준 중국어)에 최적화되어 있습니다. 중국어-영어 혼합 입력을 처리합니다. 광범위한 다국어 지원이 필요하면 MiniMax Speech를 대신 사용하세요.

복제된 음성을 GLM TTS에서 재사용할 수 있나요? 네. 음성 복제 호출에서 할당한 voice_name을 GLM TTS의 voice 매개변수로 전달하세요. 샘플을 다시 업로드할 필요가 없습니다.

GLM ASR에 30초 제한이 있는 이유는 무엇인가요? 모델이 동기식으로 오디오를 처리합니다. 더 긴 녹음은 문장 경계에서 분할하고 prompt 필드를 사용하여 컨텍스트를 전달하며 요청을 연결하세요.

pcmwav 출력의 차이점은 무엇인가요? PCM은 헤더가 없는 24000Hz의 원시 오디오 바이트입니다. WAV는 동일한 오디오를 대부분의 라이브러리에서 직접 읽을 수 있는 표준 컨테이너에 래핑합니다. 파이프라인에서 원시 PCM이 필요하지 않다면 WAV를 사용하세요.

watermark_enabled: false 설정이 항상 작동하나요? 계정 설정에서 워터마크 제거를 완료한 경우에만 작동합니다. 그렇지 않으면 플래그가 무시됩니다.

추천 문서