Lovely Routerドキュメント
キーを取得
モデル API

音声合成

OpenAI の音声 API で Qwen3-TTS と ZONOS2 を使ってテキストを音声にします。プリセットのボイス、説明文から作るボイス、短い録音からのボイスクローン、感情の指定に対応し、10〜40 以上の言語で使えます。料金は音声 1 分単位です。

Lovely Router は OpenAI の音声エンドポイント POST /v1/audio/speech を提供しており、当社の GPU で動くオープンウェイトの音声モデルが応答します。OpenAI SDK の接続先を https://lovelyrouter.com/v1 にして Lovely Router のキーを使うと、レスポンスで音声が返ります。OpenAI のフィールドに加えて、説明文からボイスを作る、短い録音から声をクローンする、言語を指定する、ZONOS2 では感情を指定する、といったことができます。すべてのフィールドは音声のエンドポイントのリファレンスにあります。

モデル#

モデル料金得意なこと言語
qwen3-tts1 分あたり $0.036説明文から作るボイス、スタイル指示に対応した 9 種類のプリセットボイス、ボイスクローン10 言語:中国語、英語、日本語、韓国語、ドイツ語、フランス語、ロシア語、ポルトガル語、スペイン語、イタリア語
zonos21 分あたり $0.036再現度の高いボイスクローン、感情(喜び、悲しみ、怒り、驚き)40 以上。英語、中国語、日本語が最も得意

どちらも生成した音声の秒数で課金され、1 リクエストあたり最低 1 秒です。Qwen3-TTS は Alibaba の Qwen チームが、ZONOS2 は Zyphra が、どちらも Apache-2.0 ライセンスで公開しています。

どちらのモデルも、使われていないときは休止するホスト型 GPU で動いています。しばらく使われなかった後の最初のリクエストは、モデルの読み込みを待つため qwen3-tts で約 45 秒、zonos2 で最長 2 分ほどかかります。その後は、Qwen3-TTS は実時間の約 2 倍の速さで、ZONOS2 は 1 リクエストあたりほぼ実時間で生成し、複数のリクエストを同時に処理するとさらに速くなります。

音声を生成する#

curl https://lovelyrouter.com/v1/audio/speech \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-tts",
    "input": "おかえりなさい!ご注文の商品を発送しました。木曜日に届く予定です。",
    "voice": "ono_anna",
    "instructions": "明るく親しみやすく、少し速めに"
  }' \
  --output welcome.mp3

レスポンスは音声そのものです(response_format を指定しなければ MP3)。音声の長さ(秒)は x-lovely-audio-seconds ヘッダーに入ります。テキストは最大 4,096 文字で、長いテキストは同じボイスで 1 文ずつ読み上げられます。

ボイス#

voice には、モデルのプリセットボイス、保存したボイスの id、または OpenAI のボイス名を指定できます。OpenAI のボイス名は最も近いプリセットに対応付けられるので、OpenAI 向けに書いたコードはそのまま動きます。

qwen3-tts のボイス声の特徴ネイティブ言語
vivian明るく、少し個性のある若い女性中国語
serena温かく優しい若い女性中国語
uncle_fu落ち着いた低くまろやかな男性中国語
dylan若く、澄んだ自然な男性中国語(北京方言)
eric明るく、少しハスキーな男性中国語(四川方言)
ryanリズム感のある力強い男性英語
aiden明るいアメリカ英語の男性英語
ono_anna軽やかで遊び心のある若い女性日本語
sohee温かく感情豊かな女性韓国語

zonos2 には american_female、american_male、british_female の 3 種類があります。

どのボイスもそのモデルが対応するすべての言語を話せますが、ネイティブ言語が最もきれいです。voice を省略すると、モデルが language に合ったプリセットを選びます(qwen3-tts:中国語は vivian、日本語は ono_anna、韓国語は sohee、それ以外は ryan)。

スタイルの指示#

qwen3-tts では、instructions でプリセットやクローンしたボイスの話し方を指定できます。感情、話す速さ、声の大きさ、ささやき声、訛りなど。声優に演技を伝えるように、どの言語で書いてもかまいません:

