Live Music API - WebSockets API reference

লিরিয়া রিয়েলটাইম মিউজিক জেনারেশন WebSockets ব্যবহার করে একটি স্থায়ী, দ্বিমুখী, কম লেটেন্সি স্ট্রিমিং সংযোগ ব্যবহার করে। এই বিভাগে, আপনি WebSockets API সম্পর্কিত অতিরিক্ত বিবরণ পাবেন।

সেশন

একটি WebSocket সংযোগ মডেলের সাথে রিয়েল-টাইম যোগাযোগ রাখতে একটি সেশন স্থাপন করে। একটি ক্লায়েন্ট একটি নতুন সংযোগ শুরু করার পরে সেশনটি সার্ভারের সাথে বার্তা বিনিময় করতে পারে:

  • সঙ্গীত প্রজন্মকে চালিত করতে প্রম্পট এবং নিয়ন্ত্রণ পাঠান।
  • সঙ্গীত প্লেব্যাক নিয়ন্ত্রণ পাঠান.
  • অডিও খণ্ড গ্রহণ.

ওয়েবসকেট সংযোগ

একটি সেশন শুরু করতে, এই ওয়েবসকেট এন্ডপয়েন্টের সাথে সংযোগ করুন:

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

সেশন কনফিগারেশন

সংযোগের পরে প্রাথমিক বার্তাটি সেশন চলাকালীন ব্যবহার করার জন্য মডেল সেট করে।

নিম্নলিখিত উদাহরণ কনফিগারেশন দেখুন. মনে রাখবেন যে SDK-তে নামের আবরণ পরিবর্তিত হতে পারে। আপনি এখানে পাইথন SDK কনফিগারেশন বিকল্পগুলি দেখতে পারেন।


{
  "model": string
}

বার্তা পাঠান

WebSocket সংযোগের মাধ্যমে বার্তা বিনিময় করতে, ক্লায়েন্টকে অবশ্যই একটি খোলা WebSocket সংযোগের মাধ্যমে একটি JSON অবজেক্ট পাঠাতে হবে। JSON অবজেক্টে নিম্নলিখিত অবজেক্ট সেট থেকে ঠিক একটি ক্ষেত্র থাকতে হবে:


{
  "setup": BidiGenerateMusicSetup,
  "client_content": BidiGenerateMusicClientContent,
  "music_generation_config": BidiGenerateMusicGenerationConfig,
  "playback_control": BidiGenerateMusicPlaybackControl
}

সমর্থিত ক্লায়েন্ট বার্তা

নিম্নলিখিত টেবিলে সমর্থিত ক্লায়েন্ট বার্তাগুলি দেখুন:

বার্তা বর্ণনা
BidiGenerateMusicSetup সেশন কনফিগারেশন শুধুমাত্র প্রথম বার্তায় পাঠানো হবে
BidiGenerateMusicClientContent মডেল ইনপুট হিসাবে ওজনযুক্ত প্রম্পট
BidiGenerateMusicGenerationConfig সঙ্গীত প্রজন্মের জন্য কনফিগারেশন
BidiGenerateMusicPlaybackControl মডেল প্রজন্মের জন্য প্লেব্যাক নিয়ন্ত্রণ সংকেত

বার্তা গ্রহণ

সার্ভার থেকে বার্তা পেতে, WebSocket 'বার্তা' ইভেন্টের জন্য শুনুন, এবং তারপর সমর্থিত সার্ভার বার্তাগুলির সংজ্ঞা অনুযায়ী ফলাফল পার্স করুন৷

নিম্নলিখিত দেখুন:

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()

সার্ভার বার্তাগুলি BidiGenerateMusicServerMessage বার্তা থেকে অন্য ক্ষেত্রগুলির মধ্যে ঠিক একটি অন্তর্ভুক্ত করে৷ ( messageType ইউনিয়ন JSON-এ প্রকাশ করা হয়নি তাই ক্ষেত্রটি বার্তার শীর্ষ-স্তরে প্রদর্শিত হবে।)

বার্তা এবং ঘটনা

অডিওচঙ্ক

একটি অডিও খণ্ড প্রতিনিধিত্ব.

ক্ষেত্র

ইউনিয়ন ক্ষেত্রের content

content নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

data

bytes

অডিও খণ্ডের কাঁচা বাইট.

