Package google.assistant.embedded.v1alpha1

সূচক

এমবেডেড অ্যাসিস্ট্যান্ট

Google সহকারী API প্রয়োগ করে এমন পরিষেবা।

কথোপকথন

rpc Converse( ConverseRequest ) returns ( ConverseResponse )

এমবেড করা সহকারী পরিষেবার সাথে একটি কথোপকথন শুরু করে বা চালিয়ে যায়৷ প্রতিটি কল একটি রাউন্ড-ট্রিপ সঞ্চালন করে, পরিষেবাতে একটি অডিও অনুরোধ পাঠায় এবং অডিও প্রতিক্রিয়া গ্রহণ করে। অডিও পাঠানোর সময় END_OF_UTTERANCE ইভেন্টের মতো ফলাফল পেতে দ্বিমুখী স্ট্রিমিং ব্যবহার করে৷

একটি কথোপকথন হল এক বা একাধিক জিআরপিসি সংযোগ, প্রতিটিতে একাধিক স্ট্রিম করা অনুরোধ এবং প্রতিক্রিয়া থাকে। উদাহরণস্বরূপ, ব্যবহারকারী বলে আমার কেনাকাটার তালিকায় যোগ করুন এবং সহকারী উত্তর দেয় আপনি কী যোগ করতে চান? . প্রথম gRPC বার্তায় স্ট্রিম করা অনুরোধ এবং প্রতিক্রিয়াগুলির ক্রম হতে পারে:

  • ConverseRequest.config
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseResponse.event_type.END_OF_UTTERANCE
  • ConverseResponse.result.microphone_mode.DIALOG_FOLLOW_ON
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out

ব্যবহারকারী তখন ব্যাগেল বলেন এবং সহকারী উত্তর দেয় ঠিক আছে, আমি আপনার কেনাকাটার তালিকায় ব্যাগেল যোগ করেছি । এটি Converse পদ্ধতিতে আরেকটি জিআরপিসি সংযোগ কল হিসাবে পাঠানো হয়, আবার স্ট্রিম করা অনুরোধ এবং প্রতিক্রিয়া সহ, যেমন:

  • ConverseRequest.config
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseRequest.audio_in
  • ConverseResponse.event_type.END_OF_UTTERANCE
  • ConverseResponse.result.microphone_mode.CLOSE_MICROPHONE
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out
  • ConverseResponse.audio_out

যদিও প্রতিক্রিয়াগুলির সুনির্দিষ্ট ক্রম নিশ্চিত করা হয় না, অনুক্রমিক ConverseResponse.audio_out বার্তাগুলিতে সর্বদা অডিওর অনুক্রমিক অংশ থাকবে৷

অনুমোদন

নিম্নলিখিত OAuth সুযোগ প্রয়োজন:

  • https://www.googleapis.com/auth/assistant-sdk-prototype

আরও তথ্যের জন্য, প্রমাণীকরণ নির্দেশিকা দেখুন।

AudioInConfig

পরবর্তী অনুরোধে সরবরাহ করা audio_in ডেটা কীভাবে প্রক্রিয়া করবেন তা নির্দিষ্ট করে। প্রস্তাবিত সেটিংসের জন্য, Google সহকারী gRPC API সেরা অনুশীলনগুলি দেখুন।

ক্ষেত্র
encoding

Encoding

সমস্ত audio_in বার্তাগুলিতে পাঠানো অডিও ডেটার প্রয়োজনীয় এনকোডিং৷

sample_rate_hertz

int32

সমস্ত audio_in বার্তাগুলিতে পাঠানো অডিও ডেটার প্রয়োজনীয় নমুনা হার (হার্টজে)। বৈধ মান 16000-24000 থেকে, কিন্তু 16000 সর্বোত্তম। সেরা ফলাফলের জন্য, অডিও উৎসের স্যাম্পলিং রেট 16000 Hz এ সেট করুন। যদি তা সম্ভব না হয়, তাহলে অডিও উৎসের স্থানীয় নমুনা হার ব্যবহার করুন (পুনরায় নমুনা নেওয়ার পরিবর্তে)।

এনকোডিং

অডিও বার্তায় পাঠানো ডেটার অডিও এনকোডিং। অডিও অবশ্যই এক-চ্যানেল (মনো) হতে হবে। সমর্থিত একমাত্র ভাষা হল "en-US"।

