লাইরিয়া রিয়েলটাইম মিউজিক জেনারেশন ওয়েবসকেটস ব্যবহার করে একটি স্থায়ী, দ্বিমুখী, স্বল্প-বিলম্বের স্ট্রিমিং সংযোগ স্থাপন করে। এই বিভাগে, আপনি ওয়েবসকেটস এপিআই সম্পর্কে আরও বিস্তারিত তথ্য পাবেন।
অধিবেশন
একটি ওয়েবসকেট সংযোগ মডেলের সাথে রিয়েল-টাইম যোগাযোগ বজায় রাখার জন্য একটি সেশন স্থাপন করে। কোনো ক্লায়েন্ট একটি নতুন সংযোগ শুরু করার পর, সেশনটি সার্ভারের সাথে নিম্নলিখিত উদ্দেশ্যে বার্তা আদান-প্রদান করতে পারে:
- সঙ্গীত তৈরি পরিচালনা করতে নির্দেশ ও নিয়ন্ত্রণ পাঠান।
- সঙ্গীত প্লেব্যাক নিয়ন্ত্রণ পাঠান।
- অডিও খণ্ড গ্রহণ করুন।
ওয়েবসকেট সংযোগ
একটি সেশন শুরু করতে, এই ওয়েবসকেট এন্ডপয়েন্টে সংযোগ করুন:
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-এ প্রকাশ করা হয় না, তাই ফিল্ডটি মেসেজের শীর্ষ-স্তরে প্রদর্শিত হবে।)
বার্তা এবং ঘটনা
অডিওচাঙ্ক
একটি অডিও খণ্ডের উপস্থাপনা।
| ক্ষেত্র | |
|---|---|
ইউনিয়ন ক্ষেত্রের | |
data | অডিও খণ্ডের মূল বাইটগুলো। |
mimeType | অডিও চাঙ্কের বিষয়বস্তুর MIME টাইপ, যেমন "audio/wav"। |
sourceMetadata | শুধুমাত্র আউটপুট। এই অডিও অংশটি তৈরি করতে ব্যবহৃত প্রম্পট এবং কনফিগারেশন। |
উৎস মেটাডেটা
এই অডিও অংশটি তৈরি করতে ব্যবহৃত ইনপুট উৎস সম্পর্কিত মেটাডেটা।
| ক্ষেত্র | |
|---|---|
clientContent | এই অডিও অংশটি তৈরি করার জন্য ওয়েটেড প্রম্পট। |
musicGenerationConfig | এই অডিও অংশটি তৈরি করার জন্য মিউজিক জেনারেশন কনফিগারেশন। |
বিডি জেনারেট মিউজিক ক্লায়েন্ট কনটেন্ট
সঙ্গীত শুরু করতে বা নিয়ন্ত্রণ করতে ব্যবহারকারীর ইনপুট প্রয়োজন।
| ক্ষেত্র | |
|---|---|
weightedPrompts[] | আবশ্যক। মডেল ইনপুট হিসেবে ওয়েটেড প্রম্পট। |
বিডিজেনারেট মিউজিকক্লায়েন্ট মেসেজ
BidiGenerateMusic কলে ক্লায়েন্ট কর্তৃক প্রেরিত বার্তা।
| ক্ষেত্র | |
|---|---|
ইউনিয়ন ফিল্ড | |
setup | ঐচ্ছিক। সেশন কনফিগারেশন শুধুমাত্র প্রথম ক্লায়েন্ট মেসেজে পাঠানো হয়। |
clientContent | ঐচ্ছিক। সঙ্গীত তৈরির ইনপুট হিসাবে ওয়েটেড প্রম্পট এবং সঙ্গীত তৈরির কনফিগারেশন। |
musicGenerationConfig | ঐচ্ছিক। সঙ্গীত তৈরির কনফিগারেশন। |
playbackControl | ঐচ্ছিক। সঙ্গীত তৈরির জন্য প্লেব্যাক নিয়ন্ত্রণ সংকেত। |
বিডি জেনারেট মিউজিক ফিল্টারড প্রম্পট
কারণসহ ফিল্টার করা প্রম্পট।
| ক্ষেত্র | |
|---|---|
filteredReason | শুধুমাত্র আউটপুট। এই কারণেই প্রম্পটটি ফিল্টার করা হয়েছিল। |
ইউনিয়ন ফিল্ড prompt । যে প্রম্পটটি ফিল্টার করা হয়েছিল। prompt নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
text | ঐচ্ছিক। পাঠ্য নির্দেশ। |
বিডি জেনারেট মিউজিক জেনারেশন কনফিগ
সঙ্গীত তৈরির কনফিগারেশন।
| ক্ষেত্র | |
|---|---|
temperature | ঐচ্ছিক। অডিও তৈরির তারতম্য নিয়ন্ত্রণ করে। উচ্চতর মান উচ্চতর ভেদাঙ্ক তৈরি করে। পরিসর হলো [0.0, 3.0]। ডিফল্ট হলো 1.1। |
topK | ঐচ্ছিক। মডেলটি আউটপুটের জন্য কীভাবে টোকেন নির্বাচন করবে তা এটি নিয়ন্ত্রণ করে। সর্বোচ্চ সম্ভাবনাসহ শীর্ষ K সংখ্যক টোকেন নমুনা হিসেবে নির্বাচন করে। পরিসর হলো [১, ১০০০]। ডিফল্ট মান হলো ৪০। |
seed | ঐচ্ছিক। অডিও তৈরির জন্য সিড। সেট করা না থাকলে, অনুরোধটি এলোমেলোভাবে তৈরি একটি সিড ব্যবহার করে। |
guidance | ঐচ্ছিক। মডেলটি নির্দেশাবলী কতটা নিবিড়ভাবে অনুসরণ করবে তা এটি নিয়ন্ত্রণ করে। উচ্চতর নির্দেশিকা আরও নিবিড়ভাবে অনুসরণ করে, কিন্তু পরিবর্তনগুলিকে আরও আকস্মিক করে তুলবে। পরিসর হলো [0.0, 6.0]। ডিফল্ট হলো 4.0। |
bpm | ঐচ্ছিক। প্রতি মিনিটে স্পন্দন সংখ্যা। পরিসর হলো [৬০, ২০০]। |
density | ঐচ্ছিক। শব্দের ঘনত্ব। পরিসর হলো [0.0, 1.0]। |
brightness | ঐচ্ছিক। উচ্চতর মান আরও উজ্জ্বল অডিও তৈরি করে। পরিসর হলো [0.0, 1.0]। |
scale | ঐচ্ছিক। উৎপাদিত সঙ্গীতের স্কেল। |
muteBass | ঐচ্ছিক। অডিও আউটপুটে বেস থাকা উচিত নয়। |
muteDrums | ঐচ্ছিক। অডিও আউটপুটে ড্রামস থাকা উচিত নয়। |
onlyBassAndDrums | ঐচ্ছিক। অডিও আউটপুটে শুধু বেস এবং ড্রামস থাকবে। |
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[] | শুধুমাত্র আউটপুট। মডেল দ্বারা তৈরি অডিও খণ্ডগুলো। |
বিডিজেনারেট মিউজিক সার্ভার মেসেজ
BidiGenerateMusic কলটির প্রতিক্রিয়া বার্তা।
| ক্ষেত্র | |
|---|---|
ইউনিয়ন ফিল্ড messageType বার্তার ধরণ। messageType নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
setupComplete | শুধুমাত্র আউটপুট। সেটআপ সম্পূর্ণ হলে ক্লায়েন্টের পাঠানো |
serverContent | শুধুমাত্র আউটপুট। ক্লায়েন্টের বার্তার জবাবে মডেল দ্বারা তৈরি বিষয়বস্তু। |
filteredPrompt | শুধুমাত্র আউটপুট। কারণসহ ফিল্টার করা প্রম্পট। |
warning | শুধুমাত্র আউটপুট। সার্ভার থেকে আসা সতর্কবার্তা। সতর্কবার্তার কারণে স্ট্রিমটি বন্ধ হবে না। |
BidiGenerateMusicSetup
বার্তাটি প্রথম (এবং শুধুমাত্র প্রথম) BidiGenerateMusicClientMessage এ পাঠানো হবে।
অতিরিক্ত কোনো বার্তা পাঠানোর আগে ক্লায়েন্টদের BidiGenerateMusicSetupComplete বার্তাটির জন্য অপেক্ষা করা উচিত।
| ক্ষেত্র | |
|---|---|
model | আবশ্যক। মডেলের রিসোর্স নাম। এটি মডেলের ব্যবহারের জন্য একটি আইডি হিসেবে কাজ করে। ফরম্যাট: |
বিডি জেনারেট মিউজিক সেটআপ সম্পূর্ণ
এই প্রকারে কোনো ক্ষেত্র নেই।
ক্লায়েন্টের পাঠানো BidiGenerateMusicSetup বার্তার জবাবে এটি পাঠানো হয়েছে।
ওয়েটেডপ্রম্পট
মডেল ইনপুট হিসাবে ওয়েটেড প্রম্পট।
| ক্ষেত্র | |
|---|---|
weight | প্রয়োজনীয়। নির্দেশনার গুরুত্ব। নির্দেশনার আপেক্ষিক গুরুত্ব নিয়ন্ত্রণ করতে ওয়েট ব্যবহার করা হয়। বেশি ওয়েট কম ওয়েটের চেয়ে বেশি গুরুত্বপূর্ণ। এই BidiGenerateMusicClientContent-এর অন্তর্ভুক্ত সমস্ত weighted_prompt-এর ওয়েট অবশ্যই সব ০ হবে না। এই BidiGenerateMusicClientContent মেসেজের অন্তর্ভুক্ত সমস্ত weighted_prompt-এর ওয়েট নর্মালাইজ করা হবে। |
ইউনিয়ন ফিল্ড | |
text | টেক্সট প্রম্পট। |
প্রকারভেদ সম্পর্কে আরও তথ্য
এপিআই-তে ব্যবহৃত প্রকারগুলো সম্পর্কে আরও তথ্যের জন্য পাইথন এসডিকে দেখুন।