mimeType

string

অডিও খণ্ডের বিষয়বস্তুর MIME প্রকার, যেমন "audio/wav"।

sourceMetadata

SourceMetadata

শুধুমাত্র আউটপুট। এই অডিও খণ্ড তৈরি করার জন্য প্রম্পট এবং কনফিগারেশন ব্যবহার করা হয়।

উৎস মেটাডেটা

এই অডিও খণ্ডটি তৈরি করার জন্য ব্যবহৃত ইনপুট উত্স সম্পর্কে মেটাডেটা৷

ক্ষেত্র
clientContent

BidiGenerateMusicClientContent

এই অডিও খণ্ড তৈরির জন্য ওজনযুক্ত প্রম্পট।

musicGenerationConfig

BidiGenerateMusicGenerationConfig

এই অডিও খণ্ড তৈরি করার জন্য সঙ্গীত প্রজন্মের কনফিগারেশন।

বিডি জেনারেট মিউজিক ক্লায়েন্ট কনটেন্ট

সঙ্গীত শুরু করতে বা পরিচালনা করতে ব্যবহারকারীর ইনপুট।

ক্ষেত্র
weightedPrompts[]

WeightedPrompt

প্রয়োজন। মডেল ইনপুট হিসাবে ওজনযুক্ত প্রম্পট।

বিডিজেনারেট মিউজিকক্লায়েন্ট মেসেজ

বিডিজেনারেট মিউজিক কলে ক্লায়েন্টের পাঠানো বার্তা।

ক্ষেত্র

ইউনিয়ন ক্ষেত্রের messageType

messageType নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

setup

BidiGenerateMusicSetup

ঐচ্ছিক। সেশন কনফিগারেশন শুধুমাত্র প্রথম ক্লায়েন্ট বার্তায় পাঠানো হয়েছে।

clientContent

BidiGenerateMusicClientContent

ঐচ্ছিক। মিউজিক জেনারেশনের ইনপুট হিসেবে ওয়েটেড প্রম্পট এবং মিউজিক জেনারেশন কনফিগারেশন।

musicGenerationConfig

BidiGenerateMusicGenerationConfig

ঐচ্ছিক। সঙ্গীত প্রজন্মের জন্য কনফিগারেশন.

playbackControl

BidiGenerateMusicPlaybackControl

ঐচ্ছিক। সঙ্গীত প্রজন্মের জন্য প্লেব্যাক নিয়ন্ত্রণ সংকেত.

বিডি জেনারেট মিউজিক ফিল্টারড প্রম্পট

কারণ সহ প্রম্পট ফিল্টার.

ক্ষেত্র
filteredReason

string

শুধুমাত্র আউটপুট। যে কারণে প্রম্পট ফিল্টার করা হয়েছে।

ইউনিয়ন ফিল্ড prompt . প্রম্পট যে ফিল্টার করা হয়েছে. prompt নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
text

string

ঐচ্ছিক। টেক্সট প্রম্পট।

বিডি জেনারেট মিউজিক জেনারেশন কনফিগ

সঙ্গীত প্রজন্মের জন্য কনফিগারেশন.

ক্ষেত্র
temperature

float

ঐচ্ছিক। অডিও প্রজন্মের বৈচিত্র্য নিয়ন্ত্রণ করে।

উচ্চতর মান উচ্চ বৈচিত্র্য তৈরি করে। পরিসীমা হল [0.0, 3.0]। ডিফল্ট হল 1.1।

topK

int32

ঐচ্ছিক। মডেল কিভাবে আউটপুট জন্য টোকেন নির্বাচন করে নিয়ন্ত্রণ করে।

সর্বোচ্চ সম্ভাবনা সহ topK টোকেনগুলির নমুনা। পরিসীমা হল [1, 1000]। ডিফল্ট হল 40।

seed

int32

ঐচ্ছিক। বীজ অডিও প্রজন্ম। যদি সেট না করা থাকে, অনুরোধটি এলোমেলোভাবে উৎপন্ন বীজ ব্যবহার করে।

guidance

float

ঐচ্ছিক। মডেল কতটা ঘনিষ্ঠভাবে প্রম্পট অনুসরণ করে তা নিয়ন্ত্রণ করে। উচ্চতর নির্দেশিকা আরও ঘনিষ্ঠভাবে অনুসরণ করে, কিন্তু পরিবর্তনগুলি আরও আকস্মিক করে তুলবে। পরিসীমা হল [0.0, 6.0]। ডিফল্ট হল 4.0।

