Live Music API - WebSockets API reference

Gjenerimi i muzikës në kohë reale me Lyria përdor një lidhje të vazhdueshme, dydrejtimëshe, me vonesë të ulët transmetimi duke përdorur WebSockets. Në këtë seksion do të gjesh detaje shtesë në lidhje me WebSockets API.

Seancat

Një lidhje WebSocket krijon një seancë për të mbajtur një komunikim në kohë reale me modelin. Pasi një klient nis një lidhje të re, seanca mund të shkëmbejë mesazhe me serverin për:

  • Dërgo kërkesa dhe kontrolle për të drejtuar gjenerimin e muzikës.
  • Dërgo kontrollet e luajtjes së muzikës.
  • Merr pjesë audio.

Lidhja e WebSocket

Për të nisur një seancë, lidhu me këtë pikë fundore të websocket:

wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateMusic

Konfigurimi i seancës

Mesazhi fillestar pas lidhjes cakton modelin që do të përdoret gjatë seancës.

Shiko shembullin e mëposhtëm të konfigurimit. Ki parasysh se shkrimi i emrave me gërma të mëdha në SDK mund të ndryshojë. Mund të kërkosh opsionet e konfigurimit të Python SDK 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ë pikërisht 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

Shiko mesazhet e mbështetura të klientit në tabelën e mëposhtme:

Dërgo mesazh Përshkrimi
BidiGenerateMusicSetup Konfigurimi i seancës do të dërgohet vetëm në mesazhin e parë
BidiGenerateMusicClientContent Kërkesat e ponderuara si hyrje e modelit
BidiGenerateMusicGenerationConfig Konfigurimi për gjenerimin e muzikës
BidiGenerateMusicPlaybackControl Sinjalet e kontrollit të luajtjes për gjenerimin e modelit

Merr mesazhe

Për të marrë mesazhe nga serveri, dëgjo për ngjarjen "message" të WebSocket dhe më pas analizo rezultatin sipas përkufizimit të mesazheve të mbështetura të serverit.

Shiko sa më poshtë:

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ë pikërisht një nga fushat e tjera nga mesazhi BidiGenerateMusicServerMessage. (Bashkimi messageType nuk shprehet në JSON, kështu që fusha do të shfaqet në nivelin e sipërm të mesazhit.)

Mesazhet dhe ngjarjet

AudioChunk

Paraqitja e një pjese audioje.

Fushat

Fusha e Unionit content.

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

data

bytes

Bajte të papërpunuara të pjesës së audios.

mimeType

string

Lloji i MIME-s i përmbajtjes së pjesës së audios, si p.sh. "audio/wav".

sourceMetadata

SourceMetadata

Vetëm dalje. Kërkesat dhe konfigurimi i përdorur për gjenerimin e këtij fragmenti audioje.

SourceMetadata

Metadatat rreth burimit të hyrjes të përdorur për gjenerimin e këtij fragmenti audioje.

Fushat
clientContent

BidiGenerateMusicClientContent

Kërkesat e ponderuara për gjenerimin e këtij fragmenti audioje.

musicGenerationConfig

BidiGenerateMusicGenerationConfig

Konfigurimi i gjenerimit të muzikës për gjenerimin e kësaj pjese audioje.

BidiGenerateMusicClientContent

Hyrja e përdoruesit për të filluar ose drejtuar muzikën.

Fushat
weightedPrompts[]

WeightedPrompt

Kërkohet. Kërkesat e ponderuara si hyrje e modelit.

BidiGenerateMusicClientMessage

Mesazhet e dërguara nga klienti në telefonatën e BidiGenerateMusic.

Fushat

Fusha e Unionit messageType.

messageType mund të jetë vetëm një nga sa më poshtë:

setup

BidiGenerateMusicSetup

Opsionale. Konfigurimi i seancës u dërgua në mesazhin e parë dhe vetëm në mesazhin e parë të klientit.

clientContent

BidiGenerateMusicClientContent

Opsionale. Kërkesat e ponderuara dhe konfigurimet e gjenerimit të muzikës si hyrje e gjenerimit të muzikës.

musicGenerationConfig

BidiGenerateMusicGenerationConfig

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

playbackControl

BidiGenerateMusicPlaybackControl

Opsionale. Sinjali i kontrollit të luajtjes për gjenerimin e muzikës.

BidiGenerateMusicFilteredPrompt

Kërkesa e filtruar me arsyen.

Fushat
filteredReason

string

Vetëm dalje. Arsyeja pse kërkesa u filtrua.

Fusha e Unionit prompt. Kërkesa që u filtrua. prompt mund të jetë vetëm një nga sa më poshtë:
text

string

Opsionale. Kërkesë me tekst.

BidiGenerateMusicGenerationConfig

Konfigurimi për gjenerimin e muzikës.

Fushat
temperature

float

Opsionale. Kontrollon variancën në gjenerimin e audios.

Vlerat më të larta prodhojnë variancë më të lartë. Intervali është [0.0, 3.0]. Parazgjedhja është 1.1.

topK

int32

Opsionale. Kontrollon se si modeli zgjedh tokenët për rezultatin.

Merr kampionë të topK token-ëve me probabilitetet më të larta. Intervali është [1, 1000]. Parazgjedhja është 40.

