Live Music API - WebSockets API reference

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

অধিবেশন

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

  • সঙ্গীত তৈরি পরিচালনা করতে নির্দেশ ও নিয়ন্ত্রণ পাঠান।
  • সঙ্গীত প্লেব্যাক নিয়ন্ত্রণ পাঠান।
  • অডিও খণ্ড গ্রহণ করুন।

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

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

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-এর 'message' ইভেন্টটি শুনুন এবং তারপরে সমর্থিত সার্ভার বার্তাগুলির সংজ্ঞা অনুযায়ী ফলাফলটি পার্স করুন।

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

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

আবশ্যক। মডেল ইনপুট হিসেবে ওয়েটেড প্রম্পট।

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

BidiGenerateMusic কলে ক্লায়েন্ট কর্তৃক প্রেরিত বার্তা।

ক্ষেত্র

ইউনিয়ন ফিল্ড 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

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

সর্বোচ্চ সম্ভাবনাসহ শীর্ষ K সংখ্যক টোকেন নমুনা হিসেবে নির্বাচন করে। পরিসর হলো [১, ১০০০]। ডিফল্ট মান হলো ৪০।

seed

int32

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

guidance

float

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

bpm

int32

ঐচ্ছিক। প্রতি মিনিটে স্পন্দন সংখ্যা। পরিসর হলো [৬০, ২০০]।

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 বি মেজর বা এ ফ্ল্যাট মাইনর

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

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

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

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

ক্লায়েন্টের বার্তার প্রতিক্রিয়ায় মডেল দ্বারা তৈরি ক্রমবর্ধমান সার্ভার আপডেট।

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

ক্ষেত্র
audioChunks[]

AudioChunk

শুধুমাত্র আউটপুট। মডেল দ্বারা তৈরি অডিও খণ্ডগুলো।

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

BidiGenerateMusic কলটির প্রতিক্রিয়া বার্তা।

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

BidiGenerateMusicSetupComplete

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

serverContent

BidiGenerateMusicServerContent

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

filteredPrompt

BidiGenerateMusicFilteredPrompt

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

warning

string

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

BidiGenerateMusicSetup

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

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

ক্ষেত্র
model

string

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

ফরম্যাট: models/{model}

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

এই প্রকারে কোনো ক্ষেত্র নেই।

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

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

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

ক্ষেত্র
weight

float

প্রয়োজনীয়। নির্দেশনার গুরুত্ব।

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

এই BidiGenerateMusicClientContent-এর অন্তর্ভুক্ত সমস্ত weighted_prompt-এর ওয়েট অবশ্যই সব ০ হবে না। এই BidiGenerateMusicClientContent মেসেজের অন্তর্ভুক্ত সমস্ত weighted_prompt-এর ওয়েট নর্মালাইজ করা হবে।

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

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

text

string

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

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

এপিআই-তে ব্যবহৃত প্রকারগুলো সম্পর্কে আরও তথ্যের জন্য পাইথন এসডিকে দেখুন।