Gjenerimi i muzikës Lyria RealTime përdor një lidhje transmetimi të vazhdueshme, dypalëshe dhe me vonesë të ulët duke përdorur WebSockets . Në këtë seksion, do të gjeni detaje shtesë në lidhje me API-n e WebSockets.
Sesione
Një lidhje WebSocket krijon një seancë për të mbajtur një komunikim në kohë reale me modelin. Pasi një klient fillon një lidhje të re, seanca mund të shkëmbejë mesazhe me serverin për të:
- Dërgoni kërkesa dhe kontrolle për të drejtuar gjenerimin e muzikës.
- Dërgo kontrollet e luajtjes së muzikës.
- Merr pjesë audio.
Lidhja WebSocket
Për të filluar një seancë, lidheni me këtë pikë fundore të websocket:
wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateMusic
Konfigurimi i sesionit
Mesazhi fillestar pas lidhjes përcakton modelin që do të përdoret gjatë seancës.
Shihni shembullin e mëposhtëm të konfigurimit. Vini re se shkronjat e mëdha dhe të mëdha të emrit në SDK mund të ndryshojnë. Mund të shikoni opsionet e konfigurimit të SDK-së së Python këtu .
{
"model": string
}
Dërgo mesazhe
Për të shkëmbyer mesazhe nëpërmjet lidhjes WebSocket, klienti duhet të dërgojë një objekt JSON nëpërmjet një lidhjeje të hapur WebSocket. Objekti JSON duhet të ketë saktësisht një nga fushat nga grupi i mëposhtëm i objekteve:
{
"setup": BidiGenerateMusicSetup,
"client_content": BidiGenerateMusicClientContent,
"music_generation_config": BidiGenerateMusicGenerationConfig,
"playback_control": BidiGenerateMusicPlaybackControl
}
Mesazhet e mbështetura të klientit
Shihni mesazhet e mbështetura të klientit në tabelën e mëposhtme:
| Mesazh | Përshkrimi |
|---|---|
BidiGenerateMusicSetup | Konfigurimi i sesionit do të dërgohet vetëm në mesazhin e parë |
BidiGenerateMusicClientContent | Kërkesat e ponderuara si të dhëna hyrëse të modelit |
BidiGenerateMusicGenerationConfig | Konfigurimi për gjenerimin e muzikës |
BidiGenerateMusicPlaybackControl | Sinjalet e kontrollit të riprodhimit për gjenerimin e modelit |
Merr mesazhe
Për të marrë mesazhe nga serveri, dëgjoni ngjarjen 'mesazh' të WebSocket dhe më pas analizoni rezultatin sipas përkufizimit të mesazheve të mbështetura të serverit.
Shihni sa vijon:
async def receive_audio(session):
"""Example background task to process incoming audio."""
while True:
async for message in session.receive():
audio_data = message.server_content.audio_chunks[0].data
# Process audio...
await asyncio.sleep(10**-12)
async with (
client.aio.live.music.connect(model='models/lyria-realtime-exp') as session,
asyncio.TaskGroup() as tg,
):
# Set up task to receive server messages.
tg.create_task(receive_audio(session))
# Send initial prompts and config
await session.set_weighted_prompts(
prompts=[
types.WeightedPrompt(text='minimal techno', weight=1.0),
]
)
await session.set_music_generation_config(
config=types.LiveMusicGenerationConfig(bpm=90, temperature=1.0)
)
# Start streaming music
await session.play()
Mesazhet e serverit përfshijnë saktësisht një nga fushat e tjera nga mesazhi BidiGenerateMusicServerMessage . (Bashkimi messageType nuk shprehet në JSON, kështu që fusha do të shfaqet në nivelin më të lartë të mesazhit.)
Mesazhe dhe ngjarje
AudioChunk
Përfaqësimi i një copëze audio.
| Fushat | |
|---|---|
| |
data | Bajtet e papërpunuara të pjesës audio. |
mimeType | Lloji MIME i përmbajtjes së copës audio, si p.sh. "audio/wav". |
sourceMetadata | Vetëm dalje. Kërkesat dhe konfigurimi përdoren për gjenerimin e kësaj pjese audio. |
Meta të dhënat burimore
Meta të dhëna rreth burimit të hyrjes të përdorur për gjenerimin e kësaj pjese audio.
| Fushat | |
|---|---|
clientContent | Kërkesa të ponderuara për gjenerimin e kësaj pjese audio. |
musicGenerationConfig | Konfigurimi i gjenerimit të muzikës për gjenerimin e kësaj pjese audio. |
BidiGenerateMusicClientContent
Të dhënat e përdoruesit për të filluar ose drejtuar muzikën.
| Fushat | |
|---|---|
weightedPrompts[] | E detyrueshme. Kërkesa të ponderuara si të dhëna hyrëse të modelit. |
BidiGenerateMusicClientMessage
Mesazhe të dërguara nga klienti në thirrjen BidiGenerateMusic.
| Fushat | |
|---|---|
| |
setup | Opsionale. Konfigurimi i sesionit dërgohet vetëm në mesazhin e parë të klientit. |
clientContent | Opsionale. Kërkesa të ponderuara dhe konfigurime të gjenerimit të muzikës si të dhëna hyrëse të gjenerimit të muzikës. |
musicGenerationConfig | Opsionale. Konfigurim për gjenerimin e muzikës. |
playbackControl | Opsionale. Sinjal kontrolli i riprodhimit për gjenerimin e muzikës. |
BidiGenerateMusicFilteredPrompt
Kërkesa e filtruar me arsye.
| Fushat | |
|---|---|
filteredReason | Vetëm rezultati. Arsyeja pse u filtrua kërkesa. |
prompt e Unionit. Kërkesa që u filtrua. prompt mund të jetë vetëm një nga të mëposhtmet: | |
text | Opsionale. Njoftim me tekst. |
BidiGenerateMusicGenerationConfig
Konfigurimi për gjenerimin e muzikës.
| Fushat | |
|---|---|
temperature | Opsionale. Kontrollon ndryshimin në gjenerimin e audios. Vlerat më të larta prodhojnë variancë më të lartë. Diapazoni është [0.0, 3.0]. Vlera e parazgjedhur është 1.1. |
topK | Opsionale. Kontrollon mënyrën se si modeli zgjedh tokenët për dalje. Marrin mostra nga tokenët topK me probabilitetet më të larta. Diapazoni është [1, 1000]. Vlera e parazgjedhur është 40. |
seed | Opsionale. Gjenerimi i audios nga Seeds. Nëse nuk është caktuar, kërkesa përdor një seed të gjeneruar rastësisht. |
guidance | Opsionale. Kontrollon se sa afër i ndjek modeli udhëzimet. Udhëzimet më të larta i ndjekin më afër, por do t'i bëjnë tranzicionet më të menjëhershme. Diapazoni është [0.0, 6.0]. Parazgjedhja është 4.0. |
bpm | Opsionale. Rrahje në minutë. Diapazoni është [60, 200]. |
density | Opsionale. Dendësia e tingujve. Diapazoni është [0.0, 1.0]. |
brightness | Opsionale. Një vlerë më e lartë prodhon audio më të ndritshëm. Diapazoni është [0.0, 1.0]. |
scale | Opsionale. Shkalla e muzikës së gjeneruar. |
muteBass | Opsionale. Dalja audio nuk duhet të përmbajë bas. |
muteDrums | Opsionale. Dalja audio nuk duhet të përmbajë bateri. |
onlyBassAndDrums | Opsionale. Dalja audio duhet të përmbajë vetëm bas dhe bateri. |
musicGenerationMode | Opsionale. Modaliteti i gjenerimit të muzikës. Parazgjedhja është CILËSIA. |
Modaliteti i Gjenerimit të Muzikës
| Numërime | |
|---|---|
MUSIC_GENERATION_MODE_UNSPECIFIED | Kjo vlerë nuk përdoret. |
QUALITY | Ky modalitet i drejton kërkesat e tekstit në rajone të hapësirës latente me muzikë me cilësi më të lartë. |
DIVERSITY | Kjo mënyrë i drejton kërkesat e tekstit në rajone të hapësirës latente me një larmi më të madhe muzikore. |
VOCALIZATION | Kjo mënyrë i drejton kërkesat e tekstit drejt rajoneve të hapësirës latente që kanë më shumë gjasa të gjenerojnë muzikë vokale. |
Shkallë
Shkalla e muzikës së gjeneruar.
| Numërime | |
|---|---|
SCALE_UNSPECIFIED | Vlerë e parazgjedhur. Kjo vlerë nuk përdoret. |
C_MAJOR_A_MINOR | Do maxhor ose La minor |
D_FLAT_MAJOR_B_FLAT_MINOR | Re bemol maxhor ose Si bemol minor |
D_MAJOR_B_MINOR | Re maxhor ose Si minor |
E_FLAT_MAJOR_C_MINOR | Mi bemol maxhor ose Do minor |
E_MAJOR_D_FLAT_MINOR | Mi maxhor ose Re bemol minor |
F_MAJOR_D_MINOR | Fa maxhor ose Re minor |
G_FLAT_MAJOR_E_FLAT_MINOR | Sol bemol maxhor ose Mi bemol minor |
G_MAJOR_E_MINOR | Sol maxhor ose Mi minor |
A_FLAT_MAJOR_F_MINOR | Një bemol maxhor ose Fa minor |
A_MAJOR_G_FLAT_MINOR | Një maxhor ose Sol bemol minor |
B_FLAT_MAJOR_G_MINOR | Si bemol maxhor ose Sol minor |
B_MAJOR_A_FLAT_MINOR | Si maxhor ose La bemol minor |
BidiGenerateMusicPlaybackControl
Kontroll i riprodhimit për gjenerimin e muzikës.
| Numërime | |
|---|---|
PLAYBACK_CONTROL_UNSPECIFIED | Kjo vlerë nuk përdoret. |
PLAY | Filloni të krijoni muzikë. |
PAUSE | Mbajeni gjenerimin e muzikës. Përdorni PLAY për të vazhduar nga pozicioni aktual. |
STOP | Ndalo gjenerimin e muzikës dhe rivendos kontekstin (kërkesat e ruajtura). Përdor PLAY për të rinisur gjenerimin e muzikës. |
RESET_CONTEXT | Rivendos kontekstin (kërkesat e ruajtura) pa ndaluar gjenerimin e muzikës. |
BidiGenerateMusicServerContent
Përditësim shtesë i serverit i gjeneruar nga modeli në përgjigje të mesazheve të klientit.
Përmbajtja gjenerohet sa më shpejt të jetë e mundur dhe jo në kohë reale. Klientët mund të zgjedhin ta ruajnë në memorje dhe ta luajnë atë në kohë reale.
| Fushat | |
|---|---|
audioChunks[] | Vetëm dalje. Pjesë audio që modeli ka gjeneruar. |
BidiGenerateMusicServerMessage
Mesazh përgjigjeje për thirrjen BidiGenerateMusic.
| Fushat | |
|---|---|
Fusha e bashkimit messageType . Lloji i mesazhit. messageType mund të jetë vetëm një nga të mëposhtmet: | |
setupComplete | Vetëm dalje. Dërgohet në përgjigje të një mesazhi |
serverContent | Vetëm rezultate. Përmbajtja gjenerohet nga modeli në përgjigje të mesazheve të klientit. |
filteredPrompt | Vetëm dalje. Njoftim i filtruar me arsye. |
warning | Vetëm dalje. Mesazhi paralajmërues nga serveri. Paralajmërimet nuk do ta ndërpresin transmetimin. |
Konfigurimi i Muzikës BidiGenerate
Mesazhi që do të dërgohet në BidiGenerateMusicClientMessage të parë (dhe vetëm në të parin).
Klientët duhet të presin për një mesazh BidiGenerateMusicSetupComplete përpara se të dërgojnë ndonjë mesazh tjetër.
| Fushat | |
|---|---|
model | E detyrueshme. Emri i burimit të modelit. Ky shërben si një ID që modeli do të përdorë. Formati: |
BidiGenerateMusicSetupComplete
Ky lloj nuk ka fusha.
Dërguar në përgjigje të një mesazhi BidiGenerateMusicSetup nga klienti.
Kërkesë e Ponderuar
Njoftim i ponderuar si të dhëna hyrëse të modelit.
| Fushat | |
|---|---|
weight | E detyrueshme. Pesha e kërkesës. Pesha përdoret për të kontrolluar rëndësinë relative të pyetjes. Peshat më të larta janë më të rëndësishme se peshat më të ulëta. Peshat e të gjitha weighted_prompts në këtë BidiGenerateMusicClientContent nuk duhet të jenë të gjitha 0. Peshat e të gjitha weighted_prompts në këtë mesazh BidiGenerateMusicClientContent do të normalizohen. |
| |
text | Njoftim me tekst. |
Më shumë informacion mbi llojet
Për më shumë informacion mbi llojet e përdorura nga API-ja, shihni Python SDK .