লিরিয়া রিয়েলটাইম মিউজিক জেনারেশন 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-এ প্রকাশ করা হয়নি তাই ক্ষেত্রটি বার্তার শীর্ষ-স্তরে প্রদর্শিত হবে।)
বার্তা এবং ঘটনা
অডিওচঙ্ক
একটি অডিও খণ্ড প্রতিনিধিত্ব.
ক্ষেত্র | |
---|---|
ইউনিয়ন ক্ষেত্রের | |
data | অডিও খণ্ডের কাঁচা বাইট. |
mimeType | অডিও খণ্ডের বিষয়বস্তুর MIME প্রকার, যেমন "audio/wav"। |
sourceMetadata | শুধুমাত্র আউটপুট। এই অডিও খণ্ড তৈরি করার জন্য প্রম্পট এবং কনফিগারেশন ব্যবহার করা হয়। |
উৎস মেটাডেটা
এই অডিও খণ্ডটি তৈরি করার জন্য ব্যবহৃত ইনপুট উত্স সম্পর্কে মেটাডেটা৷
ক্ষেত্র | |
---|---|
clientContent | এই অডিও খণ্ড তৈরির জন্য ওজনযুক্ত প্রম্পট। |
musicGenerationConfig | এই অডিও খণ্ড তৈরি করার জন্য সঙ্গীত প্রজন্মের কনফিগারেশন। |
বিডি জেনারেট মিউজিক ক্লায়েন্ট কনটেন্ট
সঙ্গীত শুরু করতে বা পরিচালনা করতে ব্যবহারকারীর ইনপুট।
ক্ষেত্র | |
---|---|
weightedPrompts[] | প্রয়োজন। মডেল ইনপুট হিসাবে ওজনযুক্ত প্রম্পট। |
বিডিজেনারেট মিউজিকক্লায়েন্ট মেসেজ
বিডিজেনারেট মিউজিক কলে ক্লায়েন্টের পাঠানো বার্তা।
ক্ষেত্র | |
---|---|
ইউনিয়ন ক্ষেত্রের | |
setup | ঐচ্ছিক। সেশন কনফিগারেশন শুধুমাত্র প্রথম ক্লায়েন্ট বার্তায় পাঠানো হয়েছে। |
clientContent | ঐচ্ছিক। মিউজিক জেনারেশনের ইনপুট হিসেবে ওয়েটেড প্রম্পট এবং মিউজিক জেনারেশন কনফিগারেশন। |
musicGenerationConfig | ঐচ্ছিক। সঙ্গীত প্রজন্মের জন্য কনফিগারেশন. |
playbackControl | ঐচ্ছিক। সঙ্গীত প্রজন্মের জন্য প্লেব্যাক নিয়ন্ত্রণ সংকেত. |
বিডি জেনারেট মিউজিক ফিল্টারড প্রম্পট
কারণ সহ প্রম্পট ফিল্টার.
ক্ষেত্র | |
---|---|
filteredReason | শুধুমাত্র আউটপুট। যে কারণে প্রম্পট ফিল্টার করা হয়েছে। |
ইউনিয়ন ফিল্ড prompt . প্রম্পট যে ফিল্টার করা হয়েছে. prompt নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
text | ঐচ্ছিক। টেক্সট প্রম্পট। |
বিডি জেনারেট মিউজিক জেনারেশন কনফিগ
সঙ্গীত প্রজন্মের জন্য কনফিগারেশন.
ক্ষেত্র | |
---|---|
temperature | ঐচ্ছিক। অডিও প্রজন্মের বৈচিত্র্য নিয়ন্ত্রণ করে। উচ্চতর মান উচ্চ বৈচিত্র্য তৈরি করে। পরিসীমা হল [0.0, 3.0]। ডিফল্ট হল 1.1। |
topK | ঐচ্ছিক। মডেল কিভাবে আউটপুট জন্য টোকেন নির্বাচন করে নিয়ন্ত্রণ করে। সর্বোচ্চ সম্ভাবনা সহ topK টোকেনগুলির নমুনা। পরিসীমা হল [1, 1000]। ডিফল্ট হল 40। |
seed | ঐচ্ছিক। বীজ অডিও প্রজন্ম। যদি সেট না করা থাকে, অনুরোধটি এলোমেলোভাবে উৎপন্ন বীজ ব্যবহার করে। |
guidance | ঐচ্ছিক। মডেল কতটা ঘনিষ্ঠভাবে প্রম্পট অনুসরণ করে তা নিয়ন্ত্রণ করে। উচ্চতর নির্দেশিকা আরও ঘনিষ্ঠভাবে অনুসরণ করে, কিন্তু পরিবর্তনগুলি আরও আকস্মিক করে তুলবে। পরিসীমা হল [0.0, 6.0]। ডিফল্ট হল 4.0। |
bpm | ঐচ্ছিক। প্রতি মিনিটে বিট। পরিসীমা হল [60, 200]। |
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 | B মেজর বা A ফ্ল্যাট মাইনর |
বিডি জেনারেট মিউজিক প্লেব্যাক কন্ট্রোল
সঙ্গীত প্রজন্মের জন্য প্লেব্যাক নিয়ন্ত্রণ।
এনামস | |
---|---|
PLAYBACK_CONTROL_UNSPECIFIED | এই মান অব্যবহৃত. |
PLAY | সঙ্গীত তৈরি করা শুরু করুন। |
PAUSE | সঙ্গীত প্রজন্ম ধরে রাখুন। বর্তমান অবস্থান থেকে পুনরায় শুরু করতে PLAY ব্যবহার করুন। |
STOP | মিউজিক জেনারেশন বন্ধ করুন এবং কনটেক্সট রিসেট করুন (প্রম্পট রাখা হয়েছে)। মিউজিক জেনারেশন রিস্টার্ট করতে প্লে ব্যবহার করুন। |
RESET_CONTEXT | মিউজিক জেনারেশন বন্ধ না করে কনটেক্সট রিসেট করুন (প্রম্পট ধরে রাখা হয়েছে)। |
বিডিজেনারেট মিউজিক সার্ভার সামগ্রী
ক্লায়েন্ট বার্তাগুলির প্রতিক্রিয়া হিসাবে মডেল দ্বারা উত্পন্ন ক্রমবর্ধমান সার্ভার আপডেট৷
বিষয়বস্তু যত তাড়াতাড়ি সম্ভব তৈরি করা হয়, এবং বাস্তব সময়ে নয়। ক্লায়েন্টরা বাফার করতে এবং রিয়েল টাইমে এটি চালাতে বেছে নিতে পারে।
ক্ষেত্র | |
---|---|
audioChunks[] | শুধুমাত্র আউটপুট। অডিও খণ্ড যা মডেল তৈরি করেছে। |
বিডিজেনারেট মিউজিক সার্ভার মেসেজ
বিডিজেনারেট মিউজিক কলের প্রতিক্রিয়া বার্তা।
ক্ষেত্র | |
---|---|
ইউনিয়ন ক্ষেত্রের messageType । বার্তার ধরন। messageType নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
setupComplete | শুধুমাত্র আউটপুট। সেটআপ সম্পূর্ণ হলে ক্লায়েন্টের কাছ থেকে একটি |
serverContent | শুধুমাত্র আউটপুট। ক্লায়েন্ট বার্তার প্রতিক্রিয়ায় মডেল দ্বারা উত্পন্ন সামগ্রী। |
filteredPrompt | শুধুমাত্র আউটপুট। কারণ সহ প্রম্পট ফিল্টার. |
warning | শুধুমাত্র আউটপুট। সার্ভার থেকে সতর্কতা বার্তা। সতর্কতা স্ট্রীমটি বন্ধ করবে না। |
বিডিজেনারেট মিউজিক সেটআপ
বার্তা পাঠানো হবে প্রথম (এবং শুধুমাত্র প্রথমটিতে) BidiGenerateMusicClientMessage
।
কোনো অতিরিক্ত বার্তা পাঠানোর আগে গ্রাহকদের একটি BidiGenerateMusicSetupComplete
বার্তার জন্য অপেক্ষা করা উচিত।
ক্ষেত্র | |
---|---|
model | প্রয়োজন। মডেলের সম্পদের নাম। এটি মডেল ব্যবহার করার জন্য একটি আইডি হিসাবে কাজ করে। বিন্যাস: |
বিডি জেনারেট মিউজিক সেটআপ সম্পূর্ণ
এই ধরনের কোন ক্ষেত্র নেই.
ক্লায়েন্টের কাছ থেকে একটি BidiGenerateMusicSetup
বার্তার জবাবে পাঠানো হয়েছে।
ওয়েটেড প্রম্পট
মডেল ইনপুট হিসাবে ওজনযুক্ত প্রম্পট।
ক্ষেত্র | |
---|---|
weight | প্রয়োজন। প্রম্পট ওজন. প্রম্পটের আপেক্ষিক গুরুত্ব নিয়ন্ত্রণ করতে ওজন ব্যবহার করা হয়। কম ওজনের চেয়ে বেশি ওজন বেশি গুরুত্বপূর্ণ। এই BidiGenerateMusicClientContent-এর সমস্ত ওয়েটেড_প্রম্পটের ওজন অবশ্যই 0 হওয়া উচিত নয়। এই BidiGenerateMusicClientContent বার্তার সমস্ত ওয়েটেড_প্রম্পটের ওজন স্বাভাবিক করা হবে। |
ইউনিয়ন ফিল্ড | |
text | টেক্সট প্রম্পট। |
প্রকার সম্পর্কে আরও তথ্য
API দ্বারা ব্যবহৃত প্রকারগুলি সম্পর্কে আরও তথ্যের জন্য, Python SDK দেখুন।