Lyria 3, Gemini API üzerinden kullanılabilen Google'ın müzik üretme modeli ailesidir. Lyria 3 ile metin istemlerinden veya resimlerden yüksek kaliteli 44,1 kHz stereo sesler üretebilirsiniz. Bu modeller, vokaller, zamanlanmış şarkı sözleri ve tam enstrümantal düzenlemeler dahil olmak üzere yapısal tutarlılık sağlar.
Lyria 3 ailesinde iki model bulunur:
| Model | Model Kimliği | En uygun olduğu durumlar | Süre | Çıkış |
|---|---|---|---|---|
| Lyria 3 Clip | lyria-3-clip-preview |
Kısa klipler, döngüler, önizlemeler | 30 saniye | MP3 |
| Lyria 3 Pro | lyria-3-pro-preview |
Dizeler, nakaratlar ve köprülerle tam uzunlukta şarkılar | Birkaç dakika (istem aracılığıyla kontrol edilebilir) | MP3 |
Her iki model de standart generateContent yöntemi ve yeni Interactions API kullanılarak kullanılabilir.Bu API, çok formatlı girişleri (metin ve resimler) destekler ve 44,1 kHz yüksek kaliteli stereo ses üretir.
Müzik klibi oluşturma
Lyria 3 Clip modeli her zaman 30 saniyelik bir klip oluşturur. Klip oluşturmak için generateContent yöntemini metin istemiyle çağırın. Yanıt her zaman sesin yanı sıra oluşturulan şarkı sözlerini ve şarkı yapısını içerir.
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();
Go
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");
}
}
}
}
}
}
REST
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");
}
}
}
}
Tam uzunlukta şarkı oluşturma
Birkaç dakika süren tam uzunlukta şarkılar oluşturmak için lyria-3-pro-preview modelini kullanın. Pro modeli, müzikal yapıyı anlar ve farklı kıtalar, nakaratlar ve köprüler içeren kompozisyonlar oluşturabilir. İsteminizde süreyi belirterek (ör. "2 dakikalık bir şarkı oluştur") veya yapıyı tanımlamak için zaman damgalarını kullanarak süreyi etkileyebilirsiniz.
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.",
});
Go
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.");
REST
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."
);
Çıkış biçimini seçin
Varsayılan olarak, Lyria 3 modelleri MP3 biçiminde ses üretir. Lyria 3 Pro'da, generationConfig bölümünde response_mime_type ayarını yaparak çıkışın WAV biçiminde olmasını da isteyebilirsiniz.
Python
response = client.models.generate_content(
model="lyria-3-pro-preview",
contents="An atmospheric ambient track.",
config=types.GenerateContentConfig(
response_modalities=["AUDIO", "TEXT"],
response_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"],
responseMimeType: "audio/wav",
},
});
Go
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")
.responseMimeType("audio/wav")
.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
);
REST
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"],
"responseMimeType": "audio/wav"
}
}'
Yanıtı ayrıştırma
Lyria 3'ün yanıtı birden fazla bölümden oluşur. Metin bölümleri, oluşturulan şarkı sözlerini veya şarkı yapısının JSON açıklamasını içerir. inline_data simgesini içeren bölümler ses baytlarını içerir.
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);
}
Go
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);
}
REST
# 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
Resimlerden müzik üretme
Lyria 3, çok formatlı girişleri destekler. Metin isteminizle birlikte 10 adede kadar resim sağlayabilirsiniz. Model, görsel içerikten ilham alarak müzik oluşturur.
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,
},
},
],
});
Go
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")));
REST
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")
}
);

