blob: 5ea02edd0eac526e35c2c7ce7976f9838fb4c5fc [file] [log] [blame]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* 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 = "proto2";
package android.os.statsd.hotword;
import "frameworks/proto_logging/stats/atom_field_options.proto";
import "frameworks/proto_logging/stats/enums/hotword/enums.proto";
option java_package = "com.android.os.hotword";
option java_multiple_files = true;
/**
* Logs information related to creating hotword detector.
*/
message HotwordDetectorCreateRequested {
// The type of detector.
optional android.hotword.HotwordDetectorType detector_type = 1;
// True if the detector is created successfully.
optional bool is_created_done = 2;
// The UID for which assistant application is active.
optional int32 uid = 3 [(is_uid) = true];
}
/**
* Logs information related to hotword detection service init result.
*/
message HotwordDetectionServiceInitResultReported {
// The type of detector.
optional android.hotword.HotwordDetectorType detector_type = 1;
// The result of initialization.
enum Result {
// Indicates that the service was initialized successfully.
CALLBACK_INIT_STATE_SUCCESS = 0;
// Indicates that the service was not initialized successfully.
CALLBACK_INIT_STATE_ERROR = 1;
// Indicates that the callback was invoked without init state.
CALLBACK_INIT_STATE_UNKNOWN_NO_VALUE = 2;
// Indicates that the callback was invoked, but the init state value exceeded
// the defined maximum.
CALLBACK_INIT_STATE_UNKNOWN_OVER_MAX_CUSTOM_VALUE = 3;
// Indicates that the callback was not invoked within timeout.
CALLBACK_INIT_STATE_UNKNOWN_TIMEOUT = 4;
}
optional Result result = 2;
// The UID for which the assistant application is active.
optional int32 uid = 3 [(is_uid) = true];
}
/**
* Logs information related to restarting hotword detection service.
*/
message HotwordDetectionServiceRestarted {
// The type of detector.
optional android.hotword.HotwordDetectorType detector_type = 1;
// The reason for restarting service.
enum Reason {
// UNKNOWN value.
UNKNOWN = 0;
// Indicates that the service was restarted due to audio service died.
AUDIO_SERVICE_DIED = 1;
// Indicates that the service was restarted regularly.
SCHEDULE = 2;
// Deprecated. Indicates that the service was restarted due to service crashed.
CRASH = 3 [deprecated = true];
}
optional Reason reason = 2;
// The UID for which the assistant application is active.
optional int32 uid = 3 [(is_uid) = true];
}
/**
* Logs information related to keyphrase trigger.
*/
message HotwordDetectorKeyphraseTriggered {
// The type of detector.
optional android.hotword.HotwordDetectorType detector_type = 1;
// The result of detection.
enum Result {
// Indicates that the system got the keyphrase from DSP.
KEYPHRASE_TRIGGER = 0;
// Deprecated. Indicates that the system can not inform the service to verify the keyphrase.
FAILED_TO_INFORM_SERVICE = 1 [deprecated = true];
// Indicates that the callback was not invoked within timeout after informing
// the service.
DETECT_TIMEOUT = 2;
// Indicates that the system got the exception after informing the service.
DETECT_EXCEPTION = 3;
// Indicates that the service crashed.
SERVICE_CRASH = 4;
// Indicates that the keyphrase was detected.
DETECTED = 5;
// Indicates that the keyphrase was not detected.
REJECTED = 6;
// Indicates that the system got the unexpected detected callback.
DETECT_UNEXPECTED_CALLBACK = 7;
// Indicates that the system got the security exception when handling detected callback.
DETECT_SECURITY_EXCEPTION = 8;
// Indicates that the system got the unexpected rejected callback.
REJECT_UNEXPECTED_CALLBACK = 9;
// Indicates that the system called rejected callback when the trusted process was
// restarted.
REJECTED_FROM_RESTART = 10;
// Indicates keyphrase was classified as training data.
TRAINING_DATA = 11;
// Indicates training data egress limit was reached.
TRAINING_DATA_EGRESS_LIMIT_REACHED = 12;
// Indicates that system got security exception when handling training data callback.
TRAINING_DATA_SECURITY_EXCEPTION = 13;
// Indicates that system got remote exception when handling training data callback.
TRAINING_DATA_REMOTE_EXCEPTION = 14;
}
// What result after detecting.
optional Result result = 2;
// The UID for which the assistant application is active.
optional int32 uid = 3 [(is_uid) = true];
}
/**
* Logs information related to hotword detector events.
*/
message HotwordDetectorEvents {
// The type of detector.
optional android.hotword.HotwordDetectorType detector_type = 1;
// The type of event.
enum Event {
// UNKNOWN value.
UNKNOWN = 0;
// Indicates that the system requested to bind the service.
REQUEST_BIND_SERVICE = 1;
// Indicates that the system connected the service successfully.
ON_CONNECTED = 2;
// Indicates that the system failed to bind the service.
REQUEST_BIND_SERVICE_FAIL = 3;
// Indicates that the system called the updateState function of service.
REQUEST_UPDATE_STATE = 4;
// Indicates that the callback was not invoked within timeout after calling
// the updateState function of service.
CALLBACK_UPDATE_STATE_AFTER_TIMEOUT = 5;
// Indicates that no starting recognition after creating the detector.
DID_NOT_CALL_START_RECOGNITION = 6;
// Indicates that the system disconnected the service.
ON_DISCONNECTED = 7;
// Indicates that the application called the updateState function.
APP_REQUEST_UPDATE_STATE = 8;
// Indicates that starting to listen software detection.
START_SOFTWARE_DETECTION = 9;
// Indicates that starting to listen external source detection.
START_EXTERNAL_SOURCE_DETECTION = 10;
// Indicates that the external source detection was detected.
EXTERNAL_SOURCE_DETECTED = 11;
// Indicates that the external source detection was not detected.
EXTERNAL_SOURCE_REJECTED = 12;
// Indicates that the system got the security exception when handling external
// source detected callback.
EXTERNAL_SOURCE_DETECT_SECURITY_EXCEPTION = 13;
// Indicates that the callback onStatusReported was not invoked successfully.
CALLBACK_ON_STATUS_REPORTED_EXCEPTION = 14;
// Indicates that the callback onError was not invoked successfully.
CALLBACK_ON_ERROR_EXCEPTION = 15;
// Indicates that the callback onRejected was not invoked successfully.
CALLBACK_ON_REJECTED_EXCEPTION = 16;
// Indicates that the callback onDetected was not invoked successfully.
CALLBACK_ON_DETECTED_EXCEPTION = 17;
// Indicates that the callback onProcessRestarted was not invoked successfully.
CALLBACK_ON_PROCESS_RESTARTED_EXCEPTION = 18;
// Indicates that the updateState was not invoked successfully.
CALL_UPDATE_STATE_EXCEPTION = 19;
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the audio egress starts.
AUDIO_EGRESS_START = 20 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the audio egress ends.
AUDIO_EGRESS_END = 21 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the audio egress got interrupted exception.
AUDIO_EGRESS_INTERRUPTED_EXCEPTION = 22 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the client is not granted permission to access audio egress.
AUDIO_EGRESS_NO_PERMISSION = 23 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the client is inactive over a period of time.
AUDIO_EGRESS_INACTIVE_CLIENT = 24 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the HotwordDetectionService is inactive over a period
// of time.
AUDIO_EGRESS_INACTIVE_HOTWORD_DETECTION_SERVICE = 25 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the list of audio stream is empty.
AUDIO_EGRESS_EMPTY_AUDIO_STREAM_LIST = 26 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that there is no data from the system audio stream.
AUDIO_EGRESS_SOURCE_IS_EMPTY = 27 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the copy buffer size the client sets is illegal.
AUDIO_EGRESS_ILLEGAL_COPY_BUFFER_SIZE = 28 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the audio egress is closed with error from the system.
AUDIO_EGRESS_CLOSE_ERROR_FROM_SYSTEM = 29 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the audio egress is closed with error from the client
// side.
AUDIO_EGRESS_CLOSE_ERROR_FROM_CLIENT = 30 [deprecated = true];
// Deprecated. Use HotwordAudioEgressEventReported instead.
// Indicates that the audio egress is closed with error from the
// HotwordDetectionService.
AUDIO_EGRESS_CLOSE_ERROR_FROM_HOTWORD_DETECTION_SERVICE = 31 [deprecated = true];
}
optional Event event = 2;
// The UID for which assistant application is active.
optional int32 uid = 3 [(is_uid) = true];
}
/**
* Logs information related to audio egress in hotword.
*/
message HotwordAudioEgressEventReported {
// The type of detector.
optional android.hotword.HotwordDetectorType detector_type = 1;
// The type of event.
enum Event {
// UNKNOWN value.
UNKNOWN = 0;
// Indicates that the audio egress started.
STARTED = 1;
// Indicates that the audio egress ended.
ENDED = 2;
// Indicates that the audio egress got interrupted exception.
INTERRUPTED_EXCEPTION = 3;
// Indicates that the client is not granted permission to access audio egress.
NO_PERMISSION = 4;
// Indicates that the client is inactive over a period of time.
INACTIVE_CLIENT = 5;
// Indicates that the HotwordDetectionService is inactive over a period
// of time.
INACTIVE_HOTWORD_DETECTION_SERVICE = 6;
// Indicates that the list of audio stream is empty.
EMPTY_AUDIO_STREAM_LIST = 7;
// Indicates that there is no data from the system audio stream.
SOURCE_IS_EMPTY = 8;
// Indicates that the copy buffer size the client sets is illegal.
ILLEGAL_COPY_BUFFER_SIZE = 9;
// Indicates that the audio egress is closed with error from the system.
CLOSE_ERROR_FROM_SYSTEM = 10;
// Indicates that the audio egress is closed with error from the client side.
CLOSE_ERROR_FROM_CLIENT = 11;
// Indicates that the audio egress is closed with error from the
// HotwordDetectionService.
CLOSE_ERROR_FROM_HOTWORD_DETECTION_SERVICE = 12;
}
optional Event event = 2;
// The UID for which the assistant application is active.
optional int32 uid = 3 [(is_uid) = true];
// The number of bytes egressed in audio stream
optional int32 egressed_stream_size_bytes = 4;
// The number of bytes egressed in metadata bundle
optional int32 egressed_metadata_bundle_size_bytes = 5;
// The count of audio streams
optional int32 stream_count = 6;
}