Gjeneroni muzikë me Lyria 3

Lyria 3 është familja e modeleve të gjenerimit të muzikës së Google, e disponueshme përmes Gemini API. Me Lyria 3, ju mund të gjeneroni audio stereo me cilësi të lartë, 44.1 kHz nga mesazhet me tekst ose nga imazhet. Këto modele ofrojnë koherencë strukturore, duke përfshirë vokalet, tekstet e këngëve me kohë të ndryshueshme dhe aranzhimet e plota instrumentale.

Familja Lyria 3 përfshin dy modele:

Model ID e modelit Më e mira për Kohëzgjatja Prodhimi
Lyria 3 Clip lyria-3-clip-preview Klipe të shkurtra, cikle, parapamje 30 sekonda MP3
Lyria 3 Pro lyria-3-pro-preview Këngë të plota me vargje, refrene, ura Disa minuta (të kontrollueshme nëpërmjet një njoftimi) MP3

Të dy modelet mund të përdoren duke përdorur metodën standarde generateContent dhe API-në e re Interactions , duke mbështetur hyrjet multimodale (tekst dhe imazhe) dhe duke prodhuar audio stereo me besnikëri të lartë 44.1 kHz .

Gjenero një klip muzikor

Modeli Lyria 3 Clip gjeneron gjithmonë një klip 30-sekondësh . Për të gjeneruar një klip, thirrni metodën generateContent me një mesazh teksti. Përgjigja gjithmonë përfshin tekstin e gjeneruar dhe strukturën e këngës së bashku me audion.

Python

from google import genai

client = genai.Client()

response = client.models.generate_content(
    model="lyria-3-clip-preview",
    contents="Create a 30-second cheerful acoustic folk song with "
             "guitar and harmonica.",
)

# Parse the response
for part in response.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        with open("clip.mp3", "wb") as f:
            f.write(part.inline_data.data)
        print("Audio saved to clip.mp3")

JavaScript

import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "lyria-3-clip-preview",
    contents: "Create a 30-second cheerful acoustic folk song with " +
              "guitar and harmonica.",

  });

  for (const part of response.candidates[0].content.parts) {
    if (part.text) {
      console.log(part.text);
    } else if (part.inlineData) {
      const buffer = Buffer.from(part.inlineData.data, "base64");
      fs.writeFileSync("clip.mp3", buffer);
      console.log("Audio saved to clip.mp3");
    }
  }
}

main();

Shko

package main

import (
    "context"
    "fmt"
    "log"
    "os"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    result, err := client.Models.GenerateContent(
        ctx,
        "lyria-3-clip-preview",
        genai.Text("Create a 30-second cheerful acoustic folk song " +
                   "with guitar and harmonica."),
        nil,
    )
    if err != nil {
        log.Fatal(err)
    }

    for _, part := range result.Candidates[0].Content.Parts {
        if part.Text != "" {
            fmt.Println(part.Text)
        } else if part.InlineData != nil {
            err := os.WriteFile("clip.mp3", part.InlineData.Data, 0644)
            if err != nil {
                log.Fatal(err)
            }
            fmt.Println("Audio saved to clip.mp3")
        }
    }
}

Java

import com.google.genai.Client;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.Part;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class GenerateMusicClip {
  public static void main(String[] args) throws IOException {

    try (Client client = new Client()) {
      GenerateContentResponse response = client.models.generateContent(
          "lyria-3-clip-preview",
          "Create a 30-second cheerful acoustic folk song with "
              + "guitar and harmonica.");

      for (Part part : response.parts()) {
        if (part.text().isPresent()) {
          System.out.println(part.text().get());
        } else if (part.inlineData().isPresent()) {
          var blob = part.inlineData().get();
          if (blob.data().isPresent()) {
            Files.write(Paths.get("clip.mp3"), blob.data().get());
            System.out.println("Audio saved to clip.mp3");
          }
        }
      }
    }
  }
}

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-clip-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "Create a 30-second cheerful acoustic folk song with guitar and harmonica."}
      ]
    }]
  }'

C#

using System.Threading.Tasks;
using Google.GenAI;
using Google.GenAI.Types;
using System.IO;

public class GenerateMusicClip {
  public static async Task main() {
    var client = new Client();
    var response = await client.Models.GenerateContentAsync(
      model: "lyria-3-clip-preview",
      contents: "Create a 30-second cheerful acoustic folk song with guitar and harmonica."
    );

    foreach (var part in response.Candidates[0].Content.Parts) {
      if (part.Text != null) {
        Console.WriteLine(part.Text);
      } else if (part.InlineData != null) {
        await File.WriteAllBytesAsync("clip.mp3", part.InlineData.Data);
        Console.WriteLine("Audio saved to clip.mp3");
      }
    }
  }
}

