blob: 99bbd56d252830a120acf4be896feb30d32f8ed0 [file] [log] [blame]
/*
* Copyright 2016 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.
*/
package android.hardware.soundtrigger@2.0;
/**
* Sound model types modes used in ISoundTriggerHw.SoundModel
*/
enum SoundModelType : int32_t {
/** use for unspecified sound model type */
UNKNOWN = -1,
/** use for key phrase sound models */
KEYPHRASE = 0,
/** use for all models other than keyphrase */
GENERIC = 1,
};
typedef int32_t SoundModelHandle;
/**
* Recognition modes used in ISoundTriggerHw.RecognitionConfig,
* ISoundTriggerHw.Properties or PhraseRecognitionExtra
*/
enum RecognitionMode : uint32_t {
/** simple voice trigger */
VOICE_TRIGGER = (1 << 0),
/** trigger only if one user in model identified */
USER_IDENTIFICATION = (1 << 1),
/** trigger only if one user in mode authenticated */
USER_AUTHENTICATION = (1 << 2),
/** generic sound trigger */
GENERIC_TRIGGER = (1 << 3),
};
/**
* Confidence level for each user in structure PhraseRecognitionExtra
*/
struct ConfidenceLevel {
/** user ID */
uint32_t userId;
/** confidence level in percent (0 - 100): */
/** - min level for recognition configuration */
/** - detected level for recognition event */
uint32_t levelPercent;
};
/**
* Specialized recognition event for key phrase detection
*/
struct PhraseRecognitionExtra {
/** keyphrase ID */
uint32_t id;
/** recognition modes used for this keyphrase */
uint32_t recognitionModes;
/** confidence level for mode RecognitionMode.VOICE_TRIGGER */
uint32_t confidenceLevel;
/**
* list of confidence levels per user for
* RecognitionMode.USER_IDENTIFICATION and
* RecognitionMode.USER_AUTHENTICATION */
vec<ConfidenceLevel> levels;
};