Lyria
Генерация музыки по тексту: от одного до восьми клипов с синхронной выдачей результата.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
google/lyria создаёт музыку по письменному описанию через /v1/music/generations. Пример задачи — сдержанная инструментальная подложка для демонстрации продукта: опишите ведущие инструменты и пространство, которое нужно оставить для дикторского текста. Выбирайте маршрут, когда нужен сгенерированный музыкальный клип.
Обязательны model и prompt. Параметр n или count принимает от одного до восьми клипов; метод возвращает результат генерации синхронно. Сохраните каждый полученный клип и его фактические метаданные. Ввод аудиореференса, настройка длительности и поле темпа не предоставляются как отдельные параметры. Описывайте музыкальный замысел в prompt, не считая его гарантированным измеренным свойством результата.
Ailoot · Музыка POST /v1/music/generations google/lyria
google/lyriaНачало
Генерация музыки по тексту: от одного до восьми клипов с синхронной выдачей результата.
- Допустимые входные данные
- Текст
- Результаты
- music
Доступно в Ailoot · входные данные и методы
Ailoot · Музыка POST /v1/music/generations
- Входные данные
text- Результат
music- Выходной формат
- готовые аудиоклипы, принадлежащие Ailoot, или ссылки в 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 · Музыка
готовые аудиоклипы, принадлежащие 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 и метаданные. Метод синхронный; отдельный URL проверки статуса генерации музыки Ailoot не вводится.
Если нужно проверить исходный ответ
Если результат генерации музыки требует проверки, сохраните исходные operation_id/X-Client-Request-ID и сведения о возвращённых клипах. Восстанавливайте существующие клипы, принадлежащие Ailoot, через медиатеку по фактическим значениям task_id или asset_id. Не отправляйте запрос на музыку повторно и не формируйте URL проверки статуса генерации из operation_id.
Поля ответа
| Поле | Тип |
|---|---|
Поле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