Özel şarkı sözleri sağlama
Kendi şarkı sözlerinizi yazıp isteme ekleyebilirsiniz. Modelin şarkı yapısını anlamasına yardımcı olmak için [Verse], [Chorus] ve [Bridge] gibi bölüm etiketlerini kullanın:
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,
});
Go
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
);
REST
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: ..."}
]
}]
}'
Zamanlamayı ve yapıyı kontrol etme
Zaman damgalarını kullanarak şarkının belirli anlarında tam olarak ne olacağını belirtebilirsiniz. Bu özellik, enstrümanların ne zaman devreye gireceğini, şarkı sözlerinin ne zaman gösterileceğini ve şarkının nasıl ilerleyeceğini kontrol etmek için kullanışlıdır:
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,
});
Go
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
);
REST
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: ..."}
]
}]
}'
Enstrümantal parçalar oluşturma
Arka plan müziği, oyun müzikleri veya vokallerin gerekli olmadığı tüm kullanım alanlarında, modelden yalnızca enstrümantal parçalar üretmesini isteyebilirsiniz:
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.",
});
Go
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."
);
REST
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."}
]
}]
}'
Farklı dillerde müzik üretme
Lyria 3, isteminizin dilinde şarkı sözleri oluşturur. Fransızca sözler içeren bir şarkı oluşturmak için isteminizi Fransızca yazın. Model, ses stilini ve telaffuzunu dile uyacak şekilde ayarlar.
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.",
});
Go
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."
);
REST
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."}
]
}]
}'
Model zekası
Lyria 3, isteminizi analiz eder. Bu analizde model, isteminize göre müzik yapısını (giriş, kıta, nakarat, köprü vb.) gerekçelendirir. Bu işlem, ses oluşturulmadan önce gerçekleşir ve yapısal tutarlılık ile müzikaliteyi sağlar.
Interactions API
Gemini modelleri ve aracılarıyla etkileşim kurmak için birleşik bir arayüz olan Etkileşimler API'si ile Lyria 3 modellerini kullanabilirsiniz. Karmaşık çok formatlı kullanım alanlarında durum yönetimini ve uzun süren görevleri basitleştirir.
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');
}
}
REST
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."
}'
İstem yazma kılavuzu
İsteminizi "sevimli kedilerin su birikintilerinden kaçındığı, kadın vokal ve yağmur sesi içeren bir halk şarkısı" gibi basit bir şekilde veya aşağıdaki gibi ayrıntılı ve yapılandırılmış bir şekilde yazabilirsiniz:
Sürükleyici bir ritme, ışıltılı synthesizer'lara ve akılda kalıcı, coşkulu bir koro bölümüne sahip 1980'ler tarzı bir synth-pop parçası. Şarkı, 80'lerin klasik pop hitlerini hatırlatan, retro-fütüristik bir havaya sahip olmalı ve modern bir prodüksiyonla cilalanmalıdır. Tempo, 120 BPM civarında, neşeli ve dans edilebilir olmalı. Net bir kıta-nakarat yapısı ve akılda kalıcı bir enstrümantal bölüm içermeli. Şarkı sözleri, partiye hazırlanma hissiyle ilgili.
Hem basit hem de karmaşık istemler iyi sonuçlar verebilir. Size en uygun yöntemi bulmak için bu ipuçlarını denemenizi öneririz.
Tür
İsteminize istediğiniz müzik türüyle (ör. hip hop, rock ve rap) başlayın. Türlerin bir karışımını belirtebilirsiniz:
- Metal ve rap'in birleşimi
- Death metal ve operanın birleşimi
- Elektronik drone öğeleri içeren klasik bir parça
- Europop ile karıştırılmış modern elektronik dans müziği (EDM)
Dönem de ekleyebilirsiniz:
- 90'ların başlarındaki hip-hop
- 60'lar Fransız ye-ye pop müziği
- 80'lerde elektronik müzikte deneysellik
- 2000'lerin popüler pop müzikleri
"Berlin tekno" veya "Bay Area hyphy" gibi özel türler ya da bölgesel varyantlar için istem girerseniz model bu özü yakalamaya çalışır ancak her zaman doğru sonuç vermeyebilir.
Enstrümanlar
Lyria 3, varsayılan olarak tür için beklediğiniz enstrümanlar ve araçlarla şarkılar oluşturur. Kuralcı olmanız gerekmez.
Ancak, istemediğiniz sürece dans müziklerinde saksafon yer almaz. Bu nedenle, saksafon solosu istiyorsanız istem girmeniz gerekir:
Güçlü bir ritme, ışıltılı synthesizer'lara ve akılda kalıcı, marş gibi bir koroya sahip dans parçası. Köprü bölümünde saksafon solosu olmalı.
İsteminize belirli enstrümanları, seslerini ve birbirleriyle nasıl etkileşime girdiklerini ekleyebilirsiniz. Belirli ruh halleri veya dokular oluşturmak için bu kombinasyonu kullanabilirsiniz:
- Temiz ve net hi-hat'lere karşı savaşan kirli ve bozuk bir bas partisi
- Sıcak, analog synthesizer pad'leri, kuru ve samimi bir akustik gitarın altında yükseliyor.
- Bulanık gitarların birden fazla katmanıyla oluşturulmuş, gömülü ve uzak vokallerin yer aldığı bir ses duvarı
Şarkı yapısı
İsteminizde bir şarkının ilerleme şeklini belirtebilirsiniz. Akışı tanımlamak için okları veya listeyi kullanın:
[Intro]->[Verse 1]->[Chorus]->[Verse 2]->[Chorus]->[Bridge]->[Outro]- Sakin bir piyano girişiyle başlayın, yüksek sesli bir verse ile devam edin, sessizliğe geçin ve ardından nakaratla patlayın.
Ayrıca, enerji seviyelerinin bu bölümler arasında nasıl değiştiğini de belirtebilirsiniz:
- Nakarat öncesinde gerilimi artırın, ardından büyük ve patlayıcı bir nakarattan önce sessizliğe geçin.
- Şarkı boyunca kademeli olarak artan, kaotik bir ses duvarına ulaşana kadar her seferinde bir enstrüman eklenen crescendo
- Köprüden sonra aniden duraklama ve ardından a cappella koro
Ayrıca, bir şeyin tam olarak ne zaman gerçekleşmesini istediğinizi de belirtebilirsiniz:
- 12 saniyede drop'a geçiş
- Her 2 saniyede bir "ne" deniyor
- Nakarat 22. saniyede başlıyor.
Şarkı Sözü
Vokaller ve şarkı sözleri varsayılan olarak oluşturulur. Kendi şarkı sözlerinizi ekleyebilir, şarkı sözü içermeyen (veya enstrümantal) bir şarkı isteyebilir ya da şarkı sözü oluşturma sürecini istediğiniz yöne doğru yönlendirebilirsiniz.
Şarkı sözleriniz, isteminizi yazdığınız dilde olur. Ayrıca, "Şarkı sözlerini Fransızca yaz" gibi bir istemle şarkı sözlerinin başka bir dilde olmasını da isteyebilirsiniz.
Kendi şarkı sözlerinizi kullanma
Modele kendi şarkı sözlerinizi vermek için isteme "Şarkı sözleri:" önekini ekleyin:
Lyrics:
[Intro]
Oooh, oooh
[Verse 1]
Let's go
Let's go
Go with the flow
[Chorus]
...
Şarkının bölümlerine [Intro], [Verse 1], [Pre-chorus], [Chorus] ve [Outro] gibi bölüm başlıkları ekleyebilirsiniz.
Bir kelimenin veya satırın yankı gibi ya da geri vokal tarafından tekrarlanmasını istiyorsanız bunu parantez içinde belirtebilirsiniz: "Let's go (go)" [Haydi gidelim (gidelim)].
Modelden şarkı sözü yazmasını isteme
Lyria 3'ün sizin için şarkı sözü yazmasını istiyorsanız isteminize şarkı sözlerinin ne hakkında olacağına dair ayrıntılar eklemeniz önerilir. Aksi takdirde model, müzik isteminizden bir konu çıkarır ve bu konu istediğiniz gibi olmayabilir.
Şarkı sözleri, kaybedilen aşk ve kalp kırıklığının acısı hakkındadır. Şarkıcı, geçmişteki bir ilişkisini ve o ilişkiyle ilgili anılarını hatırlıyor.
Tekrarlayan bir koro istiyorsanız isteminizde bunu belirtmeniz gerekir:
Şarkı sözleri, kaybedilen aşk ve kalp kırıklığının acısı hakkındadır. Şarkıcı, geçmişteki bir ilişkisini ve o ilişkiyle ilgili anılarını hatırlıyor. Güçlü bir koro, acının üstesinden gelmeye ve hayata devam etmeye odaklanıyor.
Lyria 3, şarkı sözlerinin yapısını istediğiniz müzik türüne göre otomatik olarak yönlendirir ancak isteminizde bunu yeniden vurgulayabilirsiniz. Örneğin:
Aynı enerjik ifadeyi tekrar tekrar eden bir EDM parçası.
Ayrıca, kesinlikle şarkı sözü olmayan vokal efektleri de isteyebilirsiniz. Örneğin:
- Şarkı boyunca "Buna inanamıyorum!" diyen bir filmden alınan tekrar eden örnek
- Yüksek enerjili bir tekno parçada, drop'tan hemen önce ses tamamen kesiliyor ve küçük bir ses "Burada ne yaptığımı bilmiyorum" diyor, ardından müzik drop'a giriyor.
- Parça, 90'lardaki filmlerin günümüzdeki filmlerden daha iyi olduğuyla ilgili bir sohbetle başlıyor. Ardından parça, pop şarkıya geçiş yapıyor.
Vokaller
Şarkı sözlerinin nasıl sunulmasını istediğinizi belirtebilirsiniz. En iyi sonuçları elde etmek için cinsiyet, tını ve vokal aralığını kapsayan ayrıntılı bir şarkıcı profili belirtin.
- Kadın Soprano: Çevik ve yükselen bir kaliteye sahip, net ve kristal tını. Hafif ve nefesli bir dokuyla ıslık gibi tiz notalara ulaşabilir.
- Kadın Alto: Zengin, sıcak ve tok bir alt aralık. Biraz vokal kırıltısı içeren, ruhani ve etkileyici bir tını.
- Erkek Tenor: Parlak, keskin ve enerjik Genç bir tınıya sahip, hafif nazal bir kenarla, yüksek belting gücüyle miksin içinden geçiyor.
- Erkek Bariton: Derin, çikolata tonlarında ve kadife gibi yumuşak. Sakinleştirici, mırıldanarak söylenen bir tarzda, rezonanslı göğüs sesi.
- Eskimiş Rockçı (Erkek): 90'ların grunge müziğini anımsatan, hırıltılı ve dokulu, çakıllı bir tını. Duygusal yoğunluk için zorlanmış üst aralık.
Diğer istem parametreleri
İsteminizi daha da iyileştirmek için aşağıdaki parametreleri de ekleyebilirsiniz:
- Ton/Ölçek: Müzik tonunu belirtin (ör. "Sol majör", "Re minör").
- Ruh hali ve atmosfer: Açıklayıcı sıfatlar kullanın (ör. "nostaljik", "agresif", "göklerde", "hayalperest").
- Süre: Klip modeli her zaman 30 saniyelik klipler üretir. Pro modelinde, isteminizde istediğiniz uzunluğu belirtin (ör. "2 dakikalık bir şarkı oluştur") veya süreyi kontrol etmek için zaman damgalarını kullanın.
Örnek istemler
Etkili istemlere ilişkin bazı örnekler:
"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."
En iyi uygulamalar
- Önce Clip ile yineleyin.
lyria-3-clip-previewile tam uzunlukta bir üretim yapmadan önce istemlerle deneme yapmak için daha hızlı olanlyria-3-clip-previewmodelini kullanın.lyria-3-pro-preview - Net olun. Net olmayan istemler, genel sonuçlar üretir. En iyi sonucu elde etmek için enstrümanları, tempoyu, anahtarı, ruh halini ve yapıyı belirtin.
- Bölüm etiketlerini kullanın.
[Verse],[Chorus],[Bridge]etiketleri, modele izleyeceği net bir yapı sunar. - Şarkı sözlerini talimatlardan ayırın. Özel şarkı sözleri sağlarken bunları müzikal yönlendirme talimatlarınızdan net bir şekilde ayırın.
Sınırlamalar
- Güvenlik: Tüm istemler güvenlik filtreleriyle kontrol edilir. Filtreleri tetikleyen istemler engellenir. Belirli sanatçıların seslerini veya telif hakkıyla korunan şarkı sözlerinin oluşturulmasını isteyen istemler de bu kapsamdadır.
- Filigran: Üretilen tüm seslerde tanımlama için SynthID ses filigranı bulunur. Bu filigran insan kulağıyla fark edilemez ve dinleme deneyimini etkilemez.
- Çok turlu düzenleme: Müzik üretimi tek turlu bir süreçtir. Oluşturulan bir klibi birden fazla istemle yinelemeli olarak düzenleme veya iyileştirme, Lyria 3'ün mevcut sürümünde desteklenmemektedir.
- Uzunluk: Klip modeli her zaman 30 saniyelik klipler oluşturur. Pro modeli, birkaç dakika süren şarkılar oluşturur. Tam süre, isteminizden etkilenebilir.
- Belirlenimcilik: Sonuçlar, aynı istemle bile olsa aramalar arasında farklılık gösterebilir.
Sırada ne var?
- Lyria 3 modellerinin fiyatlandırmasını kontrol edin.
- Lyria RealTime ile anında akış müzik üretme özelliğini deneyin.
- TTS modelleri ile birden fazla konuşmacının yer aldığı görüşmeler oluşturma
- Resim veya video oluşturmayı öğrenin.
- Gemini'ın ses dosyalarını nasıl anlayabileceğini öğrenin.
- Live API'yi kullanarak Gemini ile gerçek zamanlı sohbet edin.