Gjeneroni një këngë me gjatësi të plotë

Përdorni modelin lyria-3-pro-preview për të gjeneruar këngë me gjatësi të plotë që zgjasin disa minuta. Modeli Pro e kupton strukturën muzikore dhe mund të krijojë kompozime me vargje, refrene dhe ura të dallueshme. Ju mund të ndikoni në kohëzgjatje duke e specifikuar atë në kërkesën tuaj (p.sh., "krijo një këngë 2-minutëshe") ose duke përdorur vula kohore për të përcaktuar strukturën.

Python

response = client.models.generate_content(
    model="lyria-3-pro-preview",
    contents="An epic cinematic orchestral piece about a journey home. "
             "Starts with a solo piano intro, builds through sweeping "
             "strings, and climaxes with a massive wall of sound.",
)

JavaScript

const response = await ai.models.generateContent({
  model: "lyria-3-pro-preview",
  contents: "An epic cinematic orchestral piece about a journey home. " +
            "Starts with a solo piano intro, builds through sweeping " +
            "strings, and climaxes with a massive wall of sound.",

});

Shko

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-pro-preview",
    genai.Text("An epic cinematic orchestral piece about a journey " +
               "home. Starts with a solo piano intro, builds through " +
               "sweeping strings, and climaxes with a massive wall of sound."),
    nil,
)

Java

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-pro-preview",
    "An epic cinematic orchestral piece about a journey home. "
        + "Starts with a solo piano intro, builds through sweeping "
        + "strings, and climaxes with a massive wall of sound.");

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "An epic cinematic orchestral piece about a journey home. Starts with a solo piano intro, builds through sweeping strings, and climaxes with a massive wall of sound."}
      ]
    }]
  }'

C#

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-pro-preview",
  contents: "An epic cinematic orchestral piece about a journey home. " +
            "Starts with a solo piano intro, builds through sweeping " +
            "strings, and climaxes with a massive wall of sound."
);

Zgjidhni formatin e daljes

Si parazgjedhje, modelet Lyria 3 gjenerojnë audio në formatin MP3 . Për Lyria 3 Pro, mund të kërkoni edhe daljen në formatin WAV duke vendosur response_formatgenerationConfig .

Python

response = client.models.generate_content(
    model="lyria-3-pro-preview",
    contents="An atmospheric ambient track.",
    config=types.GenerateContentConfig(
        response_modalities=["AUDIO", "TEXT"],
        response_format={"audio": {"mime_type": "audio/wav"}},
    ),
)

JavaScript

const response = await ai.models.generateContent({
  model: "lyria-3-pro-preview",
  contents: "An atmospheric ambient track.",
  config: {
    responseModalities: ["AUDIO", "TEXT"],
    responseFormat: { audio: { mimeType: "audio/wav" } },
  },
});

Shko

config := &genai.GenerateContentConfig{
    ResponseModalities: []string{"AUDIO", "TEXT"},
    ResponseMIMEType:   "audio/wav",
}

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-pro-preview",
    genai.Text("An atmospheric ambient track."),
    config,
)

Java

GenerateContentConfig config = GenerateContentConfig.builder()
    .responseModalities("AUDIO", "TEXT")
    .responseFormat(ResponseFormat.builder().audio(AudioFormat.builder().mimeType("audio/wav").build()).build())
    .build();

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-pro-preview",
    "An atmospheric ambient track.",
    config);

C#

var config = new GenerateContentConfig {
  ResponseModalities = { "AUDIO", "TEXT" },
  ResponseMimeType = "audio/wav"
};

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-pro-preview",
  contents: "An atmospheric ambient track.",
  config: config
);

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "An atmospheric ambient track."}
      ]
    }],
    "generationConfig": {
      "responseModalities": ["AUDIO", "TEXT"],
      "responseFormat": { "audio": { "mimeType": "audio/wav" } }
    }
  }'

Analizoni përgjigjen

Përgjigja nga Lyria 3 përmban pjesë të shumëfishta. Pjesët e tekstit përmbajnë tekstin e gjeneruar ose një përshkrim JSON të strukturës së këngës. Pjesët me inline_data përmbajnë bajtet audio.

Python

lyrics = []
audio_data = None

for part in response.parts:
    if part.text is not None:
        lyrics.append(part.text)
    elif part.inline_data is not None:
        audio_data = part.inline_data.data

if lyrics:
    print("Lyrics:\n" + "\n".join(lyrics))

if audio_data:
    with open("output.mp3", "wb") as f:
        f.write(audio_data)

JavaScript

const lyrics = [];
let audioData = null;

for (const part of response.candidates[0].content.parts) {
  if (part.text) {
    lyrics.push(part.text);
  } else if (part.inlineData) {
    audioData = Buffer.from(part.inlineData.data, "base64");
  }
}

