diff options
Diffstat (limited to 'third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto')
| -rw-r--r-- | third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto | 281 |
1 files changed, 0 insertions, 281 deletions
diff --git a/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto b/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto deleted file mode 100644 index 79aa6cb..0000000 --- a/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto +++ /dev/null @@ -1,281 +0,0 @@ -// Copyright 2017 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.assistant.embedded.v1alpha1; - -import "google/api/annotations.proto"; -import "google/rpc/status.proto"; - -option go_package = "google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1;embedded"; -option java_multiple_files = true; -option java_outer_classname = "AssistantProto"; -option java_package = "com.google.assistant.embedded.v1alpha1"; - -// Service that implements Google Assistant API. -service EmbeddedAssistant { - // Initiates or continues a conversation with the embedded assistant service. - // Each call performs one round-trip, sending an audio request to the service - // and receiving the audio response. Uses bidirectional streaming to receive - // results, such as the `END_OF_UTTERANCE` event, while sending audio. - // - // A conversation is one or more gRPC connections, each consisting of several - // streamed requests and responses. - // For example, the user says *Add to my shopping list* and the assistant - // responds *What do you want to add?*. The sequence of streamed requests and - // responses in the first gRPC message could be: - // - // * 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 - // - // The user then says *bagels* and the assistant responds - // *OK, I've added bagels to your shopping list*. This is sent as another gRPC - // connection call to the `Converse` method, again with streamed requests and - // responses, such as: - // - // * 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 - // - // Although the precise order of responses is not guaranteed, sequential - // ConverseResponse.audio_out messages will always contain sequential portions - // of audio. - rpc Converse(stream ConverseRequest) returns (stream ConverseResponse); -} - -// Specifies how to process the `ConverseRequest` messages. -message ConverseConfig { - // *Required* Specifies how to process the subsequent incoming audio. - AudioInConfig audio_in_config = 1; - - // *Required* Specifies how to format the audio that will be returned. - AudioOutConfig audio_out_config = 2; - - // *Required* Represents the current dialog state. - ConverseState converse_state = 3; -} - -// Specifies how to process the `audio_in` data that will be provided in -// subsequent requests. For recommended settings, see the Google Assistant SDK -// [best -// practices](https://developers.google.com/assistant/sdk/develop/grpc/best-practices/audio). -message AudioInConfig { - // Audio encoding of the data sent in the audio message. - // Audio must be one-channel (mono). The only language supported is "en-US". - enum Encoding { - // Not specified. Will return result [google.rpc.Code.INVALID_ARGUMENT][]. - ENCODING_UNSPECIFIED = 0; - - // Uncompressed 16-bit signed little-endian samples (Linear PCM). - // This encoding includes no header, only the raw audio bytes. - LINEAR16 = 1; - - // [`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio - // Codec) is the recommended encoding because it is - // lossless--therefore recognition is not compromised--and - // requires only about half the bandwidth of `LINEAR16`. This encoding - // includes the `FLAC` stream header followed by audio data. It supports - // 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are - // supported. - FLAC = 2; - } - - // *Required* Encoding of audio data sent in all `audio_in` messages. - Encoding encoding = 1; - - // *Required* Sample rate (in Hertz) of the audio data sent in all `audio_in` - // messages. Valid values are from 16000-24000, but 16000 is optimal. - // For best results, set the sampling rate of the audio source to 16000 Hz. - // If that's not possible, use the native sample rate of the audio source - // (instead of re-sampling). - int32 sample_rate_hertz = 2; -} - -// Specifies the desired format for the server to use when it returns -// `audio_out` messages. -message AudioOutConfig { - // Audio encoding of the data returned in the audio message. All encodings are - // raw audio bytes with no header, except as indicated below. - enum Encoding { - // Not specified. Will return result [google.rpc.Code.INVALID_ARGUMENT][]. - ENCODING_UNSPECIFIED = 0; - - // Uncompressed 16-bit signed little-endian samples (Linear PCM). - LINEAR16 = 1; - - // MP3 audio encoding. The sample rate is encoded in the payload. - MP3 = 2; - - // Opus-encoded audio wrapped in an ogg container. The result will be a - // file which can be played natively on Android and in some browsers (such - // as Chrome). The quality of the encoding is considerably higher than MP3 - // while using the same bitrate. The sample rate is encoded in the payload. - OPUS_IN_OGG = 3; - } - - // *Required* The encoding of audio data to be returned in all `audio_out` - // messages. - Encoding encoding = 1; - - // *Required* The sample rate in Hertz of the audio data returned in - // `audio_out` messages. Valid values are: 16000-24000. - int32 sample_rate_hertz = 2; - - // *Required* Current volume setting of the device's audio output. - // Valid values are 1 to 100 (corresponding to 1% to 100%). - int32 volume_percentage = 3; -} - -// Provides information about the current dialog state. -message ConverseState { - // *Required* The `conversation_state` value returned in the prior - // `ConverseResponse`. Omit (do not set the field) if there was no prior - // `ConverseResponse`. If there was a prior `ConverseResponse`, do not omit - // this field; doing so will end that conversation (and this new request will - // start a new conversation). - bytes conversation_state = 1; -} - -// The audio containing the assistant's response to the query. Sequential chunks -// of audio data are received in sequential `ConverseResponse` messages. -message AudioOut { - // *Output-only* The audio data containing the assistant's response to the - // query. Sequential chunks of audio data are received in sequential - // `ConverseResponse` messages. - bytes audio_data = 1; -} - -// The semantic result for the user's spoken query. -message ConverseResult { - // Possible states of the microphone after a `Converse` RPC completes. - enum MicrophoneMode { - // No mode specified. - MICROPHONE_MODE_UNSPECIFIED = 0; - - // The service is not expecting a follow-on question from the user. - // The microphone should remain off until the user re-activates it. - CLOSE_MICROPHONE = 1; - - // The service is expecting a follow-on question from the user. The - // microphone should be re-opened when the `AudioOut` playback completes - // (by starting a new `Converse` RPC call to send the new audio). - DIALOG_FOLLOW_ON = 2; - } - - // *Output-only* The recognized transcript of what the user said. - string spoken_request_text = 1; - - // *Output-only* The text of the assistant's spoken response. This is only - // returned for an IFTTT action. - string spoken_response_text = 2; - - // *Output-only* State information for subsequent `ConverseRequest`. This - // value should be saved in the client and returned in the - // `conversation_state` with the next `ConverseRequest`. (The client does not - // need to interpret or otherwise use this value.) There is no need to save - // this information across device restarts. - bytes conversation_state = 3; - - // *Output-only* Specifies the mode of the microphone after this `Converse` - // RPC is processed. - MicrophoneMode microphone_mode = 4; - - // *Output-only* Updated volume level. The value will be 0 or omitted - // (indicating no change) unless a voice command such as "Increase the volume" - // or "Set volume level 4" was recognized, in which case the value will be - // between 1 and 100 (corresponding to the new volume level of 1% to 100%). - // Typically, a client should use this volume level when playing the - // `audio_out` data, and retain this value as the current volume level and - // supply it in the `AudioOutConfig` of the next `ConverseRequest`. (Some - // clients may also implement other ways to allow the current volume level to - // be changed, for example, by providing a knob that the user can turn.) - int32 volume_percentage = 5; -} - -// The top-level message sent by the client. Clients must send at least two, and -// typically numerous `ConverseRequest` messages. The first message must -// contain a `config` message and must not contain `audio_in` data. All -// subsequent messages must contain `audio_in` data and must not contain a -// `config` message. -message ConverseRequest { - // Exactly one of these fields must be specified in each `ConverseRequest`. - oneof converse_request { - // The `config` message provides information to the recognizer that - // specifies how to process the request. - // The first `ConverseRequest` message must contain a `config` message. - ConverseConfig config = 1; - - // The audio data to be recognized. Sequential chunks of audio data are sent - // in sequential `ConverseRequest` messages. The first `ConverseRequest` - // message must not contain `audio_in` data and all subsequent - // `ConverseRequest` messages must contain `audio_in` data. The audio bytes - // must be encoded as specified in `AudioInConfig`. - // Audio must be sent at approximately real-time (16000 samples per second). - // An error will be returned if audio is sent significantly faster or - // slower. - bytes audio_in = 2; - } -} - -// The top-level message received by the client. A series of one or more -// `ConverseResponse` messages are streamed back to the client. -message ConverseResponse { - // Indicates the type of event. - enum EventType { - // No event specified. - EVENT_TYPE_UNSPECIFIED = 0; - - // This event indicates that the server has detected the end of the user's - // speech utterance and expects no additional speech. Therefore, the server - // will not process additional audio (although it may subsequently return - // additional results). The client should stop sending additional audio - // data, half-close the gRPC connection, and wait for any additional results - // until the server closes the gRPC connection. - END_OF_UTTERANCE = 1; - } - - // Exactly one of these fields will be populated in each `ConverseResponse`. - oneof converse_response { - // *Output-only* If set, returns a [google.rpc.Status][google.rpc.Status] - // message that specifies the error for the operation. If an error occurs - // during processing, this message will be set and there will be no further - // messages sent. - google.rpc.Status error = 1; - - // *Output-only* Indicates the type of event. - EventType event_type = 2; - - // *Output-only* The audio containing the assistant's response to the query. - AudioOut audio_out = 3; - - // *Output-only* The semantic result for the user's spoken query. - ConverseResult result = 5; - } -} |