এনামস
ENCODING_UNSPECIFIED উল্লিখিত না. google.rpc.Code.INVALID_ARGUMENT ফলাফল প্রদান করবে।
LINEAR16 আনকম্প্রেসড 16-বিট স্বাক্ষরিত লিটল-এন্ডিয়ান নমুনা (লিনিয়ার পিসিএম)। এই এনকোডিং কোন শিরোনাম, শুধুমাত্র কাঁচা অডিও বাইট অন্তর্ভুক্ত.
FLAC FLAC (ফ্রি লসলেস অডিও কোডেক) হল প্রস্তাবিত এনকোডিং কারণ এটি ক্ষতিহীন--অতএব স্বীকৃতি আপস করা হয় না--এবং LINEAR16 এর প্রায় অর্ধেক ব্যান্ডউইথের প্রয়োজন। এই এনকোডিংয়ে অডিও ডেটার পরে FLAC স্ট্রিম হেডার অন্তর্ভুক্ত রয়েছে। এটি 16-বিট এবং 24-বিট নমুনা সমর্থন করে, তবে, STREAMINFO এর সমস্ত ক্ষেত্র সমর্থিত নয়।

অডিওআউট

প্রশ্নের সহকারীর প্রতিক্রিয়া ধারণকারী অডিও। অডিও ডেটার ক্রমিক খণ্ডগুলি ক্রমিক ConverseResponse বার্তাগুলিতে প্রাপ্ত হয়।

ক্ষেত্র
audio_data

bytes

আউটপুট-শুধুমাত্র অডিও ডেটা সহ ক্যোয়ারীতে সহকারীর প্রতিক্রিয়া। অডিও ডেটার ক্রমিক খণ্ডগুলি ক্রমিক ConverseResponse বার্তাগুলিতে প্রাপ্ত হয়।

AudioOutConfig

যখন এটি audio_out বার্তা ফেরত দেয় তখন সার্ভার ব্যবহার করার জন্য পছন্দসই বিন্যাসটি নির্দিষ্ট করে।

ক্ষেত্র
encoding

Encoding

প্রয়োজনীয় অডিও ডেটার এনকোডিং সমস্ত audio_out বার্তাগুলিতে ফেরত দেওয়া।

sample_rate_hertz

int32

প্রয়োজনীয় audio_out বার্তাগুলিতে ফিরে আসা অডিও ডেটার হার্টজে নমুনা হার৷ বৈধ মানগুলি হল: 16000-24000৷

volume_percentage

int32

ডিভাইসের অডিও আউটপুটের বর্তমান ভলিউম সেটিং প্রয়োজন । বৈধ মান হল 1 থেকে 100 (1% থেকে 100% অনুরূপ)।

এনকোডিং

অডিও বার্তায় ডেটার অডিও এনকোডিং ফিরে এসেছে। সমস্ত এনকোডিং হল কাঁচা অডিও বাইট যার কোনো শিরোনাম নেই, নীচে নির্দেশিত ছাড়া।

এনামস
ENCODING_UNSPECIFIED উল্লিখিত না. google.rpc.Code.INVALID_ARGUMENT ফলাফল প্রদান করবে।
LINEAR16 আনকম্প্রেসড 16-বিট স্বাক্ষরিত লিটল-এন্ডিয়ান নমুনা (লিনিয়ার পিসিএম)।
MP3 MP3 অডিও এনকোডিং। নমুনা হার পেলোডে এনকোড করা হয়।
OPUS_IN_OGG ওপাস-এনকোডেড অডিও একটি ogg পাত্রে মোড়ানো। ফলাফলটি হবে একটি ফাইল যা নেটিভভাবে অ্যান্ড্রয়েডে এবং কিছু ব্রাউজারে (যেমন ক্রোম) চালানো যেতে পারে। একই বিটরেট ব্যবহার করার সময় এনকোডিংয়ের গুণমান MP3 এর তুলনায় যথেষ্ট বেশি। নমুনা হার পেলোডে এনকোড করা হয়।

ConverseConfig

ConverseRequest বার্তাগুলি কীভাবে প্রক্রিয়া করতে হয় তা নির্দিষ্ট করে।

ক্ষেত্র
audio_in_config

AudioInConfig

প্রয়োজনীয় পরবর্তী ইনকামিং অডিও কিভাবে প্রক্রিয়া করতে হবে তা নির্দিষ্ট করে।

audio_out_config

AudioOutConfig

প্রয়োজনীয় অডিওটি কীভাবে ফরম্যাট করতে হবে তা নির্দিষ্ট করে যা ফেরত দেওয়া হবে।

converse_state