if (lyrics.length) {
  console.log("Lyrics:\n" + lyrics.join("\n"));
}

if (audioData) {
  fs.writeFileSync("output.mp3", audioData);
}

Shko

var lyrics []string
var audioData []byte

for _, part := range result.Candidates[0].Content.Parts {
    if part.Text != "" {
        lyrics = append(lyrics, part.Text)
    } else if part.InlineData != nil {
        audioData = part.InlineData.Data
    }
}

if len(lyrics) > 0 {
    fmt.Println("Lyrics:\n" + strings.Join(lyrics, "\n"))
}

if audioData != nil {
    err := os.WriteFile("output.mp3", audioData, 0644)
    if err != nil {
        log.Fatal(err)
    }
}

Java

List<String> lyrics = new ArrayList<>();
byte[] audioData = null;

for (Part part : response.parts()) {
  if (part.text().isPresent()) {
    lyrics.add(part.text().get());
  } else if (part.inlineData().isPresent()) {
    audioData = part.inlineData().get().data().get();
  }
}

if (!lyrics.isEmpty()) {
  System.out.println("Lyrics:\n" + String.join("\n", lyrics));
}

if (audioData != null) {
  Files.write(Paths.get("output.mp3"), audioData);
}

C#

var lyrics = new List<string>();
byte[] audioData = null;

foreach (var part in response.Candidates[0].Content.Parts) {
  if (part.Text != null) {
    lyrics.Add(part.Text);
  } else if (part.InlineData != null) {
    audioData = part.InlineData.Data;
  }
}

if (lyrics.Count > 0) {
  Console.WriteLine("Lyrics:\n" + string.Join("\n", lyrics));
}

if (audioData != null) {
  await File.WriteAllBytesAsync("output.mp3", audioData);
}

PUSHTIM

# The output from the REST API is a JSON object containing base64 encoded data.
# You can extract the text or the audio data using a tool like jq.
# To extract the audio and save it to a file:
curl ... | jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' | base64 -d > output.mp3

Gjeneroni muzikë nga imazhet

Lyria 3 mbështet hyrje multimodale — mund të ofroni deri në 10 imazhe së bashku me kërkesën tuaj me tekst dhe modeli do të kompozojë muzikë të frymëzuar nga përmbajtja vizuale.

Python

from PIL import Image

image = Image.open("desert_sunset.jpg")

response = client.models.generate_content(
    model="lyria-3-pro-preview",
    contents=[
        "An atmospheric ambient track inspired by the mood and "
        "colors in this image.",
        image,
    ],
)

JavaScript

const imageData = fs.readFileSync("desert_sunset.jpg");
const base64Image = imageData.toString("base64");

const response = await ai.models.generateContent({
  model: "lyria-3-pro-preview",
  contents: [
    { text: "An atmospheric ambient track inspired by the mood " +
            "and colors in this image." },
    {
      inlineData: {
        mimeType: "image/jpeg",
        data: base64Image,
      },
    },
  ],

});

Shko

imgData, err := os.ReadFile("desert_sunset.jpg")
if err != nil {
    log.Fatal(err)
}

parts := []*genai.Part{
    genai.NewPartFromText("An atmospheric ambient track inspired " +
        "by the mood and colors in this image."),
    &genai.Part{
        InlineData: &genai.Blob{
            MIMEType: "image/jpeg",
            Data:     imgData,
        },
    },
}

contents := []*genai.Content{
    genai.NewContentFromParts(parts, genai.RoleUser),
}

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-pro-preview",
    contents,
    nil,
)

Java

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-pro-preview",
    Content.fromParts(
        Part.fromText("An atmospheric ambient track inspired by "
            + "the mood and colors in this image."),
        Part.fromBytes(
            Files.readAllBytes(Path.of("desert_sunset.jpg")),
            "image/jpeg")));

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{
    \"contents\": [{
      \"parts\":[
          {\"text\": \"An atmospheric ambient track inspired by the mood and colors in this image.\"},
          {
            \"inline_data\": {
              \"mime_type\":\"image/jpeg\",
              \"data\": \"<BASE64_IMAGE_DATA>\"
            }
          }
      ]
    }]
  }"

C#

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-pro-preview",
  contents: new List<Part> {
    Part.FromText("An atmospheric ambient track inspired by the mood and colors in this image."),
    Part.FromBytes(await File.ReadAllBytesAsync("desert_sunset.jpg"), "image/jpeg")
  }
);

Jep tekste këngësh të personalizuara sipas dëshirës.

Mund të shkruash tekstin tënd të këngës dhe ta përfshish në kërkesë. Përdor etiketa seksioni si [Verse] , [Chorus] dhe [Bridge] për ta ndihmuar modelin të kuptojë strukturën e këngës:

