GLM TTS および ASR API クイックスタート

GLM TTS および ASR API クイックスタート

このガイドでは、API キーの取得から GLM オーディオ API(テキスト読み上げ用の GLM TTS、文字起こし用の GLM ASR、カスタム音声合成用の GLM Voice Clone)を使用したオーディオ出力までを説明します。これらはすべて、ポーリングや Webhook の手順が不要な同期 REST エンドポイントです。音声機能、文字起こしパイプライン、または中国語オーディオアプリケーションを構築する場合、これが最も迅速に統合を完了する方法です。

このクイックスタートを使用するケース

以下の目的がある場合にこのガイドをご利用ください:

  • POST /v3/glm-tts を使用して、中国語に最適化された音声でテキストを音声に変換する
  • POST /v3/glm-asr を使用して、.wav または .mp3 オーディオファイルを文字起こしする
  • POST /v3/glm-tts-voice-clone を使用して、短いオーディオサンプルから音声をクローンし、新しい音声を合成する

すべてのエンドポイントは、Novita AI API https://api.novita.ai から利用可能です。

前提条件

  1. Novita AI アカウント。API キーは Novita AI コンソール から取得してください。
  2. シェル例で使用する curl
  3. Python 例で使用する Python 3.8+ と、インストール済みの requests

キーを環境変数として設定します:

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 トントン(デフォルト)
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 Hz。音声名は大文字と小文字を区別します。

GLM ASR クイックスタート

エンドポイント: POST https://api.novita.ai/v3/glm-asr

GLM-ASR-2512 モデルを使用して、.wav または .mp3 オーディオを文字起こしします。オーディオは URL または base64 文字列として渡せます。制約: ファイルサイズ 25 MB 以下、再生時間 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

サンプルオーディオクリップから新しい音声を合成します。クローンした音声に名前を割り当てます。サンプルを再アップロードすることなく、GLM TTS の voice パラメータとして再利用できます。

パラメータ

パラメータ 備考
audio_url string 必須。サンプルオーディオの URL。10 MB 以下、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 文字起こしを提供すると、音素の位置合わせが向上します。

料金と使用上の注意

novita.ai/pricing より、2026 年 6 月時点の料金:

API 価格
GLM TTS $0.28 / 100 万文字
GLM ASR $0.021 / 100 万文字
GLM Voice Clone $0.83 / 100 万文字

GLM TTS は、コストが重要な大量の中国語合成に適しています。30 以上の言語をカバーする多言語 TTS や長時間コンテンツの非同期処理が必要な場合は、MiniMax Speech が代替案として検討に値します。

FAQ

GLM TTS はどの言語をサポートしていますか? 中国語(北京語)に最適化されています。中国語と英語が混在した入力も処理できます。幅広い多言語カバレッジが必要な場合は、代わりに MiniMax Speech を使用してください。

クローンした音声を GLM TTS で再利用できますか? はい。Voice Clone 呼び出しで割り当てた voice_name を GLM TTS の voice パラメータとして渡します。サンプルを再アップロードする必要はありません。

GLM ASR に 30 秒の制限があるのはなぜですか? モデルがオーディオを同期的に処理するためです。長い録音は文の境界で分割し、prompt フィールドを使用してコンテキストを引き継ぎながらリクエストを連鎖させてください。

pcmwav 出力の違いは何ですか? PCM はヘッダーなしの 24000 Hz の生のオーディオバイト列です。WAV は同じオーディオを、ほとんどのライブラリが直接読み取れる標準コンテナでラップします。パイプラインで生の PCM が必要でない限り、WAV を使用してください。

watermark_enabled: false の設定は常に機能しますか? アカウント設定で透かし除去が完了している場合のみ機能します。そうでない場合、このフラグは無視されます。

おすすめ記事