ConverseState

প্রয়োজনীয় বর্তমান ডায়ালগ অবস্থার প্রতিনিধিত্ব করে।

ConverseRequest

ক্লায়েন্ট কর্তৃক প্রেরিত শীর্ষ-স্তরের বার্তা। ক্লায়েন্টদের অবশ্যই কমপক্ষে দুটি এবং সাধারণত অসংখ্য ConverseRequest বার্তা পাঠাতে হবে। প্রথম বার্তাটিতে অবশ্যই একটি config বার্তা থাকতে হবে এবং এতে audio_in ডেটা থাকা উচিত নয়৷ সমস্ত পরবর্তী বার্তাগুলিতে audio_in ডেটা থাকতে হবে এবং একটি config বার্তা থাকা উচিত নয়৷

ক্ষেত্র
ইউনিয়ন ক্ষেত্র converse_request । প্রতিটি ConverseRequest এ এই ক্ষেত্রগুলির মধ্যে একটি নির্দিষ্ট করা আবশ্যক। converse_request নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
config

ConverseConfig

config বার্তা সনাক্তকারীকে তথ্য প্রদান করে যেটি কীভাবে অনুরোধটি প্রক্রিয়া করতে হবে তা নির্দিষ্ট করে। প্রথম ConverseRequest বার্তাটিতে একটি config বার্তা থাকতে হবে।

audio_in

bytes

অডিও তথ্য স্বীকৃত হবে. অডিও ডেটার ক্রমিক খণ্ডগুলি অনুক্রমিক ConverseRequest বার্তাগুলিতে পাঠানো হয়। প্রথম ConverseRequest বার্তায় audio_in ডেটা থাকতে হবে না এবং পরবর্তী সমস্ত ConverseRequest বার্তাগুলিতে audio_in ডেটা থাকতে হবে। AudioInConfig এ উল্লিখিত হিসাবে অডিও বাইট এনকোড করা আবশ্যক। অডিও প্রায় রিয়েল-টাইমে পাঠাতে হবে (প্রতি সেকেন্ডে 16000 নমুনা)। অডিও উল্লেখযোগ্যভাবে দ্রুত বা ধীর পাঠানো হলে একটি ত্রুটি ফেরত দেওয়া হবে।

কথোপকথন প্রতিক্রিয়া

ক্লায়েন্ট দ্বারা প্রাপ্ত শীর্ষ-স্তরের বার্তা। এক বা একাধিক ConverseResponse বার্তাগুলির একটি সিরিজ ক্লায়েন্টের কাছে ফেরত পাঠানো হয়।

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

Status

শুধুমাত্র আউটপুট সেট করা থাকলে, একটি google.rpc.Status বার্তা প্রদান করে যা অপারেশনের জন্য ত্রুটি নির্দিষ্ট করে। প্রক্রিয়াকরণের সময় কোনো ত্রুটি দেখা দিলে, এই বার্তাটি সেট করা হবে এবং আর কোনো বার্তা পাঠানো হবে না।

event_type

EventType

শুধুমাত্র আউটপুট ইভেন্টের ধরন নির্দেশ করে।

audio_out

AudioOut

শুধুমাত্র-আউটপুট প্রশ্নের উত্তর সহকারীর প্রতিক্রিয়া ধারণকারী অডিও।

result

ConverseResult

শুধুমাত্র-আউটপুট ব্যবহারকারীর কথ্য প্রশ্নের জন্য শব্দার্থিক ফলাফল।

ইভেন্টের ধরণ

ইভেন্টের ধরন নির্দেশ করে।

এনামস
EVENT_TYPE_UNSPECIFIED কোনো ইভেন্ট উল্লেখ করা হয়নি।
END_OF_UTTERANCE এই ইভেন্টটি নির্দেশ করে যে সার্ভার ব্যবহারকারীর বক্তৃতা উচ্চারণের সমাপ্তি সনাক্ত করেছে এবং কোন অতিরিক্ত বক্তৃতা আশা করে না। অতএব, সার্ভার অতিরিক্ত অডিও প্রক্রিয়া করবে না (যদিও এটি পরবর্তীতে অতিরিক্ত ফলাফল দিতে পারে)। ক্লায়েন্টের অতিরিক্ত অডিও ডেটা পাঠানো বন্ধ করা উচিত, gRPC সংযোগ অর্ধেক বন্ধ করা উচিত, এবং সার্ভার gRPC সংযোগ বন্ধ না করা পর্যন্ত কোনো অতিরিক্ত ফলাফলের জন্য অপেক্ষা করুন।

