কমান্ড পরিচালনা করুন

Google অ্যাসিস্ট্যান্ট থেকে কমান্ডের প্রতিক্রিয়া হিসাবে আপনার ডিভাইসে কাস্টম কোড চালানোর জন্য এই নির্দেশাবলী অনুসরণ করুন।

নমুনা চালান

এখন আপনি একটি বৈশিষ্ট্য সংজ্ঞায়িত করেছেন এবং মডেলটি আপডেট করেছেন, Google সহকারী উপযুক্ত প্রশ্নের জন্য একটি চালু/বন্ধ কমান্ড ফেরত পাঠাচ্ছে তা নিশ্চিত করতে পরীক্ষা করুন।

googlesamples-assistant-hotword --device-model-id my-model

নিম্নলিখিত ক্যোয়ারী চেষ্টা করুন:

ওকে গুগল, চালু করুন।

আপনি কনসোল আউটপুট নিম্নলিখিত বিবৃতি দেখতে হবে. যদি আপনি না করেন, তাহলে সমস্যা সমাধানের নির্দেশাবলী দেখুন।

ON_RECOGNIZING_SPEECH_FINISHED:
  {'text': 'turn on'}
ON_DEVICE_ACTION:
  {'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
  'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
  'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}

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

সোর্স কোড পান

আপনি এখন আপনার নিজের প্রকল্প শুরু করতে প্রস্তুত:

git clone https://github.com/googlesamples/assistant-sdk-python

কমান্ড হ্যান্ডলার খুঁজুন

নমুনা কোডের hotword.py ফাইলটি অনুরোধ পাঠাতে এবং Google সহকারী থেকে প্রতিক্রিয়া পেতে SDK ব্যবহার করে।

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py

নিম্নলিখিত হ্যান্ডলার সংজ্ঞা জন্য অনুসন্ধান করুন:

def process_event(event):

বর্তমানে, এই ফাংশনটি প্রতিটি ডিভাইস অ্যাকশন ইভেন্টের নাম এবং নিম্নলিখিত লাইন সহ যেকোনো পরামিতি প্রিন্ট করে:

print('Do command', command, 'with params', str(params))

এই কোডটি action.devices.commands.OnOff কমান্ড পরিচালনা করে। এই কমান্ডটি OnOff বৈশিষ্ট্য স্কিমার অংশ। বর্তমানে, এই কোডটি কনসোলে আউটপুট প্রিন্ট করে। আপনি আপনার প্রকল্পে যা চান তা করতে আপনি এই কোডটি পরিবর্তন করতে পারেন। process_event()print কমান্ডের অধীনে নিম্নলিখিত ব্লক যোগ করুন।

print('Do command', command, 'with params', str(params)) # Add the following:
if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
    else:
        print('Turning the LED off.')

আউটপুট দেখতে সরাসরি আপনার পরিবর্তিত সোর্স কোড চালান।

python hotword.py --device-model-id my-model

আগের মত একই প্রশ্ন ব্যবহার করুন:

ওকে গুগল, চালু করুন।

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

পরবর্তী পদক্ষেপ - রাস্পবেরি পাই

এখন আপনি কিভাবে ইনকামিং কমান্ড পরিচালনা করতে জানেন, একটি LED আলো করতে নমুনা কোড পরিবর্তন করুন। আপনি যদি রাস্পবেরি পাই ব্যবহার করেন তবে এর জন্য কিছু অতিরিক্ত হার্ডওয়্যারের প্রয়োজন হবে।

GPIO প্যাকেজ আমদানি করুন

রাস্পবেরি পাই-তে সাধারণ উদ্দেশ্য ইনপুট/আউটপুট (GPIO) পিনে সফ্টওয়্যার অ্যাক্সেস সহজ করতে, ভার্চুয়াল পরিবেশে RPi.GPIO প্যাকেজ ইনস্টল করুন।

pip install RPi.GPIO

নমুনা পরিবর্তন করুন

hotword.py ফাইলটি খুলুন।

nano hotword.py

hotword.py ফাইলে, Pi-এ GPIO পিন নিয়ন্ত্রণ করতে RPi.GPIO মডিউল আমদানি করুন। অন্যান্য import বিবৃতির কাছাকাছি নিম্নলিখিত বিবৃতি রাখুন:

import RPi.GPIO as GPIO

আউটপুট পিন প্রাথমিকভাবে নিম্ন লজিক অবস্থায় সেট করতে কোডটি পরিবর্তন করুন। ইভেন্টগুলি প্রক্রিয়া করার আগে main() ফাংশনে এটি করুন:

with Assistant(credentials, device_model_id) as assistant:
    events = assistant.start()

    device_id = assistant.device_id
    print('device_model_id:', device_model_id)
    print('device_id:', device_id + '\n')
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
        ...

process_event() এ আপনার যোগ করা কোডটি পরিবর্তন করুন। অন ​​কমান্ড প্রাপ্ত হলে, পিনটিকে উচ্চ লজিক অবস্থায় সেট করুন। অফ কমান্ডটি প্রাপ্ত হলে, পিনটিকে নিম্ন লজিক অবস্থায় সেট করুন।

if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
        GPIO.output(25, 1)
    else:
        print('Turning the LED off.')
        GPIO.output(25, 0)

আপনার পরিবর্তনগুলি সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

নমুনা চালান

পরিবর্তিত নমুনা কোড চালান.

python hotword.py --device-model-id my-model

আগের মত একই প্রশ্ন ব্যবহার করুন. LED চালু করা উচিত।

এটা মাত্র শুরু। আরও বৈশিষ্ট্য এবং হ্যান্ডলার যোগ করতে শিখুন।