Lovely Routerドキュメント
キーを取得
API リファレンス

音声のエンドポイント

POST /v1/audio/speech はテキストを音声にします(OpenAI のリクエスト形式に、ボイスの作成、クローン、言語、感情を追加)。/v1/audio/voices はクローン用のボイスサンプルを保存し、作成、一覧、取得、名前の変更、ダウンロード、削除ができます。

音声合成は OpenAI の音声 API に準拠しているため、公式 SDK を https://lovelyrouter.com/v1 に向けるだけで使えます。モデル、ボイス、例はガイドの音声合成にあります。API キーで Authorization: Bearer $LOVELY_API_KEY として認証します(認証)。

音声を生成する#

POST/v1/audio/speech

input を読み上げて音声ファイルを返します。長さ(秒)は x-lovely-audio-seconds ヘッダー、呼び出しの id は x-lovely-request-id に入ります。生成した音声の秒数で課金され(最低 1 秒)、失敗したリクエストは課金されません。

ボディパラメータ

modelstring必須

qwen3-tts または zonos2(GET /v1/models で料金とともに一覧できます)。

inputstring必須

読み上げるテキスト。最大 4,096 文字。

voicestring or object

モデルのプリセットボイス、OpenAI のボイス名(alloy、nova、onyx などはプリセットに対応付け)、または保存したボイスの id(voice_…、{"id": "voice_…"} でも可)。省略可能:省略するとモデルが language に合うプリセットを選ぶか、qwen3-tts が instructions からボイスを作ります。

instructionsstring

qwen3-tts のみ、最大 1,000 文字。ボイスがある場合は話し方(感情、速さ、音量、ささやき)。ない場合は作るボイスの説明。

languagestring

ISO コード(en、zh、ja、ko、de、fr、pt-br など)または auto(既定)。短いテキストや数字の読みに役立ちます。

response_formatstringデフォルト mp3

mp3、opus、aac、flac、wav、pcm(16 ビット、24 kHz モノラル)。

speednumberデフォルト 1.0

0.25〜4.0。音の高さは変わりません。

emotionstring or object

zonos2 のみ:happy、sad、angry、surprised、または {"happy": 0.7} のような 0〜1 の重み。

seedinteger

再現可能な出力のため。0〜2147483647。

reference_audiostring

一度だけクローンする声:3〜15 秒の録音の https URL、data: URL、または base64(WAV、MP3、M4A、OGG、FLAC、WebM、最大 10 MB)。voice とは併用できません。

reference_textstring

reference_audio で話している内容(あると qwen3-tts のクローンがより本人に近くなります)。

consentboolean

reference_audio を使うときは必須:自分の声であるか、話者の許可を得ていることを確認します。

エラーは通常の形式です:400 invalid_request_error で param にフィールド名(不明なボイス、zonos2 での instructions、qwen3-tts での emotion、consent の欠落)、残高不足は 402、不明なモデルや他人のボイスは 404、生成に失敗したときは 502(課金なし)。

curl https://lovelyrouter.com/v1/audio/speech \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-tts",
    "input": "Hello! Nice to meet you.",
    "voice": "serena",
    "instructions": "Friendly and upbeat"
  }' \
  --output hello.mp3

ボイスオブジェクト#

属性

idstring

voice_ に続く 24 文字。voice に指定します。

objectstring

常に voice。

namestring

最大 80 文字。

transcriptstring | null

サンプルで話している内容。

typestring

サンプルの形式(例:audio/wav)。

bytesinteger

サンプルのサイズ。

audio_urlstring

サンプルをダウンロードします(API キーが必要)。

created_atinteger

Unix 秒。

ボイスオブジェクト
{
  "id": "voice_8f2c4a1e9b7d3f60a5c2e1d4",
  "object": "voice",
  "name": "Narrator",
  "transcript": "Thanks for listening. See you next week on the show.",
  "type": "audio/wav",
  "bytes": 482044,
  "audio_url": "https://lovelyrouter.com/v1/audio/voices/voice_8f2c4a1e9b7d3f60a5c2e1d4/audio",
  "created_at": 1792915200
}

ボイスを保存する#

POST/v1/audio/voices

ボイスサンプルを保存し、201 とボイスオブジェクトを返します。multipart(サンプルを file として)または JSON(audio に https か data: URL)で送ります。無料。1 アカウント最大 100 件で、削除するまで保持されます。

ボディパラメータ

namestring必須

最大 80 文字。

filefile (or `audio` string)必須

1 人がはっきり話している 3〜15 秒の音声(音楽なし):WAV、MP3、M4A、OGG/Opus、FLAC、WebM、最大 10 MB。

transcriptstring

サンプルで話している内容。最大 1,000 文字。

consentboolean必須

true:自分の声であるか、話者からクローンの許可を得ていること。

cURL
curl https://lovelyrouter.com/v1/audio/voices \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F name="Narrator" \
  -F transcript="Thanks for listening. See you next week on the show." \
  -F consent=true \
  -F file=@narrator.wav

ボイスの一覧#

GET/v1/audio/voices

保存したボイスを新しい順に返します:{"object": "list", "data": [voice, …]}。

ボイスを取得する#

GET/v1/audio/voices/{id}

ボイスオブジェクトを 1 つ返します。他のアカウントのボイスは 404 です。

サンプルをダウンロードする#

GET/v1/audio/voices/{id}/audio

アップロードしたままのサンプルです。

ボイスを更新する#

PATCH/v1/audio/voices/{id}

name と transcript のいずれかまたは両方を含む JSON(null で消去)。ボイスオブジェクトを返します。

ボイスを削除する#

DELETE/v1/audio/voices/{id}

ボイスとそのサンプルを完全に削除します:{"id": "voice_…", "object": "voice", "deleted": true}。それを使っていたキャラクターは声がなくなります。