Python

prompt = """
Create a dreamy indie pop song with the following lyrics:

[Verse 1]
Walking through the neon glow,
city lights reflect below,
every shadow tells a story,
every corner, fading glory.

[Chorus]
We are the echoes in the night,
burning brighter than the light,
hold on tight, don't let me go,
we are the echoes down below.

[Verse 2]
Footsteps lost on empty streets,
rhythms sync to heartbeats,
whispers carried by the breeze,
dancing through the autumn leaves.
"""

response = client.models.generate_content(
    model="lyria-3-pro-preview",
    contents=prompt,
)

JavaScript

const prompt = `
Create a dreamy indie pop song with the following lyrics:

[Verse 1]
Walking through the neon glow,
city lights reflect below,
every shadow tells a story,
every corner, fading glory.

[Chorus]
We are the echoes in the night,
burning brighter than the light,
hold on tight, don't let me go,
we are the echoes down below.

[Verse 2]
Footsteps lost on empty streets,
rhythms sync to heartbeats,
whispers carried by the breeze,
dancing through the autumn leaves.
`;

const response = await ai.models.generateContent({
  model: "lyria-3-pro-preview",
  contents: prompt,

});

Shko

prompt := `
Create a dreamy indie pop song with the following lyrics:

[Verse 1]
Walking through the neon glow,
city lights reflect below,
every shadow tells a story,
every corner, fading glory.

[Chorus]
We are the echoes in the night,
burning brighter than the light,
hold on tight, don't let me go,
we are the echoes down below.

[Verse 2]
Footsteps lost on empty streets,
rhythms sync to heartbeats,
whispers carried by the breeze,
dancing through the autumn leaves.
`

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-pro-preview",
    genai.Text(prompt),
    nil,
)

Java

String prompt = """
    Create a dreamy indie pop song with the following lyrics:

    [Verse 1]
    Walking through the neon glow,
    city lights reflect below,
    every shadow tells a story,
    every corner, fading glory.

    [Chorus]
    We are the echoes in the night,
    burning brighter than the light,
    hold on tight, don't let me go,
    we are the echoes down below.

    [Verse 2]
    Footsteps lost on empty streets,
    rhythms sync to heartbeats,
    whispers carried by the breeze,
    dancing through the autumn leaves.
    """;

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-pro-preview",
    prompt);

C#

var prompt = @"
Create a dreamy indie pop song with the following lyrics:

[Verse 1]
Walking through the neon glow,
city lights reflect below,
every shadow tells a story,
every corner, fading glory.

[Chorus]
We are the echoes in the night,
burning brighter than the light,
hold on tight, don't let me go,
we are the echoes down below.

[Verse 2]
Footsteps lost on empty streets,
rhythms sync to heartbeats,
whispers carried by the breeze,
dancing through the autumn leaves.
";

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-pro-preview",
  contents: prompt
);

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "Create a dreamy indie pop song with the following lyrics: ..."}
      ]
    }]
  }'

Kontrolloni kohën dhe strukturën

Mund të specifikoni saktësisht se çfarë ndodh në momente specifike në këngë duke përdorur vulat kohore. Kjo është e dobishme për të kontrolluar se kur futen instrumentet, kur lexohen tekstet dhe si përparon kënga:

Python

prompt = """
[0:00 - 0:10] Intro: Begin with a soft lo-fi beat and muffled
              vinyl crackle.
[0:10 - 0:30] Verse 1: Add a warm Fender Rhodes piano melody
              and gentle vocals singing about a rainy morning.
[0:30 - 0:50] Chorus: Full band with upbeat drums and soaring
              synth leads. The lyrics are hopeful and uplifting.
[0:50 - 1:00] Outro: Fade out with the piano melody alone.
"""

response = client.models.generate_content(
    model="lyria-3-pro-preview",
    contents=prompt,
)

JavaScript

const prompt = `
[0:00 - 0:10] Intro: Begin with a soft lo-fi beat and muffled
              vinyl crackle.
[0:10 - 0:30] Verse 1: Add a warm Fender Rhodes piano melody
              and gentle vocals singing about a rainy morning.
[0:30 - 0:50] Chorus: Full band with upbeat drums and soaring
              synth leads. The lyrics are hopeful and uplifting.
[0:50 - 1:00] Outro: Fade out with the piano melody alone.
`;

const response = await ai.models.generateContent({
  model: "lyria-3-pro-preview",
  contents: prompt,

});

Shko