bpm

int32

ঐচ্ছিক। প্রতি মিনিটে বিট। পরিসীমা হল [60, 200]।

density

float

ঐচ্ছিক। শব্দের ঘনত্ব। পরিসর হল [0.0, 1.0]।

brightness

float

ঐচ্ছিক। উচ্চ মান উজ্জ্বল অডিও উত্পাদন করে. পরিসর হল [0.0, 1.0]।

scale

Scale

ঐচ্ছিক। উত্পন্ন সঙ্গীত স্কেল.

muteBass

bool

ঐচ্ছিক। অডিও আউটপুটে খাদ থাকা উচিত নয়।

muteDrums

bool

ঐচ্ছিক। অডিও আউটপুটে ড্রাম থাকা উচিত নয়।

onlyBassAndDrums

bool

ঐচ্ছিক। অডিও আউটপুটে শুধুমাত্র খাদ এবং ড্রাম থাকা উচিত।

musicGenerationMode

MusicGenerationMode

ঐচ্ছিক। সঙ্গীত প্রজন্মের মোড। ডিফল্ট হল কোয়ালিটি।

মিউজিক জেনারেশন মোড

এনামস
MUSIC_GENERATION_MODE_UNSPECIFIED এই মান অব্যবহৃত.
QUALITY এই মোডটি উচ্চ মানের সঙ্গীত সহ সুপ্ত স্থানের অঞ্চলগুলিতে পাঠ্য প্রম্পট করে।
DIVERSITY এই মোডটি সঙ্গীতের বৃহত্তর বৈচিত্র্য সহ সুপ্ত স্থানের অঞ্চলগুলিতে পাঠ্য প্রম্পট করে।
VOCALIZATION এই মোডটি টেক্সটকে প্রম্পট করে সুপ্ত স্থানের অঞ্চলে ভোকাল মিউজিক তৈরি করার সম্ভাবনা বেশি।

স্কেল

উত্পন্ন সঙ্গীত স্কেল.

এনামস
SCALE_UNSPECIFIED ডিফল্ট মান। এই মান অব্যবহৃত.
C_MAJOR_A_MINOR সি মেজর বা এ মাইনর
D_FLAT_MAJOR_B_FLAT_MINOR ডি ফ্ল্যাট মেজর বা বি ফ্ল্যাট মাইনর
D_MAJOR_B_MINOR ডি মেজর বা বি মাইনর
E_FLAT_MAJOR_C_MINOR ই ফ্ল্যাট মেজর বা সি মাইনর
E_MAJOR_D_FLAT_MINOR ই মেজর বা ডি ফ্ল্যাট মাইনর
F_MAJOR_D_MINOR এফ মেজর বা ডি মাইনর
G_FLAT_MAJOR_E_FLAT_MINOR জি ফ্ল্যাট মেজর বা ই ফ্ল্যাট মাইনর
G_MAJOR_E_MINOR জি মেজর বা ই মাইনর
A_FLAT_MAJOR_F_MINOR ফ্ল্যাট মেজর বা এফ মাইনর
A_MAJOR_G_FLAT_MINOR মেজর বা জি ফ্ল্যাট মাইনর
B_FLAT_MAJOR_G_MINOR বি ফ্ল্যাট মেজর বা জি মাইনর
B_MAJOR_A_FLAT_MINOR B মেজর বা A ফ্ল্যাট মাইনর

বিডি জেনারেট মিউজিক প্লেব্যাক কন্ট্রোল

সঙ্গীত প্রজন্মের জন্য প্লেব্যাক নিয়ন্ত্রণ।

এনামস
PLAYBACK_CONTROL_UNSPECIFIED এই মান অব্যবহৃত.
PLAY সঙ্গীত তৈরি করা শুরু করুন।
PAUSE সঙ্গীত প্রজন্ম ধরে রাখুন। বর্তমান অবস্থান থেকে পুনরায় শুরু করতে PLAY ব্যবহার করুন।
STOP মিউজিক জেনারেশন বন্ধ করুন এবং কনটেক্সট রিসেট করুন (প্রম্পট রাখা হয়েছে)। মিউজিক জেনারেশন রিস্টার্ট করতে প্লে ব্যবহার করুন।
RESET_CONTEXT মিউজিক জেনারেশন বন্ধ না করে কনটেক্সট রিসেট করুন (প্রম্পট ধরে রাখা হয়েছে)।

