Gjenerimi i muzikës Lyria RealTime përdor një lidhje të vazhdueshme, me dy drejtime 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.
Sesionet
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, sesioni mund të shkëmbejë mesazhe me serverin për:
- Dërgoni kërkesat dhe kontrollet për të drejtuar gjenerimin e muzikës.
- Dërgo kontrollet e riprodhimit të muzikës.
- Merr pjesë audio.
Lidhja WebSocket
Për të nisur një sesion, lidheni me këtë pikë fundore të uebsocket:
wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateMusic
Konfigurimi i sesionit
Mesazhi fillestar pas lidhjes vendos modelin për t'u përdorur gjatë seancës.
Shihni shembullin e mëposhtëm të konfigurimit. Vini re se kutia e emrit në SDK mund të ndryshojë. Mund të kërkoni opsionet e konfigurimit të Python SDK këtu .
{
"model": string
}
Dërgo mesazhe
Për të shkëmbyer mesazhe përmes lidhjes WebSocket, klienti duhet të dërgojë një objekt JSON mbi një lidhje 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 klientit të mbështetur
Shihni mesazhet e klientit të mbështetur në tabelën e mëposhtme:
Mesazh | Përshkrimi |
---|---|
BidiGenerateMusicSetup | Konfigurimi i sesionit të dërgohet vetëm në mesazhin e parë |
BidiGenerateMusicClientContent | Kërkesat e ponderuara si hyrje të 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ëgjoni për ngjarjen 'mesazh' në WebSocket dhe më pas analizoni rezultatin sipas përcaktimit të mesazheve të serverit të mbështetur.
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ë 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 lartë të mesazhit.)
Mesazhet dhe ngjarjet
AudioChunk
Përfaqësimi i një pjese audio.
Fushat | |
---|---|
| |
data | Bajt të papërpunuara të pjesës audio. |
mimeType | Lloji MIME i përmbajtjes së pjesës audio, si p.sh. "audio/wav". |
sourceMetadata | Vetëm dalje. Kërkesat dhe konfigurimi i përdorur për gjenerimin e kësaj pjese audio. |
BurimiMetadata
Të dhënat meta në lidhje me burimin hyrës të përdorur për gjenerimin e kësaj pjese audio.
Fushat | |
---|---|
clientContent | Kërkesat e peshuara për gjenerimin e kësaj pjese audio. |
musicGenerationConfig | Konfigurimi i gjenerimit të muzikës për gjenerimin e kësaj pjese audio. |
BidiGenerateMusicClientContent
Hyrja e përdoruesit për të nisur ose drejtuar muzikën.
Fushat | |
---|---|
weightedPrompts[] | E detyrueshme. Kërkesat e ponderuara si hyrje të modelit. |
BidiGenerateMusicClientMessage
Mesazhet e dërguara nga klienti në thirrjen BidiGenerateMusic.
Fushat | |
---|---|
| |
setup | Fakultative. Konfigurimi i sesionit është dërguar vetëm në mesazhin e parë të klientit. |
clientContent | Fakultative. Kërkesat e ponderuara dhe konfigurimet e gjenerimit të muzikës si input i gjenerimit të muzikës. |
musicGenerationConfig | Fakultative. Konfigurimi për gjenerimin e muzikës. |
playbackControl | Fakultative. Sinjali i kontrollit të riprodhimit për gjeneratën e muzikës. |
BidiGenerateMusicFilteredPrompt
Prompti i filtruar me arsye.
Fushat | |
---|---|
filteredReason | Vetëm dalje. Arsyeja pse kërkesa u filtua. |
Fusha e prompt e Bashkimit . Kërkesa e filtruar. prompt mund të jetë vetëm një nga sa vijon: | |
text | Fakultative. Tekst i shpejtë. |
BidiGenerateMusicGenerationConfig
Konfigurimi për gjenerimin e muzikës.
Fushat | |
---|---|
temperature | Fakultative. Kontrollon variancën në gjenerimin e audios. Vlerat më të larta prodhojnë variancë më të lartë. Gama është [0.0, 3.0]. Parazgjedhja është 1.1. |
topK | Fakultative. Kontrollon se si modeli zgjedh argumentet për dalje. Merr mostra nga tokenat topK me probabilitetet më të larta. Gama është [1, 1000]. Parazgjedhja është 40. |
seed | Fakultative. Prodhimi i farërave audio. Nëse nuk është caktuar, kërkesa përdor një farë të krijuar rastësisht. |
guidance | Fakultative. Kontrollon se sa nga afër i ndjek modeli udhëzimet. Udhëzimet më të larta ndjekin më nga afër, por do t'i bëjnë tranzicionet më të papritura. Gama është [0.0, 6.0]. Parazgjedhja është 4.0. |
bpm | Fakultative. Rrahje në minutë. Gama është [60, 200]. |
density | Fakultative. Dendësia e tingujve. Gama është [0.0, 1.0]. |
brightness | Fakultative. Vlera më e lartë prodhon audio më të ndritshme. Gama është [0.0, 1.0]. |
scale | Fakultative. Shkalla e muzikës së krijuar. |
muteBass | Fakultative. Dalja audio nuk duhet të përmbajë bas. |
muteDrums | Fakultative. Dalja audio nuk duhet të përmbajë bateri. |
onlyBassAndDrums | Fakultative. Dalja audio duhet të përmbajë vetëm bas dhe bateri. |
musicGenerationMode | Fakultative. Mënyra e gjenerimit të muzikës. Parazgjedhja është QUALITY. |
Music Generation Mode
Enums | |
---|---|
MUSIC_GENERATION_MODE_UNSPECIFIED | Kjo vlerë është e papërdorur. |
QUALITY | Ky modalitet i drejton kërkesat e tekstit drejt zonave të hapësirës latente me muzikë me cilësi më të lartë. |
DIVERSITY | Ky modalitet drejton kërkesat e tekstit drejt zonave të hapësirës latente me një diversitet më të madh muzikor. |
VOCALIZATION | Ky modalitet i drejton kërkesat e tekstit në rajone të hapësirës latente që ka më shumë gjasa të gjenerojë muzikë vokale. |
Shkalla
Shkalla e muzikës së krijuar.
Enums | |
---|---|
SCALE_UNSPECIFIED | Vlera e paracaktuar. Kjo vlerë është e papërdorur. |
C_MAJOR_A_MINOR | C maxhor ose A minor |
D_FLAT_MAJOR_B_FLAT_MINOR | D flat major ose B flat minor |
D_MAJOR_B_MINOR | D maxhor ose B minor |
E_FLAT_MAJOR_C_MINOR | E flat major ose C minor |
E_MAJOR_D_FLAT_MINOR | E major ose D flat minor |
F_MAJOR_D_MINOR | F maxhor ose D minor |
G_FLAT_MAJOR_E_FLAT_MINOR | G flat major ose E flat minor |
G_MAJOR_E_MINOR | G maxhor ose E minor |
A_FLAT_MAJOR_F_MINOR | Një maxhore e sheshtë ose F minor |
A_MAJOR_G_FLAT_MINOR | Major ose G flat minor |
B_FLAT_MAJOR_G_MINOR | B flat major ose G minor |
B_MAJOR_A_FLAT_MINOR | B maxhor ose A flat minor |
BidiGenerateMusicPlaybackControl
Kontrolli i riprodhimit për gjeneratën e muzikës.
Enums | |
---|---|
PLAYBACK_CONTROL_UNSPECIFIED | Kjo vlerë është e papërdorur. |
PLAY | Filloni të gjeneroni muzikë. |
PAUSE | Mbaj brezin e muzikës. Përdorni PLAY për të rifilluar nga pozicioni aktual. |
STOP | Ndaloni gjenerimin e muzikës dhe rivendosni kontekstin (kërkimet mbahen). Përdorni PLAY për të rifilluar gjenerimin e muzikës. |
RESET_CONTEXT | Rivendosni kontekstin (kërkimet mbahen) pa ndalur gjenerimin e muzikës. |
BidiGenerateMusicServerContent
Përditësimi në rritje i serverit i krijuar 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ë dhe ta luajnë atë në kohë reale.
Fushat | |
---|---|
audioChunks[] | Vetëm dalje. Pjesë audio që modeli ka krijuar. |
BidiGenerateMusicServerMessage
Mesazh përgjigje për thirrjen BidiGenerateMusic.
Fushat | |
---|---|
messageType i fushës së bashkimit Lloji . Lloji i mesazhit. messageType mund të jetë vetëm një nga sa vijon: | |
setupComplete | Vetëm dalje. Dërguar në përgjigje të një mesazhi |
serverContent | Vetëm dalje. Përmbajtja e krijuar nga modeli në përgjigje të mesazheve të klientit. |
filteredPrompt | Vetëm dalje. Prompti i filtruar me arsye. |
warning | Vetëm dalje. Mesazhi paralajmërues nga serveri. Paralajmërimet nuk do ta mbyllin transmetimin. |
BidiGenerateMusicSetup
Mesazhi që do të dërgohet në të parën (dhe vetëm në të parën) BidiGenerateMusicClientMessage
.
Klientët duhet të presin për një mesazh BidiGenerateMusicSetupComplete
përpara se të dërgojnë ndonjë mesazh shtesë.
Fushat | |
---|---|
model | E detyrueshme. Emri i burimit të modelit. Kjo shërben si një ID për modelin për t'u përdorur. Formati: |
BidiGenerateMusicSetupComplete
Ky lloj nuk ka fusha.
Dërguar si përgjigje ndaj një mesazhi BidiGenerateMusicSetup
nga klienti.
WeightedPrompt
Prompt i ponderuar si hyrje e modelit.
Fushat | |
---|---|
weight | E detyrueshme. Pesha e kërkesës. Pesha përdoret për të kontrolluar rëndësinë relative të kërkesës. Pesha më e madhe është më e rëndësishme se pesha më e ulët. Peshat e të gjitha kërkesave të peshuara në këtë BidiGenerateMusicClientContent nuk duhet të jenë të gjitha 0. Peshat e të gjitha kërkesave të peshuara në këtë mesazh BidiGenerateMusicClientContent do të normalizohen. |
Fusha e | |
text | Tekst i shpejtë. |
Më shumë informacion mbi llojet
Për më shumë informacion mbi llojet e përdorura nga API, shihni Python SDK .