JSON
{ "model": "qwen3-tts", "voice": "uncle_fu", "input": "みんな集まって。本当は何があったのか話してあげよう。", "instructions": "ゆっくり、秘密めかして、半分ささやくように" }

ボイスを作る#

voice を省略して instructions に声の説明(年齢、性別、声質、話す速さ、雰囲気、訛り)を書くと、qwen3-tts がその声を新しく作ります:

JSON
{ "model": "qwen3-tts", "input": "おーい!帆を下ろせ、港に入るぞ。", "instructions": "しゃがれた大声の年老いた海賊の船長。少し酔っていて、楽しそう" }

作ったボイスは毎回少しずつ変わります。同じ声を使い続けたいときは、生成した音声をボイスとして保存し、以降はその id を使ってください。

感情(ZONOS2)#

zonos2 では instructions の代わりに emotion を使います。happy、sad、angry、surprised のいずれか、または {"happy": 0.7, "surprised": 0.3} のような 0〜1 の重みです。話者の声はそのままで、表現だけが変わります。

ボイスをクローンする#

どちらのモデルも、短い録音から声をクローンできます。1 人がはっきり話している 3〜15 秒の音声で、音楽は入れないでください。一度保存すれば、その id を voice に使えます:

cURL
curl https://lovelyrouter.com/v1/audio/voices \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F name="ナレーター" \
  -F transcript="ご清聴ありがとうございました。また来週の番組でお会いしましょう。" \
  -F consent=true \
  -F file=@narrator.wav

返されるのはボイスオブジェクトです。その id で音声を生成します:

cURL
curl https://lovelyrouter.com/v1/audio/speech \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen3-tts", "voice": "voice_8f2c4a1e9b7d3f60a5c2e1d4", "input": "今日はお茶の歴史についてお話しします。"}' \
  --output episode.mp3
  • transcript は録音で話している内容です。これがあると Qwen3-TTS はより本人に近い声でクローンします。ない場合は声質だけを合わせます。ZONOS2 には不要です。
  • consent: true が必須です。自分の声であること、または話者からクローンの許可を得ていることを確認し、使い方に責任を持つことになります。人をだましたり、なりすましたりするためにクローンしないでください。
  • 保存したボイスは無料で、あなたのアカウントだけが使え、削除するまで保持されます。1 アカウント最大 100 件。WAV、MP3、M4A、OGG/Opus、FLAC、WebM、最大 10 MB。
  • 保存したボイスは両方のモデルで、それぞれが対応するすべての言語で使え、qwen3-tts では instructions とも組み合わせられます。

一度だけクローンするなら、録音をリクエストと一緒に送ります:reference_audio(https URL、data: URL、または base64)、reference_text、consent: true。

出力#

response_format得られるもの
mp3(既定)MP3、128 kbps
opusOgg Opus、64 kbps
aacAAC(ADTS)
flacFLAC
wavWAV、16 ビット
pcm生の 16 ビットリトルエンディアン、24 kHz モノラル(OpenAI と同じ)

Qwen3-TTS は 24 kHz、ZONOS2 は 44.1 kHz の音声を生成します。speed(0.25〜4.0)は音の高さを変えずに速さだけを変えます。課金は返された音声の秒数です。

料金と制限#

  • どちらのモデルも音声 1 分あたり $0.036、秒単位で課金(1 秒あたり $0.0006)、1 リクエストあたり最低 1 秒です。失敗したリクエストは課金されません。
  • リクエストには正の残高が必要ですが、事前の引き当てはありません。呼び出しは生成した秒数とともにログページに表示されます。
  • 入力は最大 4,096 文字、instructions は最大 1,000 文字。
  • ストリーミングはありません。音声は完成してから返ります。stream_format: "sse" は 400 を返します。
  • 音声モデルは /v1/audio/speech だけに応答します。Chat Completions に送ると、このページを案内する 404 が返ります。creative-hosted チャネルグループで提供しています。