বিডিজেনারেট মিউজিক সার্ভার সামগ্রী

ক্লায়েন্ট বার্তাগুলির প্রতিক্রিয়া হিসাবে মডেল দ্বারা উত্পন্ন ক্রমবর্ধমান সার্ভার আপডেট৷

বিষয়বস্তু যত তাড়াতাড়ি সম্ভব তৈরি করা হয়, এবং বাস্তব সময়ে নয়। ক্লায়েন্টরা বাফার করতে এবং রিয়েল টাইমে এটি চালাতে বেছে নিতে পারে।

ক্ষেত্র
audioChunks[]

AudioChunk

শুধুমাত্র আউটপুট। অডিও খণ্ড যা মডেল তৈরি করেছে।

বিডিজেনারেট মিউজিক সার্ভার মেসেজ

বিডিজেনারেট মিউজিক কলের প্রতিক্রিয়া বার্তা।

ক্ষেত্র
ইউনিয়ন ক্ষেত্রের messageType । বার্তার ধরন। messageType নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
setupComplete

BidiGenerateMusicSetupComplete

শুধুমাত্র আউটপুট। সেটআপ সম্পূর্ণ হলে ক্লায়েন্টের কাছ থেকে একটি BidiGenerateMusicSetup বার্তার প্রতিক্রিয়ায় পাঠানো হয়েছে।

serverContent

BidiGenerateMusicServerContent

শুধুমাত্র আউটপুট। ক্লায়েন্ট বার্তার প্রতিক্রিয়ায় মডেল দ্বারা উত্পন্ন সামগ্রী।

filteredPrompt

BidiGenerateMusicFilteredPrompt

শুধুমাত্র আউটপুট। কারণ সহ প্রম্পট ফিল্টার.

warning

string

শুধুমাত্র আউটপুট। সার্ভার থেকে সতর্কতা বার্তা। সতর্কতা স্ট্রীমটি বন্ধ করবে না।

বিডিজেনারেট মিউজিক সেটআপ

বার্তা পাঠানো হবে প্রথম (এবং শুধুমাত্র প্রথমটিতে) BidiGenerateMusicClientMessage

কোনো অতিরিক্ত বার্তা পাঠানোর আগে গ্রাহকদের একটি BidiGenerateMusicSetupComplete বার্তার জন্য অপেক্ষা করা উচিত।

ক্ষেত্র
model

string

প্রয়োজন। মডেলের সম্পদের নাম। এটি মডেল ব্যবহার করার জন্য একটি আইডি হিসাবে কাজ করে।

বিন্যাস: models/{model}

বিডি জেনারেট মিউজিক সেটআপ সম্পূর্ণ

এই ধরনের কোন ক্ষেত্র নেই.

ক্লায়েন্টের কাছ থেকে একটি BidiGenerateMusicSetup বার্তার জবাবে পাঠানো হয়েছে।

ওয়েটেড প্রম্পট

মডেল ইনপুট হিসাবে ওজনযুক্ত প্রম্পট।

ক্ষেত্র
weight

float

প্রয়োজন। প্রম্পট ওজন.

প্রম্পটের আপেক্ষিক গুরুত্ব নিয়ন্ত্রণ করতে ওজন ব্যবহার করা হয়। কম ওজনের চেয়ে বেশি ওজন বেশি গুরুত্বপূর্ণ।

এই BidiGenerateMusicClientContent-এর সমস্ত ওয়েটেড_প্রম্পটের ওজন অবশ্যই 0 হওয়া উচিত নয়। এই BidiGenerateMusicClientContent বার্তার সমস্ত ওয়েটেড_প্রম্পটের ওজন স্বাভাবিক করা হবে।

ইউনিয়ন ফিল্ড prompt .

prompt নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

text

string

টেক্সট প্রম্পট।

প্রকার সম্পর্কে আরও তথ্য

API দ্বারা ব্যবহৃত প্রকারগুলি সম্পর্কে আরও তথ্যের জন্য, Python SDK দেখুন।