কথোপকথন ফলাফল

ব্যবহারকারীর কথ্য প্রশ্নের শব্দার্থিক ফলাফল।

ক্ষেত্র
spoken_request_text

string

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

spoken_response_text

string

শুধুমাত্র-আউটপুট সহকারীর কথ্য প্রতিক্রিয়ার পাঠ্য। এটি শুধুমাত্র একটি IFTTT কর্মের জন্য ফেরত দেওয়া হয়।

conversation_state

bytes

পরবর্তী ConverseRequest এর জন্য শুধুমাত্র আউটপুট স্টেট তথ্য। এই মানটি ক্লায়েন্টে সংরক্ষণ করা উচিত এবং পরবর্তী ConverseRequest এর সাথে conversation_state ফিরে আসা উচিত। (ক্লায়েন্টকে এই মানটি ব্যাখ্যা করার বা অন্যথায় ব্যবহার করার প্রয়োজন নেই।) ডিভাইস পুনরায় চালু করার সময় এই তথ্যটি সংরক্ষণ করার প্রয়োজন নেই।

microphone_mode

MicrophoneMode

এই Converse RPC প্রক্রিয়া করার পরে শুধুমাত্র আউটপুট মাইক্রোফোনের মোড নির্দিষ্ট করে।

volume_percentage

int32

শুধুমাত্র আউটপুট আপডেট ভলিউম স্তর. "ভলিউম বাড়ান" বা "ভলিউম লেভেল 4 সেট করুন" এর মতো ভয়েস কমান্ড স্বীকৃত না হওয়া পর্যন্ত মানটি 0 বা বাদ দেওয়া হবে (কোনও পরিবর্তনের ইঙ্গিত নেই) যে ক্ষেত্রে মানটি 1 থেকে 100 এর মধ্যে হবে (নতুন ভলিউমের সাথে সম্পর্কিত 1% থেকে 100% পর্যন্ত)। সাধারণত, audio_out ডেটা চালানোর সময় একজন ক্লায়েন্টের এই ভলিউম স্তরটি ব্যবহার করা উচিত এবং এই মানটিকে বর্তমান ভলিউম স্তর হিসাবে ধরে রাখা উচিত এবং পরবর্তী ConverseRequest এর AudioOutConfig এ সরবরাহ করা উচিত। (কিছু ক্লায়েন্ট বর্তমান ভলিউম স্তর পরিবর্তন করার অনুমতি দেওয়ার জন্য অন্যান্য উপায়গুলিও প্রয়োগ করতে পারে, উদাহরণস্বরূপ, একটি নব প্রদান করে যা ব্যবহারকারী ঘুরতে পারে।)

মাইক্রোফোন মোড

Converse RPC সম্পূর্ণ হওয়ার পর মাইক্রোফোনের সম্ভাব্য অবস্থা।

এনামস
MICROPHONE_MODE_UNSPECIFIED কোন মোড নির্দিষ্ট করা নেই.
CLOSE_MICROPHONE পরিষেবাটি ব্যবহারকারীর কাছ থেকে একটি ফলো-অন প্রশ্ন আশা করছে না। ব্যবহারকারী এটিকে পুনরায় সক্রিয় না করা পর্যন্ত মাইক্রোফোনটি বন্ধ থাকা উচিত।
DIALOG_FOLLOW_ON পরিষেবাটি ব্যবহারকারীর কাছ থেকে একটি ফলো-অন প্রশ্ন আশা করছে। AudioOut প্লেব্যাক সম্পূর্ণ হলে মাইক্রোফোনটি পুনরায় খোলা উচিত (নতুন অডিও পাঠানোর জন্য একটি নতুন Converse RPC কল শুরু করে)।

কনভার্সস্টেট

বর্তমান ডায়ালগ অবস্থা সম্পর্কে তথ্য প্রদান করে।

ক্ষেত্র
conversation_state

bytes

প্রয়োজনীয় পূর্ববর্তী ConverseResponseconversation_state মান ফিরে এসেছে। বাদ দিন (ক্ষেত্র সেট করবেন না) যদি পূর্বে কোন ConverseResponse না থাকে। যদি একটি পূর্ববর্তী ConverseResponse ছিল, এই ক্ষেত্রটি বাদ দেবেন না; এটি করা সেই কথোপকথনটি শেষ করবে (এবং এই নতুন অনুরোধটি একটি নতুন কথোপকথন শুরু করবে)।