Live Music API - WebSockets API reference

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

content e fushës së Unionit.

content mund të jetë vetëm një nga sa vijon:

data

bytes

Bajtet e papërpunuara të pjesës audio.

mimeType

string

Lloji MIME i përmbajtjes së copës audio, si p.sh. "audio/wav".

sourceMetadata

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

BidiGenerateMusicClientContent

Kërkesa të ponderuara për gjenerimin e kësaj pjese audio.

musicGenerationConfig

BidiGenerateMusicGenerationConfig

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[]

WeightedPrompt

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

messageType e bashkimit të mesazhit Lloji.

messageType mund të jetë vetëm një nga të mëposhtmet:

setup

BidiGenerateMusicSetup

Opsionale. Konfigurimi i sesionit dërgohet vetëm në mesazhin e parë të klientit.

clientContent

BidiGenerateMusicClientContent

Opsionale. Kërkesa të ponderuara dhe konfigurime të gjenerimit të muzikës si të dhëna hyrëse të gjenerimit të muzikës.

musicGenerationConfig

BidiGenerateMusicGenerationConfig

Opsionale. Konfigurim për gjenerimin e muzikës.

playbackControl

BidiGenerateMusicPlaybackControl

Opsionale. Sinjal kontrolli i riprodhimit për gjenerimin e muzikës.

BidiGenerateMusicFilteredPrompt

Kërkesa e filtruar me arsye.

Fushat
filteredReason

string

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

string

Opsionale. Njoftim me tekst.

BidiGenerateMusicGenerationConfig

Konfigurimi për gjenerimin e muzikës.

Fushat
temperature

float

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

int32

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

int32

Opsionale. Gjenerimi i audios nga Seeds. Nëse nuk është caktuar, kërkesa përdor një seed të gjeneruar rastësisht.

guidance

float

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

int32

Opsionale. Rrahje në minutë. Diapazoni është [60, 200].

density

float

Opsionale. Dendësia e tingujve. Diapazoni është [0.0, 1.0].

brightness

float

Opsionale. Një vlerë më e lartë prodhon audio më të ndritshëm. Diapazoni është [0.0, 1.0].

scale

Scale

Opsionale. Shkalla e muzikës së gjeneruar.

muteBass

bool

Opsionale. Dalja audio nuk duhet të përmbajë bas.

muteDrums

bool

Opsionale. Dalja audio nuk duhet të përmbajë bateri.

onlyBassAndDrums

bool

Opsionale. Dalja audio duhet të përmbajë vetëm bas dhe bateri.

musicGenerationMode

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[]

AudioChunk

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

BidiGenerateMusicSetupComplete

Vetëm dalje. Dërgohet në përgjigje të një mesazhi BidiGenerateMusicSetup nga klienti kur konfigurimi përfundon.

serverContent

BidiGenerateMusicServerContent

Vetëm rezultate. Përmbajtja gjenerohet nga modeli në përgjigje të mesazheve të klientit.

filteredPrompt

BidiGenerateMusicFilteredPrompt

Vetëm dalje. Njoftim i filtruar me arsye.

warning

string

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

string

E detyrueshme. Emri i burimit të modelit. Ky shërben si një ID që modeli do të përdorë.

Formati: models/{model}

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

float

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.

prompt e fushës së Unionit.

prompt mund të jetë vetëm një nga të mëposhtmet:

text

string

Njoftim me tekst.

Më shumë informacion mbi llojet

Për më shumë informacion mbi llojet e përdorura nga API-ja, shihni Python SDK .