Lyria
文章から音楽を生成。1〜8クリップを指定でき、生成結果は同期的に返されます。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
google/lyriaは、/v1/music/generationsで文章のプロンプトから音楽を作ります。製品デモの落ち着いたインストゥルメンタルを、中心となる楽器とナレーションのために必要な余白を説明して依頼する用途などに使えます。音楽クリップが欲しい場合に選んでください。
modelとpromptが必須です。nまたはcountは1〜8クリップを指定でき、生成結果は同期的に返ります。すべてのクリップと実際のメタデータを保存してください。音声参照、長さ、テンポの項目はなく、個別に選択する制御ではありません。音楽的な意図はプロンプトで伝え、出力の計測値まで保証されるとは考えないでください。
Ailoot · 音楽 POST /v1/music/generations google/lyria
google/lyriaはじめに
文章から音楽を生成。1〜8クリップを指定でき、生成結果は同期的に返されます。
- 対応する入力
- テキスト
- 結果
- music
Ailootで利用可能 · 入力とメソッド
Ailoot · 音楽 POST /v1/music/generations
- 入力の種類
text- 出力の種類
music- 出力形式
- 完全な所有音声クリップ/JSONリンク
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 google/lyria | デフォルト— |
フィールドprompt | 種類string | 要件必須 | 値と制限 最小の長さ: 1 | デフォルト— |
フィールドn | 種類integer | 要件任意 | 値と制限 最小値: 1 最大値: 8 | デフォルト1 |
フィールドcount | 種類integer | 要件任意 | 値と制限 最小値: 1 最大値: 8 条件: nも指定する場合は、個数を一致させる必要があります | デフォルト— |
入力素材の組み合わせ
text_to_music · 必須: prompt
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータmaterial_types | 仕様text |
パラメータrequired | 仕様null |
パラメータoptional_controls | 仕様null |
ライフサイクル: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 実際に返された task_id またはメディアライブラリのレコード
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
メソッドの形式とIDは正確に記載しています。供給元の対応能力とリクエストの受け入れは別です。
料金
Ailootのメソッド料金
POST /v1/music/generations- 出力
- $0.08 クリップあたり
- 参考のみ・加算なし
- $0.08 リクエストあたり
配信されたクリップ数 × クリップの基本料金。リクエスト単位の参考料金は加算されません。例は適用調整前の金額です。
1 × $0.08 = $0.08
4 × $0.08 = $0.32
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
リクエスト例
Ailoot · 音楽
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/lyria", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
export AILOOT_API_KEY
python3 - <<'PY_RESULT'
import json, os, subprocess
from pathlib import Path
from urllib.parse import urljoin, urlparse
result=json.loads(Path("result.json").read_text(encoding="utf-8"))
print(json.dumps(result,ensure_ascii=False,indent=2))
for number,clip in enumerate(result.get("data") or []):
u=urlparse(urljoin("https://api.ailoot.ai",clip["url"]))
if u.scheme!="https" or not u.hostname or u.username or u.password:
raise SystemExit("Result URL must be HTTPS without embedded credentials")
owned=u.netloc=="api.ailoot.ai" and u.path.startswith("/v1/media/assets/") and u.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",u.geturl()]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
raw=subprocess.check_output(args)
ext="wav" if raw.startswith(b"RIFF") and raw[8:12]==b"WAVE" else "flac" if raw.startswith(b"fLaC") else "ogg" if raw.startswith(b"OggS") else "mp3" if raw.startswith(b"ID3") or raw[:1]==b"\xff" else "bin"
f=Path("music-"+str(number)+"."+ext);f.write_bytes(raw)
print("Saved",f,clip.get("asset_id"))
PY_RESULT
結果を受け取って保存
Ailoot · 音楽
完全な所有音声クリップ/JSONリンク
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
完了した結果をすべて保存
返された完全なレスポンス、ファイル、コンテンツ部分をすべて保存してください。
返されたクリップをすべて保存/取得し、実際のID、MIME、メタデータを保持してください。このメソッドは同期式です。別途Ailootの音楽生成用ポーリングURLを導入するものではありません。
元のレスポンスを確認する場合
音楽の結果に確認が必要な場合は、元のoperation_id/X-Client-Request-IDと、返されたクリップ情報を保持してください。実際のtask_idまたはasset_idを使い、メディアライブラリから既存の所有クリップを復元してください。音楽リクエストを再送信したり、operation_idから生成用ポーリングURLを組み立てたりしないでください。
レスポンスのフィールド
| フィールド | 種類 |
|---|---|
フィールドmodel | 種類string |
フィールドresponse_id | 種類string |
フィールドdata[] | 種類owned clip record |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件必須フィールド、素材の表現形式、またはパラメーター値が不正です | 次の手順新しい生成リクエストを送る前に、指定されたフィールドを修正してください。 |
レスポンスserver_error | 条件返されたレスポンスは、操作または結果の確認が必要であることを示しています | 次の手順最初に返された操作/タスク ID、リクエストヘッダー、レスポンスを保存し、その元の操作に対してサポートされている読み取りを継続してください。作成リクエストを再送しないでください。 |
エイリアス
モデルのエイリアス
Ailoot google/lyria
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · Lyria
- 利用できる入力と結果は何ですか?
POST /v1/music/generations·google/lyria:text→music- リクエストはどの項目を使用しますか?
POST /v1/music/generations·google/lyria:model,prompt,n,count- どの制限が適用されますか?
POST /v1/music/generations·google/lyria:n.minimum:1;n.maximum:8;count.minimum:1;count.maximum:8