Package google.assistant.embedded.v1alpha1

Indeks

EmbeddedAssistant

Layanan yang mengimplementasikan Google Assistant API.

Converse

rpc Converse(ConverseRequest) returns (ConverseResponse)

Memulai atau melanjutkan percakapan dengan layanan asisten tersemat. Tiap panggilan melakukan satu perjalanan bolak-balik, mengirimkan permintaan audio ke layanan, dan menerima respons audio. Menggunakan streaming dua arah untuk menerima hasil, seperti peristiwa END_OF_UTTERANCE, saat mengirim audio.

Percakapan adalah satu atau beberapa koneksi gRPC, yang masing-masing terdiri dari beberapa permintaan dan respons yang di-streaming. Misalnya, pengguna mengucapkan Tambahkan ke daftar belanja saya dan asisten merespons Apa yang ingin Anda tambahkan?. Urutan permintaan dan respons yang di-streaming pada pesan gRPC pertama dapat berupa:

  • 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

Pengguna kemudian mengatakan bagel dan asisten merespons Oke, saya sudah menambahkan bagel ke daftar belanja Anda. Ini dikirim sebagai panggilan koneksi gRPC lain ke metode Converse, sekali lagi dengan permintaan dan respons yang di-streaming, seperti:

  • 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

Meskipun urutan respons yang tepat tidak dijamin, pesan ConverseResponse.audio_out yang berurutan akan selalu berisi bagian audio yang berurutan.

Otorisasi

Memerlukan cakupan OAuth berikut ini:

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

Untuk mengetahui informasi selengkapnya, lihat Panduan Autentikasi.

AudioInConfig

Menentukan cara memproses data audio_in yang akan diberikan dalam permintaan berikutnya. Untuk setelan yang direkomendasikan, lihat praktik terbaik gRPC API Asisten Google.

Kolom
encoding

Encoding

Wajib Encoding data audio yang dikirim di semua pesan audio_in.

sample_rate_hertz

int32

Wajib Frekuensi sampel (dalam Hertz) data audio yang dikirim di semua pesan audio_in. Nilai yang valid adalah dari 16000-24000, tetapi 16000 adalah nilai optimal. Untuk hasil terbaik, setel frekuensi pengambilan sampel sumber audio ke 16.000 Hz. Jika tidak memungkinkan, gunakan frekuensi sampel asli dari sumber audio (sebagai ganti pengambilan sampel ulang).

Encoding

Encoding audio dari data yang dikirim dalam pesan audio. Audio harus berupa satu saluran (mono). Satu-satunya bahasa yang didukung adalah "en-US".

Enum
ENCODING_UNSPECIFIED Tidak ditentukan. Akan menampilkan hasil google.rpc.Code.INVALID_ARGUMENT.
LINEAR16 Sampel small-endian bertanda tangan 16-bit yang tidak dikompresi (Linear PCM). Encoding ini tidak menyertakan header, hanya byte audio mentah.
FLAC FLAC (Codec Audio Non-Kehilangan Gratis) adalah encoding yang direkomendasikan karena bersifat lossless, sehingga pengenalan tidak disusupi--dan hanya memerlukan setengah bandwidth LINEAR16. Encoding ini mencakup header streaming FLAC yang diikuti dengan data audio. Namun, alat ini mendukung sampel 16-bit dan 24-bit, tetapi tidak semua kolom di STREAMINFO didukung.

AudioOut

Audio yang berisi respons asisten terhadap kueri. Potongan data audio berurutan diterima dalam pesan ConverseResponse berurutan.

Kolom
audio_data

bytes

Hanya output Data audio yang berisi respons asisten terhadap kueri. Potongan data audio berurutan diterima dalam pesan ConverseResponse berurutan.

AudioOutConfig

Menentukan format yang diinginkan untuk digunakan server saat menampilkan pesan audio_out.

Kolom
encoding

Encoding

Wajib Encoding data audio yang akan ditampilkan di semua pesan audio_out.

sample_rate_hertz

int32

Wajib Frekuensi sampel dalam Hertz data audio yang ditampilkan dalam pesan audio_out. Nilai yang valid adalah: 16000-24000.

volume_percentage

int32

Wajib Setelan volume output audio perangkat saat ini. Nilai yang valid adalah 1 hingga 100 (sesuai dengan 1% hingga 100%).

Encoding

Encoding audio dari data yang ditampilkan dalam pesan audio. Semua encoding adalah byte audio mentah tanpa header, kecuali seperti yang ditunjukkan di bawah.

Enum
ENCODING_UNSPECIFIED Tidak ditentukan. Akan menampilkan hasil google.rpc.Code.INVALID_ARGUMENT.
LINEAR16 Sampel small-endian bertanda tangan 16-bit yang tidak dikompresi (Linear PCM).
MP3 Encoding audio MP3. Frekuensi sampel dienkode dalam payload.
OPUS_IN_OGG Audio yang dienkode Opus yang digabungkan dalam container ogg. Hasilnya akan berupa file yang dapat diputar secara native di Android dan di beberapa browser (seperti Chrome). Kualitas encoding jauh lebih tinggi daripada MP3 saat menggunakan kecepatan bit yang sama. Frekuensi sampel dienkode dalam payload.

ConverseConfig

Menentukan cara memproses pesan ConverseRequest.

Kolom
audio_in_config

AudioInConfig

Diperlukan Menentukan cara memproses audio masuk berikutnya.

audio_out_config

AudioOutConfig

Wajib Menentukan cara memformat audio yang akan ditampilkan.

converse_state