prompt := `
[0:00 - 0:10] Intro: Begin with a soft lo-fi beat and muffled
              vinyl crackle.
[0:10 - 0:30] Verse 1: Add a warm Fender Rhodes piano melody
              and gentle vocals singing about a rainy morning.
[0:30 - 0:50] Chorus: Full band with upbeat drums and soaring
              synth leads. The lyrics are hopeful and uplifting.
[0:50 - 1:00] Outro: Fade out with the piano melody alone.
`

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-pro-preview",
    genai.Text(prompt),
    nil,
)

Java

String prompt = """
    [0:00 - 0:10] Intro: Begin with a soft lo-fi beat and muffled
                  vinyl crackle.
    [0:10 - 0:30] Verse 1: Add a warm Fender Rhodes piano melody
                  and gentle vocals singing about a rainy morning.
    [0:30 - 0:50] Chorus: Full band with upbeat drums and soaring
                  synth leads. The lyrics are hopeful and uplifting.
    [0:50 - 1:00] Outro: Fade out with the piano melody alone.
    """;

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-pro-preview",
    prompt);

C#

var prompt = @"
[0:00 - 0:10] Intro: Begin with a soft lo-fi beat and muffled
              vinyl crackle.
[0:10 - 0:30] Verse 1: Add a warm Fender Rhodes piano melody
              and gentle vocals singing about a rainy morning.
[0:30 - 0:50] Chorus: Full band with upbeat drums and soaring
              synth leads. The lyrics are hopeful and uplifting.
[0:50 - 1:00] Outro: Fade out with the piano melody alone.
";

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-pro-preview",
  contents: prompt
);

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "[0:00 - 0:10] Intro: ..."}
      ]
    }]
  }'

Gjeneroni këngë instrumentale

Për muzikën në sfond, kolonat zanore të lojërave ose çdo rast përdorimi ku nuk kërkohen vokale, mund ta nxisni modelin të prodhojë këngë vetëm me instrumente:

Python

response = client.models.generate_content(
    model="lyria-3-clip-preview",
    contents="A bright chiptune melody in C Major, retro 8-bit "
             "video game style. Instrumental only, no vocals.",
)

JavaScript

const response = await ai.models.generateContent({
  model: "lyria-3-clip-preview",
  contents: "A bright chiptune melody in C Major, retro 8-bit " +
            "video game style. Instrumental only, no vocals.",

});

Shko

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-clip-preview",
    genai.Text("A bright chiptune melody in C Major, retro 8-bit " +
               "video game style. Instrumental only, no vocals."),
    nil,
)

Java

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-clip-preview",
    "A bright chiptune melody in C Major, retro 8-bit "
        + "video game style. Instrumental only, no vocals.");

C#

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-clip-preview",
  contents: "A bright chiptune melody in C Major, retro 8-bit " +
            "video game style. Instrumental only, no vocals."
);

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-clip-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "A bright chiptune melody in C Major, retro 8-bit video game style. Instrumental only, no vocals."}
      ]
    }]
  }'

Gjeneroni muzikë në gjuhë të ndryshme

Lyria 3 gjeneron tekste në gjuhën e kërkesës suaj. Për të gjeneruar një këngë me tekst në frëngjisht, shkruajeni kërkesën tuaj në frëngjisht. Modeli e përshtat stilin e tij vokal dhe shqiptimin që të përputhet me gjuhën.

Python

response = client.models.generate_content(
    model="lyria-3-pro-preview",
    contents="Crée une chanson pop romantique en français sur un "
             "coucher de soleil à Paris. Utilise du piano et de "
             "la guitare acoustique.",
)

JavaScript

const response = await ai.models.generateContent({
  model: "lyria-3-pro-preview",
  contents: "Crée une chanson pop romantique en français sur un " +
            "coucher de soleil à Paris. Utilise du piano et de " +
            "la guitare acoustique.",

});

Shko

result, err := client.Models.GenerateContent(
    ctx,
    "lyria-3-pro-preview",
    genai.Text("Crée une chanson pop romantique en français sur un " +
               "coucher de soleil à Paris. Utilise du piano et de " +
               "la guitare acoustique."),
    nil,
)

Java

GenerateContentResponse response = client.models.generateContent(
    "lyria-3-pro-preview",
    "Crée une chanson pop romantique en français sur un "
        + "coucher de soleil à Paris. Utilise du piano et de "
        + "la guitare acoustique.");

C#

var response = await client.Models.GenerateContentAsync(
  model: "lyria-3-pro-preview",
  contents: "Crée une chanson pop romantique en français sur un " +
            "coucher de soleil à Paris. Utilise du piano et de " +
            "la guitare acoustique."
);

PUSHTIM

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "Crée une chanson pop romantique en français sur un coucher de soleil à Paris. Utilise du piano et de la guitare acoustique."}
      ]
    }]
  }'

Inteligjenca e modelit

