Package google.assistant.embedded.v1alpha1

فهرست مطالب

EmbeddedAssistant

سرویسی که Google Assistant API را پیاده سازی می کند.

گفتگو کنید

rpc Converse( ConverseRequest ) returns ( ConverseResponse )

مکالمه را با سرویس دستیار تعبیه شده آغاز می کند یا ادامه می دهد. هر تماس یک رفت و برگشت انجام می دهد، یک درخواست صوتی به سرویس ارسال می کند و پاسخ صوتی را دریافت می کند. از جریان دو طرفه برای دریافت نتایج، مانند رویداد END_OF_UTTERANCE ، هنگام ارسال صدا استفاده می کند.

مکالمه یک یا چند اتصال gRPC است که هر کدام از چندین درخواست و پاسخ جریانی تشکیل شده است. به عنوان مثال، کاربر می گوید Add to my shopping list و دستیار پاسخ می دهد چه چیزی را می خواهید اضافه کنید؟ . دنباله درخواست ها و پاسخ های جاری در اولین پیام 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

سپس کاربر می گوید bagels و دستیار پاسخ می دهد OK، من شیرینی ها را به لیست خرید شما اضافه کرده ام . این به عنوان یک تماس دیگر اتصال gRPC به متد 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

برای اطلاعات بیشتر، به راهنمای Auth مراجعه کنید.

AudioInConfig

نحوه پردازش داده های audio_in را که در درخواست های بعدی ارائه می شود، مشخص می کند. برای تنظیمات توصیه‌شده، بهترین شیوه‌های gRPC API دستیار Google را ببینید.

زمینه های
encoding

Encoding

رمزگذاری مورد نیاز داده های صوتی ارسال شده در همه پیام های audio_in .

sample_rate_hertz

int32

نرخ نمونه مورد نیاز (به هرتز) از داده های صوتی ارسال شده در همه پیام های audio_in . مقادیر معتبر از 16000-24000 هستند، اما 16000 بهینه است. برای بهترین نتیجه، نرخ نمونه برداری از منبع صوتی را روی 16000 هرتز تنظیم کنید. اگر این امکان پذیر نیست، از نرخ نمونه بومی منبع صوتی استفاده کنید (به جای نمونه برداری مجدد).

رمزگذاری

رمزگذاری صوتی داده های ارسال شده در پیام صوتی. صدا باید تک کاناله (مونو) باشد. تنها زبان پشتیبانی شده "en-US" است.

Enums
ENCODING_UNSPECIFIED مشخص نشده است. نتیجه google.rpc.Code.INVALID_ARGUMENT را برمی گرداند.
LINEAR16 نمونه‌های 16 بیتی امضا نشده فشرده نشده (PCM خطی). این رمزگذاری شامل هدر نیست، فقط بایت های صوتی خام را شامل می شود.
FLAC FLAC (Free Lossless Audio Codec) رمزگذاری توصیه شده است زیرا بدون تلفات است - بنابراین تشخیص به خطر نمی افتد - و فقط به نیمی از پهنای باند 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٪) است.

رمزگذاری

رمزگذاری صوتی داده های بازگردانده شده در پیام صوتی. همه رمزگذاری ها بایت های صوتی خام و بدون سرصفحه هستند، به جز موارد زیر.

Enums
ENCODING_UNSPECIFIED مشخص نشده است. نتیجه google.rpc.Code.INVALID_ARGUMENT را برمی گرداند.
LINEAR16 نمونه‌های 16 بیتی امضا نشده فشرده نشده (PCM خطی).
MP3 رمزگذاری صوتی MP3 نرخ نمونه در محموله رمزگذاری شده است.
OPUS_IN_OGG صدای رمزگذاری شده با Opus که در یک ظرف Ogg پیچیده شده است. نتیجه فایلی خواهد بود که می تواند به صورت بومی در اندروید و در برخی از مرورگرها (مانند کروم) پخش شود. کیفیت رمزگذاری به طور قابل توجهی بالاتر از MP3 است در حالی که از همان میزان بیت استفاده می شود. نرخ نمونه در محموله رمزگذاری شده است.

ConverseConfig

نحوه پردازش پیام های ConverseRequest را مشخص می کند.

زمینه های
audio_in_config

AudioInConfig

Required نحوه پردازش صدای ورودی بعدی را مشخص می کند.

audio_out_config

AudioOutConfig

Required نحوه فرمت کردن صدایی که برگردانده می شود را مشخص می کند.

converse_state

ConverseState

Required نشان دهنده وضعیت گفتگوی فعلی است.

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

پیام سطح بالای دریافت شده توسط مشتری. مجموعه ای از یک یا چند پیام ConverseResponse به مشتری ارسال می شود.

