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

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

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

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

以下の場合にこのガイドを使用してください。

  • 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 ドンドン Zoo – Jam
kazi ドンドン Zoo – Kazi
douji ドンドン Zoo – Douji
luodo ドンドン 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)

制限: 1 リクエストあたり 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 音声クローン クイックスタート

エンドポイント: 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 文字起こしを提供すると、音素の位置合わせが向上します。

料金と使用上の注意

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 はヘッダーなしの 24000 Hz の生の音声バイト列です。WAV は同じ音声を、ほとんどのライブラリが直接読み取れる標準コンテナでラップします。パイプラインで生の PCM が必要な場合を除き、WAV を使用してください。

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

おすすめ記事