Lyria API

Lyria 是一款用于生成高品质音频的全新基础模型,能够根据文本提示创建各种音景和乐曲。借助 Lyria,用户可以根据文本提示生成高质量的器乐。

如需在控制台中探索此模型,请参阅模型库中的 Lyria 模型卡片(可通过“媒体工作室”标签页访问)。

试用 Lyria on Vertex AI (Vertex AI Studio)

在 Colab 中试用 Lyria

支持的模型

Lyria API 支持以下模型:

  • lyria-002

HTTP 请求

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://LOCATION[-aiplatform.googleapis.com/v1/projects/](https://-aiplatform.googleapis.com/v1/projects/)PROJECT_ID/locations/LOCATION/publishers/google/models/lyria-002:predict \
  -d '{
    "instances": [
      {
        "prompt": "string",
        "negative_prompt": "string", // Optional
        "seed": 0 // Optional. Cannot be used with sample_count.
      }
    ],
    "parameters": {
      "sample_count": 1 // Optional. Cannot be used with seed.
    }
  }'

对 Lyria 模型使用以下参数。如需了解详情,请参阅 Lyria Model Garden 卡片详细信息。

参数

prompt

(在 instances 对象中)

string

必需。要生成的音频的文本说明(美国英语 [en-us])。

示例:“一首节奏很快的活力四射的电子舞曲。”

negative_prompt

(在 instances 对象中)

string

可选。用于说明要从生成的音频中排除的内容。

示例:"人声,慢速"

seed

(在 instances 对象中)

integer

可选。用于确定性生成的种子。如果提供,模型将尝试在给定相同提示和其他参数的情况下生成相同的音频。

不能在同一请求中与 sample_count 一起使用。

示例:12345

sample_count

(在 parameters 对象中)

integer

可选。要生成的音频样本数量。如果未指定且未使用种子,则默认值为 1。

不能在同一请求中与 seed 一起使用。

示例:2

示例请求

使用以下请求根据文字提示生成器乐:

文本转音乐生成请求

curl

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/lyria-002:predict \
-d '{
  "instances": [
    {
      "prompt": "A calm acoustic folk song with a gentle guitar melody and soft strings.",
      "negative_prompt": "drums, electric guitar",
      "seed": 98765
    }
  ],
  "parameters": {}
}'

JSON

此示例使用 seed 来实现可重现的输出。

{
  "instances": [
    {
      "prompt": "A calm acoustic folk song with a gentle guitar melody and soft strings.",
      "negative_prompt": "drums, electric guitar",
      "seed": 98765
    }
  ],
  "parameters": {}
}

包含 sample_count 的 JSON

此示例使用 sample_count 生成多个样本。

如需使用 Lyria API 测试文本提示,请向发布者模型端点发送 POST 请求。以下示例从 instances 对象中省略了 seed,并在 parameters 对象中使用 sample_count 生成多个样本。

{
  "instances": [
    {
      "prompt": "A calm acoustic folk song with a gentle guitar melody and soft strings.",
      "negative_prompt": "drums, electric guitar"
    }
  ],
  "parameters": {
    "sample_count": 2
  }
}

响应正文

如果请求成功,则会返回一个包含生成的音频数据的 JSON 对象。 生成的每个音频片段时长为 30 秒,并以 WAV 音频文件的形式提供,采样率为 48kHz。

{
  "predictions": [
    {
      "audioContent": "BASE64_ENCODED_WAV_STRING_SAMPLE_1",
      "mimeType": "audio/wav"
    }
    // Additional audio samples will be listed here if sample_count > 1
    // e.g.,
    //{"audioContent": "BASE64_ENCODED_WAV_STRING_SAMPLE_2",
    // "mimeType": "audio/wav"
    //}
  ],
  "deployedModelId": "xxxxxxxxxxxxxxx", // Actual ID may vary based on deployment
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/lyria-002",
  "modelDisplayName": "Lyria 2"
}
回答元素
predictions

array

生成的音频样本的数组。数组中的每个对象都代表一个音频片段。

predictions[].audioContent

string

生成的 WAV 音频数据的 base64 编码字符串。

predictions[].mimeType

string

音频数据的 MIME 类型。对于 Lyria,该值为 "audio/wav"

deployedModelId

string

处理请求的已部署模型的 ID(如果适用于相应端点类型)。

model

string

处理请求的模型的完整资源名称。

modelDisplayName

string

模型的显示名称。

最佳做法和限制

如需详细了解提示、语言支持(提示仅支持美国英语)、生成时间、输出格式(WAV、48 kHz、30 秒的器乐片段)、安全措施和部署信息方面的最佳实践,请参阅 Lyria 模型卡片。

要点:

  • 详细的提示:通常会生成更好的音频。
  • 指定:流派、情绪、乐器、节奏。
  • 否定提示:使用 negative_prompt 排除元素。
  • 输出:30 秒的 WAV 音频片段,48 kHz,仅包含乐器。
  • 安全性:应用内容安全过滤器、朗读检查、创作者意图检查和 SynthID 水印。

价格

Lyria 2 的使用费用为每生成 30 秒的输出音乐 $0.06。如需了解详情,请参阅 Vertex AI 价格

更多信息

  • 详细了解 Vertex AI 上的生成式 AI
  • 如需大致了解 Lyria,请参阅 Model Garden(媒体工作室)中提供的模型卡片。

后续步骤