زمینه های
فیلد اتحادیه converse_response . دقیقاً یکی از این فیلدها در هر ConverseResponse پر می شود. converse_response تنها می تواند یکی از موارد زیر باشد:
error

Status

فقط خروجی اگر تنظیم شود، یک پیام google.rpc.Status برمی‌گرداند که خطای عملیات را مشخص می‌کند. اگر در حین پردازش خطایی رخ دهد، این پیام تنظیم می شود و هیچ پیام دیگری ارسال نمی شود.

event_type

EventType

Output-only نوع رویداد را نشان می دهد.

audio_out

AudioOut

فقط خروجی صدای حاوی پاسخ دستیار به درخواست.

result

ConverseResult

فقط خروجی نتیجه معنایی پرس و جوی گفتاری کاربر.

نوع رویداد

نوع رویداد را نشان می دهد.

Enums
EVENT_TYPE_UNSPECIFIED هیچ رویدادی مشخص نشده است.
END_OF_UTTERANCE این رویداد نشان می‌دهد که سرور پایان گفتار کاربر را تشخیص داده است و انتظار ندارد گفتار اضافی وجود داشته باشد. بنابراین، سرور صدای اضافی را پردازش نخواهد کرد (اگرچه ممکن است متعاقباً نتایج اضافی را بازگرداند). کلاینت باید ارسال داده های صوتی اضافی را متوقف کند، اتصال gRPC را تا نیمه ببندد و منتظر نتایج اضافی بماند تا سرور اتصال gRPC را ببندد.

ConverseResult

نتیجه معنایی برای جستجوی گفتاری کاربر.

زمینه های
spoken_request_text

string

Output-only رونوشت شناخته شده آنچه کاربر گفته است.

spoken_response_text

string

فقط خروجی متن پاسخ گفتاری دستیار. این فقط برای یک اقدام IFTTT برگردانده می شود.

conversation_state

bytes

اطلاعات حالت فقط خروجی برای ConverseRequest بعدی. این مقدار باید در کلاینت ذخیره شود و در conversation_state با ConverseRequest بعدی برگردانده شود. (کاربر نیازی به تفسیر یا استفاده از این مقدار ندارد.) نیازی به ذخیره این اطلاعات در راه اندازی مجدد دستگاه نیست.

microphone_mode

MicrophoneMode

Output-only حالت میکروفون را پس از پردازش این Converse RPC مشخص می کند.

volume_percentage

int32

سطح صدا فقط خروجی به روز شده است. مقدار 0 خواهد بود یا حذف می شود (نشان دهنده عدم تغییر) مگر اینکه یک فرمان صوتی مانند "افزایش صدا" یا "تنظیم سطح صدا 4" تشخیص داده شود، در این صورت مقدار بین 1 تا 100 خواهد بود (مرتبط با صدای جدید سطح 1٪ تا 100٪. به طور معمول، یک کلاینت باید از این سطح صدا هنگام پخش داده های audio_out استفاده کند و این مقدار را به عنوان سطح صدای فعلی حفظ کند و آن را در AudioOutConfig ConverseRequest بعدی عرضه کند. (برخی از مشتریان همچنین ممکن است راه های دیگری را برای اجازه دادن به تغییر سطح صدای فعلی اجرا کنند، به عنوان مثال، با ارائه یک دستگیره که کاربر بتواند آن را بچرخاند.)

حالت میکروفون

حالات احتمالی میکروفون پس از تکمیل Converse RPC.

Enums
MICROPHONE_MODE_UNSPECIFIED هیچ حالتی مشخص نشده است.
CLOSE_MICROPHONE این سرویس انتظار سوال بعدی از کاربر را ندارد. میکروفون باید خاموش بماند تا زمانی که کاربر آن را دوباره فعال کند.
DIALOG_FOLLOW_ON این سرویس منتظر یک سوال بعدی از کاربر است. هنگامی که پخش AudioOut کامل شد (با شروع یک تماس جدید Converse RPC برای ارسال صدای جدید)، میکروفون باید دوباره باز شود.

ConverseState

اطلاعاتی در مورد وضعیت گفتگوی فعلی ارائه می دهد.

زمینه های
conversation_state

bytes

مورد نیاز مقدار conversation_state در ConverseResponse قبلی برگردانده شده است. اگر قبلاً ConverseResponse وجود نداشت، حذف (فیلد را تنظیم نکنید). اگر یک ConverseResponse قبلی وجود داشت، این قسمت را حذف نکنید. انجام این کار آن مکالمه را پایان می دهد (و این درخواست جدید مکالمه جدیدی را شروع می کند).