seed

int32

Opsionale. Gjenerimi i audios për farërat. Nëse nuk caktohet, kërkesa përdor një vlerë të gjeneruar në mënyrë rastësore.

guidance

float

Opsionale. Kontrollon se sa i ndjek modeli kërkesat. Udhëzimi më i lartë ndjek më nga afër, por do t'i bëjë kalimet më të papritura. Intervali është [0.0, 6.0]. Parazgjedhja është 4.0.

bpm

int32

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

density

float

Opsionale. Dendësia e tingujve. Intervali është [0,0, 1,0].

brightness

float

Opsionale. Vlera më e lartë prodhon audio më të ndritshme. Intervali është [0,0, 1,0].

scale

Scale

Opsionale. Shkalla e muzikës së gjeneruar.

muteBass

bool

Opsionale. Rezultati i audios nuk duhet të përmbajë bas.

muteDrums

bool

Opsionale. Rezultati i audios nuk duhet të përmbajë bateri.

onlyBassAndDrums

bool

Opsionale. Dalja e audios duhet të përfshijë vetëm basin dhe baterinë.

musicGenerationMode

MusicGenerationMode

Opsionale. Modaliteti i gjenerimit të muzikës. Parazgjedhja është QUALITY.

MusicGenerationMode

Enumeracionet
MUSIC_GENERATION_MODE_UNSPECIFIED Kjo vlerë është e papërdorur.
QUALITY Ky modalitet i drejton kërkesat me tekst në rajone të hapësirës latente me muzikë me cilësi më të lartë.
DIVERSITY Ky modalitet i drejton kërkesat me tekst në rajone të hapësirës latente me një diversitet më të madh të muzikës.
VOCALIZATION Ky modalitet i drejton kërkesat me tekst në rajone të hapësirës latente që kanë më shumë gjasa të gjenerojnë muzikë vokale.

Shkalla

Shkalla e muzikës së gjeneruar.

Enumeracionet
SCALE_UNSPECIFIED Vlera e parazgjedhur. Kjo vlerë është e papërdorur.
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 La bemol maxhor ose Fa minor
A_MAJOR_G_FLAT_MINOR La maxhore ose Sol bemol minore
B_FLAT_MAJOR_G_MINOR Si bemol maxhor ose Sol minor
B_MAJOR_A_FLAT_MINOR Si maxhor ose la bemol minor

BidiGenerateMusicPlaybackControl

Kontrolli i luajtjes për gjenerimin e muzikës.

Enumeracionet
PLAYBACK_CONTROL_UNSPECIFIED Kjo vlerë është e papërdorur.
PLAY Fillo të gjenerosh muzikën.
PAUSE Prit për gjenerimin e muzikës. Përdor PLAY për të vazhduar nga pozicioni aktual.
STOP Ndalo gjenerimin e muzikës dhe rivendos kontekstin (kërkesat ruhen). 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ësimi rritës i serverit i gjeneruar nga modeli në përgjigje të mesazheve të klientit.

Përmbajtja gjenerohet sa më shpejt që të jetë e mundur dhe jo në kohë reale. Klientët mund të zgjedhin ta ruajnë në ndërmemorie dhe ta luajnë në kohë reale.

Fushat
audioChunks[]

AudioChunk

Vetëm dalje. Pjesët e audios që ka gjeneruar modeli.

BidiGenerateMusicServerMessage

Response message for the BidiGenerateMusic call.

Fushat
Fusha e Unionit messageType. Lloji i mesazhit. messageType mund të jetë vetëm një nga sa më poshtë:
setupComplete

BidiGenerateMusicSetupComplete

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

serverContent

BidiGenerateMusicServerContent

Vetëm dalje. Përmbajtja e gjeneruar nga modeli në përgjigje të mesazheve të klientit.

filteredPrompt

BidiGenerateMusicFilteredPrompt

Vetëm dalje. Kërkesa e filtruar me arsyen.

warning

string

Vetëm dalje. Mesazhi paralajmërues nga serveri. Paralajmërimet nuk do ta mbyllin transmetimin.

BidiGenerateMusicSetup

Mesazhi që do të dërgohet në BidiGenerateMusicClientMessage e parë (dhe vetëm në të parën).

Klientët duhet të presin për një mesazh BidiGenerateMusicSetupComplete para se të dërgojnë mesazhe të tjera.

Fushat
model

string

Kërkohet. Emri i burimit të modelit. Kjo shërben si një ID për modelin që do të përdoret.

Formati: models/{model}

BidiGenerateMusicSetupComplete

Ky lloj nuk ka fusha.

Dërguar në përgjigje të një mesazhi BidiGenerateMusicSetup nga klienti.

WeightedPrompt

Kërkesa e ponderuar si hyrje e modelit.

Fushat
weight

float

Kërkohet. Pesha e kërkesës.

Pesha përdoret për të kontrolluar rëndësinë relative të kërkesës. 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. Weights of all weighted_prompts in this BidiGenerateMusicClientContent message will be normalized.

Fusha e Unionit prompt.

prompt mund të jetë vetëm një nga sa më poshtë:

text

string

Kërkesë me tekst.

Më shumë informacione për llojet

Për më shumë informacione për llojet e përdorura nga API-ja, shiko Python SDK.