Gerar músicas com o Lyria

Você pode usar o Lyria para gerar novas faixas de música a partir de comandos. As interfaces compatíveis incluem o Cloud de Confiance console e a API Gemini API.

Testar o Lyria na Agent Platform (Agent Platform Studio)

Antes de começar

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Enable the Gemini Enterprise Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  3. Configure a autenticação do ambiente.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o Cloud de Confiance console para acessar Cloud de Confiance by S3NS serviços e APIs, não é necessário configurar a autenticação.

    REST

    Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de Cloud de Confiance autenticação.

Console

  1. No Cloud de Confiance console, acesse a página **Vertex AI Studio** > **Gerar mídia** > **Gerar mídia**.

    Gerar estúdio

  2. Clique em Música.

  3. No menu Tarefa, selecione Texto para música.

  4. No menu Modelo, selecione uma opção na lista.

  5. Opcional: na seção Recursos de entrada, clique em Adicionar para incluir um recurso para essa solicitação.

  6. Na caixa Comando, insira o comando de texto em inglês americano que descreve a música a ser gerada.

  7. Clique em Executar.

    Os clipes de áudio gerados estão disponíveis para visualização e download como arquivos WAV.

Lyria 3 REST

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: uma string que representa seu Cloud de Confiance by S3NS ID do projeto.
  • MODEL_ID: uma string que representa o ID do modelo a ser usado. Confira a seguir os valores aceitos:

    • lyria-3-clip-preview
    • lyria-3-pro-preview
  • TEXT_PROMPT: o comando de texto usado para orientar a geração de música.
  • IMAGE_URI: opcional: o URI do Cloud Storage em que a imagem de entrada está localizada.
  • IMAGE_DATABYTES: opcional: uma imagem de entrada codificada em Base64.

Método HTTP e URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

Corpo JSON da solicitação:

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT"
    },
    {
      "type": "image",
      "mime_type": "image/jpeg",
      "uri": "IMAGE_URI"
    },
    {
      "type": "image",
      "mime_type": "image/png",
      "data": "IMAGE_DATABYTES"
    },
  ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json, e execute o comando abaixo:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
A solicitação retorna o nome da operação, o status e o resultado.
{
  "status": "completed",
  "outputs": [
    {
      "text": "LYRICS",
      "type": "text"
    },
    {
      "text": "DESCRIPTION",
      "type": "text"
    },
    {
      "mime_type": "audio/mpeg",
      "data": "GENERATED_SONG_DATABYTES",
      "type": "audio"
    },
    {}
  ],
  "role": "model",
  "created": "CREATED_TIME",
  "updated": "UPDATE_TIME",
  "object": "interaction",
  "model": "lyria-3-pro-preview"
}

Lyria 2 REST

Use o método predict para enviar uma solicitação de geração de música. A resposta vai conter diretamente os dados de áudio, normalmente codificados em Base64 se a resposta for JSON.

Para mais informações sobre solicitações de modelo lyria-002, consulte a lyria-002 referência da API do modelo.

Para gerar música, envie uma solicitação POST ao endpoint predict do modelo.

Solicitação:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/lyria-002:predict \
  -d '{
    "instances": [
      {
        "prompt": "An uplifting and hopeful orchestral piece with a soaring string melody and triumphant brass.",
        "negative_prompt": " dissonant, minor key",
        "seed": 12345
      }
    ],
    "parameters": {
      // "sample_count": 1 // Use either seed or sample_count
    }
  }'

Resposta:

Uma solicitação bem-sucedida retorna um objeto JSON que contém os dados de áudio gerados. A aparência será semelhante a esta:

{
  "predictions": [
    {
      "audioContent": "BASE64_ENCODED_WAV_STRING_SAMPLE_1",
      "mimeType": "audio/wav"
    },
    {
      "audioContent": "BASE64_ENCODED_WAV_STRING_SAMPLE_2",
      "mimeType": "audio/wav"
    }
  ],
  "deployedModelId": "xxxxxxxxxxxxxxx",
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/lyria-002",
  "modelDisplayName": "Lyria 2"
}

Em seguida, você decodificaria o audioContent (Base64) para receber o arquivo de áudio WAV. Cada clipe tem 32,8 segundos de duração.

A seguir