Lyria 3 analizon procesin tuaj të sugjerimit, ku modeli arsyeton përmes strukturës muzikore (intro, varg, refren, urë, etj.) bazuar në sugjerimin tuaj. Kjo ndodh përpara se të gjenerohet audioja dhe siguron koherencë strukturore dhe muzikalitet.

API-ja e Ndërveprimeve

Mund të përdorni modelet Lyria 3 me Interactions API ; një ndërfaqe e unifikuar për bashkëveprimin me modelet dhe agjentët Gemini. Thjeshton menaxhimin e gjendjes dhe detyrat afatgjata për raste komplekse përdorimi multimodal.

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="lyria-3-pro-preview",
    input="A melancholic jazz fusion track in D minor, " +
          "featuring a smooth saxophone melody, walking bass line, " +
          "and complex drum rhythms.",
)

for output in interaction.outputs:
    if output.text:
        print(output.text)
    elif output.inline_data:
         with open("interaction_output.mp3", "wb") as f:
            f.write(output.inline_data.data)
         print("Audio saved to interaction_output.mp3")

JavaScript

import { GoogleGenAI } from '@google/genai';

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
  model: 'lyria-3-pro-preview',
  input: 'A melancholic jazz fusion track in D minor, ' +
         'featuring a smooth saxophone melody, walking bass line, ' +
         'and complex drum rhythms.',
});

for (const output of interaction.outputs) {
  if (output.text) {
    console.log(output.text);
  } else if (output.inlineData) {
    const buffer = Buffer.from(output.inlineData.data, 'base64');
    fs.writeFileSync('interaction_output.mp3', buffer);
    console.log('Audio saved to interaction_output.mp3');
  }
}

PUSHTIM

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
    "model": "lyria-3-pro-preview",
    "input": "A melancholic jazz fusion track in D minor, featuring a smooth saxophone melody, walking bass line, and complex drum rhythms."
}'

Udhëzues nxitës

Kërkesa juaj mund të jetë aq e thjeshtë sa "një këngë popullore për macet e lezetshme që shmangin pellgjet, vokalet femërore dhe zhurmën e shiut", ose diçka e detajuar dhe e strukturuar si:

Një këngë synth-pop në stilin e viteve 1980 me një ritëm nxitës, sintisajzerë vezullues dhe një refren tërheqës, himnik. Kënga duhet të ketë një ndjesi retro-futuriste, që të kujton hitet klasike pop të viteve 80, me një lustër prodhimi moderne. Tempoja duhet të jetë optimiste dhe e këndshme për kërcim, rreth 120 BPM, me një strukturë të qartë varg-refren dhe një kthesë instrumentale të paharrueshme. Teksti flet për ndjesinë e përgatitjes për një festë.

Si sugjerimet e thjeshta ashtu edhe ato komplekse mund t'ju japin rezultate të mira. Ne ju rekomandojmë të eksperimentoni me këto këshilla për të gjetur se çfarë funksionon më mirë për ju.

Zhanri

Udhëhiqeni kërkesën tuaj me zhanrin e muzikës që dëshironi, si hip hop, rock dhe rap. Mund të specifikoni një përzierje zhanresh:

  • Një bashkim i metalit dhe repit
  • Një kombinim i death metal-it dhe operës
  • Një pjesë klasike me elementë elektronikë droni
  • Muzikë moderne elektronike dance (EDM) e përzier me Europop

Ju gjithashtu mund të përfshini një epokë:

  • Hip-hop i fillimit të viteve '90
  • Muzika franceze ye-ye pop e viteve '60
  • Eksperimentimi elektronik i viteve '80
  • Popi kryesor i viteve 2000

Nëse kërkoni zhanre të personalizuara ose variante rajonale, si "Berlin techno" ose "Bay area hyphy", modeli do të përpiqet të kapë atë thelb, por mund të mos e bëjë gjithmonë siç duhet.

Instrumente

Si parazgjedhje, Lyria 3 do të krijojë këngë me instrumentet dhe mjetet që prisni për zhanrin. Nuk keni nevojë të jeni preskriptivë.

Megjithatë, një këngë vallëzimi nuk do të përfshijë një saksofon nëse nuk e kërkoni vetë. Pra, nëse dëshironi një solo saksofoni, duhet ta nxitni:

Një këngë vallëzimi me një ritëm emocionues, sintisajzerë vezullues dhe një refren tërheqës e himnik. Një solo saksofoni duhet të vijë gjatë urës.