ConverseState

Wajib Mewakili status dialog saat ini.

ConverseRequest

Pesan tingkat teratas yang dikirim oleh klien. Klien harus mengirim setidaknya dua pesan, dan biasanya banyak pesan ConverseRequest. Pesan pertama harus berisi pesan config dan tidak boleh berisi data audio_in. Semua pesan berikutnya harus berisi data audio_in dan tidak boleh berisi pesan config.

Kolom
Kolom union converse_request. Tepat satu dari kolom ini harus ditentukan di setiap ConverseRequest. converse_request hanya dapat berupa salah satu dari berikut:
config

ConverseConfig

Pesan config memberikan informasi kepada pengenal yang menentukan cara memproses permintaan. Pesan ConverseRequest pertama harus berisi pesan config.

audio_in

bytes

Data audio yang akan dikenali. Potongan data audio berurutan dikirim dalam pesan ConverseRequest berurutan. Pesan ConverseRequest pertama tidak boleh berisi data audio_in dan semua pesan ConverseRequest berikutnya harus berisi data audio_in. Byte audio harus dienkode seperti yang ditentukan dalam AudioInConfig. Audio harus dikirim secara real time (16.000 sampel per detik). Error akan ditampilkan jika audio dikirim jauh lebih cepat atau lebih lambat.

ConverseResponse

Pesan tingkat teratas yang diterima oleh klien. Rangkaian satu atau beberapa pesan ConverseResponse akan di-streaming kembali ke klien.

Kolom
Kolom union converse_response. Hanya satu kolom ini yang akan diisi di setiap ConverseResponse. converse_response hanya dapat berupa salah satu dari berikut:
error

Status

Output-only Jika disetel, menampilkan pesan google.rpc.Status yang menentukan error untuk operasi. Jika terjadi error selama pemrosesan, pesan ini akan ditetapkan dan tidak akan ada pesan lebih lanjut yang dikirimkan.

event_type

EventType

Hanya output Menunjukkan jenis peristiwa.

audio_out

AudioOut

Hanya output Audio yang berisi respons asisten terhadap kueri.

result

ConverseResult

Output-only Hasil semantik untuk kueri lisan pengguna.

EventType

Menunjukkan jenis peristiwa.

Enum
EVENT_TYPE_UNSPECIFIED Tidak ada peristiwa yang ditetapkan.
END_OF_UTTERANCE Peristiwa ini menunjukkan bahwa server telah mendeteksi ucapan pengguna berakhir dan tidak mengharapkan ucapan tambahan. Oleh karena itu, server tidak akan memproses audio tambahan (meskipun mungkin kemudian menampilkan hasil tambahan). Klien akan berhenti mengirim data audio tambahan, menutup setengah koneksi gRPC, dan menunggu hasil tambahan hingga server menutup koneksi gRPC.

ConverseResult

Hasil semantik untuk kueri lisan pengguna.

Kolom
spoken_request_text

string

Hanya output Transkrip yang dikenali dari ucapan pengguna.

spoken_response_text

string

Hanya output Teks respons lisan asisten. Ini hanya ditampilkan untuk tindakan IFTTT.

conversation_state

bytes

Informasi status Hanya output untuk ConverseRequest berikutnya. Nilai ini harus disimpan di klien dan ditampilkan di conversation_state dengan ConverseRequest berikutnya. (Klien tidak perlu menafsirkan atau menggunakan nilai ini.) Tidak perlu menyimpan informasi ini setiap kali perangkat dimulai ulang.

microphone_mode

MicrophoneMode

Hanya output Menentukan mode mikrofon setelah RPC Converse ini diproses.

volume_percentage

int32

Hanya output Level volume yang diperbarui. Nilai akan menjadi 0 atau dihilangkan (menunjukkan tidak ada perubahan) kecuali perintah suara seperti "Naikkan volume" atau "Setel level volume 4" dikenali, dalam hal ini nilainya akan antara 1 dan 100 (sesuai dengan level volume baru dari 1% hingga 100%). Biasanya, klien harus menggunakan tingkat volume ini saat memutar data audio_out, dan mempertahankan nilai ini sebagai tingkat volume saat ini dan menyediakannya dalam AudioOutConfig dari ConverseRequest berikutnya. (Beberapa klien juga dapat menerapkan cara lain untuk mengizinkan perubahan level volume saat ini, misalnya, dengan menyediakan kenop yang dapat diputar oleh pengguna.)

MicrophoneMode

Kemungkinan status mikrofon setelah RPC Converse selesai.

Enum
MICROPHONE_MODE_UNSPECIFIED Mode tidak ditentukan.
CLOSE_MICROPHONE Layanan tidak mengharapkan pertanyaan lanjutan dari pengguna. Mikrofon akan tetap nonaktif hingga pengguna mengaktifkannya kembali.
DIALOG_FOLLOW_ON Layanan mengharapkan pertanyaan lanjutan dari pengguna. Mikrofon harus dibuka kembali saat pemutaran AudioOut selesai (dengan memulai panggilan RPC Converse baru untuk mengirim audio baru).

ConverseState

Memberikan informasi tentang status dialog saat ini.

Kolom
conversation_state

bytes

Wajib Nilai conversation_state yang ditampilkan di ConverseResponse sebelumnya. Hapus (jangan tetapkan kolom) jika tidak ada ConverseResponse sebelumnya. Jika ada ConverseResponse sebelumnya, jangan hapus kolom ini; tindakan ini akan mengakhiri percakapan tersebut (dan permintaan baru ini akan memulai percakapan baru).