エンドポイント
音楽と音声
Lyria 3 や GPT Audio などの音楽と音声出力モデルを、Chat Completions の modalities 指定で呼び出す方法です。Pro 以上のプランが必要で、音声入力、モデル一覧、料金、エラーを説明します。生成された音声はアシスタントのメッセージに含まれます。
プレイグラウンドで試す音楽および音声出力のモデル(Lyria 3、GPT Audio など)には専用のエンドポイントがなく、Chat Completions を通じて呼び出し、modalities で音声出力を指定します。生成された音声は、アシスタントのメッセージ内に base64 でエンコードされて返されます。
POST https://api14.com/api/v1/chat/completions
リクエスト
Chat Completions のパラメーターがすべて使えます。音声固有のものは次のとおりです。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 音声モデルの ID。例: google/lyria-3 または openai/gpt-audio。 |
messages | array | はい | 求める音楽や音声の内容を記述します。 |
modalities | string[] | はい | 音声を受け取るには ["text", "audio"]。 |
audio | object | いいえ | 音声モデルの出力オプション: { "voice": "alloy", "format": "wav" }。 |
stream | boolean | いいえ | 対応するモデルで、音声のチャンクを Server-Sent Events でストリーミングします。 |
例
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "google/lyria-3",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
生のリクエストは次のとおりです。
{
"model": "google/lyria-3",
"modalities": ["text", "audio"],
"messages": [
{ "role": "user", "content": "A 30-second lo-fi hip hop loop with soft piano and vinyl crackle." }
]
}
レスポンス
{
"id": "gen-1791100000-xyz",
"object": "chat.completion",
"model": "google/lyria-3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Here is your loop.",
"audio": { "id": "audio_01", "data": "UklGRiQAAABXQVZFZm10...", "format": "wav" }
},
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 24, "completion_tokens": 1500, "total_tokens": 1524, "cost": 0.06 }
}
choices[0].message.audio.data を base64 からデコードし、指定された format の拡張子で保存します。
音声入力
モデルに音声を入力する場合(たとえば「この録音を要約して」)は、input_audio コンテンツパートを使います。画像とファイル入力を参照してください。単純な音声からテキストへの変換には文字起こしのほうが簡単で安価です。テキスト読み上げには音声合成を使います。
音声モデルの一覧
curl "https://api14.com/api/v1/models?category=audio"
料金
音声モデルは、モデルによって音声トークン、秒、またはリクエストあたりの表示価格で課金されます。正確な料金は usage.cost に含まれます。
エラー
| ステータス | コード | 発生条件 |
|---|---|---|
| 402 | insufficient_balance | USD 残高が $0。 |
| 403 | plan_required | プランに音声モデルが含まれていない。 |
| 404 | model_not_found | モデル ID が不明、または無効化されている。 |
エラーを参照してください。