Kërkesa juaj mund të përfshijë instrumente specifike, si tingëllojnë ato dhe si bashkëveprojnë me njëra-tjetrën. Mund ta përdorni këtë kombinim për të krijuar humor ose tekstura të caktuara:

  • Një linjë basesh e ndyrë dhe e shtrembëruar që lufton kundër hi-hat-eve të pastra dhe të kthjellëta.
  • Jastëkë sintisajzeri analogë të ngrohtë që fryhen poshtë një kitare akustike të thatë dhe intime
  • Një mur tingulli i krijuar nga shtresa të shumëfishta kitarash të paqarta, me vokale të fshehura dhe të largëta

Struktura e këngës

Mund të përshkruajësh progresionin e një kënge në kërkesën tënde. Përdor shigjeta ose një listë për të përcaktuar rrjedhën:

  • [Intro] -> [Verse 1] -> [Chorus] -> [Verse 2] -> [Chorus] -> [Bridge] -> [Outro]
  • Filloni me një intro të qetë në piano, shndërrojeni në një varg të lartë, bini në heshtje dhe pastaj shpërtheni në refren.

Gjithashtu mund të specifikoni se si ndryshojnë nivelet e energjisë midis këtyre seksioneve:

  • Ndërtoni tension në para-refren, pastaj bini në heshtje para një refreni masiv dhe shpërthyes.
  • Një rritje graduale gjatë gjithë këngës, duke shtuar një instrument në të njëjtën kohë derisa të krijohet një mur kaotik tingulli.
  • Ndalesë e papritur pas urës, e ndjekur nga një kor akapella

Gjithashtu mund të tregoni kohën e saktë kur dëshironi që diçka të ndodhë:

  • Ndërto deri në një rënie në 12s
  • Dikush thotë "çfarë" çdo 2 sekonda
  • Refreni fillon në sekondat 22

Teksti i këngëve

Vokalet dhe tekstet gjenerohen si parazgjedhje. Mund të jepni tekstet tuaja, të mos kërkoni tekst (ose një instrumental) ose ta drejtoni gjenerimin e teksteve në drejtimin që dëshironi.

Teksti i këngës do të jetë në gjuhën në të cilën e shkruani kërkesën. Gjithashtu mund të kërkoni që teksti të jetë në një gjuhë tjetër, si p.sh. "Shkruajeni tekstin në frëngjisht".

Duke përdorur tekstet tuaja të këngëve

Për t'i dhënë modelit tekstin tënd të këngës, përfshiji ato në kërkesë me një parashtesë "Teksti i këngës:":

Lyrics:

[Intro]
Oooh, oooh

[Verse 1]
Let's go
Let's go
Go with the flow

[Chorus]
...

Mund t’u vini përpara disa pjesëve të këngës tituj seksionesh si [Intro] , [Verse 1] , [Pre-chorus] , [Chorus] dhe [Outro] .

Nëse dëshironi që një fjalë ose varg të përsëritet, si një jehonë ose nga këngëtarët mbështetës, mund ta përfshini atë në kllapa: "Le të shkojmë (shkojmë)".

Duke e nxitur modelen të shkruajë tekste

Nëse dëshironi që Lyria 3 të krijojë tekste për ju, është mirë që në kërkesën tuaj të përfshihen detaje se për çfarë do të bëhet fjalë në tekst. Përndryshe, modeli duhet të nxjerrë një temë nga kërkesa juaj muzikore dhe kjo mund të mos jetë ajo që dëshironi.

Teksti i këngës flet për dashurinë e humbur dhe dhimbjen e një zhgënjimi në zemër. Këngëtarja kujton një marrëdhënie të kaluar dhe kujtimet që i vijnë sërish në mendje.

Nëse dëshironi një refren që përsëritet, ndihmon ta kërkoni një të tillë në kërkesën tuaj:

Teksti i këngës flet për dashurinë e humbur dhe dhimbjen e zemërthyerjes. Këngëtarja kujton një marrëdhënie të kaluar dhe kujtimet që i rikthehen përsëri. Një refren i fuqishëm përqendrohet në kapërcimin e dhimbjes dhe në ecjen përpara.

Lyria 3 do ta drejtojë automatikisht strukturën e tekstit drejt llojit të muzikës që po kërkoni, por mund ta ritheksoni këtë edhe në kërkesën tuaj. Për shembull:

Një këngë EDM që përsërit të njëjtën frazë energjike vazhdimisht.

Gjithashtu mund të kërkoni efekte vokale që nuk janë vetëm tekste kënge, për shembull:

  • Një pjesë përsëritëse nga një film thotë "Nuk mund ta besoj këtë!" gjatë gjithë këngës
  • Një këngë tekno me energji të lartë, pak para se të bjerë tingulli ndalet dhe një zë i vogël thotë "Nuk e di çfarë po bëj këtu", pastaj muzika ndalet.
  • Kënga hapet me një bisedë rreth filmave në vitet '90 që ishin më të mirë se sot. Më pas kënga kalon në një këngë pop.

Vokalet

Mund të kërkoni se si dëshironi të përkthehen tekstet. Për rezultatet më të mira, specifikoni një profil të detajuar të këngëtarit që mbulon gjininë, timbrin dhe gamën vokale.

  • Soprano Femër : Timbër i qartë dhe kristalin me një cilësi të shkathët dhe fluturuese. E aftë të godasë nota të larta si fishkëllima me një teksturë të ajrosur dhe të frymëmarrshme.
  • Alto femërore : Diapazoni i ulët i pasur, i ngrohtë dhe i ngjirur. Timbër i tymosur me një prekje të skuqjes vokale, shpirtërore dhe rezonante.
  • Tenori Mashkullor : I ndritshëm, depërtues dhe energjik. Timbër rinor me një teh të lehtë hundor, që depërton nëpër përzierje me fuqi të lartë tingulli.
  • Baritoni Mashkullor : I thellë, me shije çokollate dhe i butë si kadife. Zë rezonant në gjoks me një interpretim qetësues dhe këndues.
  • Rocker i Weathered (Mashkull) : I ashpër dhe me teksturë me një timbër të çrregullt, që të kujton grunge-in e viteve '90. Diapazoni i sipërm i tendosur për intensitet emocional.

Parametra të tjerë të shpejtë

Gjithashtu mund të përfshini këto parametra për të përsosur më tej kërkesën tuaj:

  • Tonaliteti/Shkalla : Specifikoni një tonalitet muzikor (p.sh., "në Sol maxhor", "Re minor").
  • Gjendja shpirtërore dhe atmosfera : Përdorni mbiemra përshkrues (p.sh., "nostalgjik", "agresiv", "eterial", "ëndërrimtar").
  • Kohëzgjatja : Modeli i klipit prodhon gjithmonë klipe 30-sekondëshe. Për modelin Pro, specifikoni gjatësinë e dëshiruar në njoftimin tuaj (p.sh., "krijo një këngë 2-minutëshe") ose përdorni vula kohore për të kontrolluar kohëzgjatjen.

Shembuj të kërkesave

Ja disa shembuj të sugjerimeve efektive:

  • "A 30-second lofi hip hop beat with dusty vinyl crackle, mellow Rhodes piano chords, a slow boom-bap drum pattern at 85 BPM, and a jazzy upright bass line. Instrumental only."
  • "An upbeat, feel-good pop song in G major at 120 BPM with bright acoustic guitar strumming, claps, and warm vocal harmonies about a summer road trip."
  • "A dark, atmospheric trap beat at 140 BPM with heavy 808 bass, eerie synth pads, sharp hi-hats, and a haunting vocal sample. In D minor."

Praktikat më të mira

  • Përsëriteni së pari me Clip. Përdorni modelin më të shpejtë lyria-3-clip-preview për të eksperimentuar me kërkesat përpara se të angazhoheni në një gjeneratë me gjatësi të plotë me lyria-3-pro-preview .
  • Ji specifik. Kërkesat e paqarta japin rezultate të përgjithshme. Përmend instrumentet, BPM-në, tonalitetin, gjendjen shpirtërore dhe strukturën për rezultatin më të mirë.
  • Përdorni etiketat e seksionit. Etiketat [Verse] , [Chorus] , [Bridge] i japin modelit një strukturë të qartë për t'u ndjekur.
  • Ndani tekstet nga udhëzimet. Kur ofroni tekste të personalizuara, ndajini ato qartë nga udhëzimet tuaja për drejtimin muzikor.

Kufizime

  • Siguria : Të gjitha kërkesat kontrollohen nga filtrat e sigurisë. Kërkesat që aktivizojnë filtrat do të bllokohen. Kjo përfshin kërkesat që kërkojnë zëra të artistëve specifikë ose gjenerimin e teksteve të këngëve me të drejta autori.
  • Filigrani : I gjithë audio i gjeneruar përfshin një filigran audio SynthID për identifikim. Ky filigran është i padukshëm për veshin e njeriut dhe nuk ndikon në përvojën e dëgjimit.
  • Redaktimi me shumë kthesa : Gjenerimi i muzikës është një proces me një kthesë të vetme. Redaktimi iterativ ose rafinimi i një klipi të gjeneruar përmes kërkesave të shumta nuk mbështetet në versionin aktual të Lyria 3.
  • Kohëzgjatja : Modeli i klipit gjeneron gjithmonë klipe 30-sekondëshe. Modeli Pro gjeneron këngë që zgjasin disa minuta; kohëzgjatja e saktë mund të ndikohet nga kërkesa juaj.
  • Determinizmi : Rezultatet mund të ndryshojnë midis thirrjeve, madje edhe me të njëjtën kërkesë.

Çfarë vjen më pas