diff options
author | Eric Laurent <elaurent@google.com> | 2014-07-27 16:22:50 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2014-08-03 17:52:10 -0700 |
commit | 3fc434e9c11bd9601c6046273e552a97c7cef4e0 (patch) | |
tree | 9fe9242baffe24aeaf0c2d007a274d0669b40e66 /include/system | |
parent | 3679d5f49a1e3caf69fffd1afa2d6139a0bfbb17 (diff) | |
download | system_core-3fc434e9c11bd9601c6046273e552a97c7cef4e0.zip system_core-3fc434e9c11bd9601c6046273e552a97c7cef4e0.tar.gz system_core-3fc434e9c11bd9601c6046273e552a97c7cef4e0.tar.bz2 |
sound_trigger HAL update
Indicate if trigger capture is returned with
recognition event in implementation properties
Add coarse confidence level to keyphrase recognition event.
Add capture format to recognition event
Bug: 12378680.
Change-Id: I52303ce2e46b9ebfb9993e47d153799921f9f8e7
Diffstat (limited to 'include/system')
-rw-r--r-- | include/system/sound_trigger.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/include/system/sound_trigger.h b/include/system/sound_trigger.h index dcca34d..773e4f7 100644 --- a/include/system/sound_trigger.h +++ b/include/system/sound_trigger.h @@ -26,11 +26,16 @@ #define SOUND_TRIGGER_MAX_USERS 10 /* max number of concurrent users */ #define SOUND_TRIGGER_MAX_PHRASES 10 /* max number of concurrent phrases */ +typedef enum { + SOUND_TRIGGER_STATE_NO_INIT = -1, /* The sound trigger service is not initialized */ + SOUND_TRIGGER_STATE_ENABLED = 0, /* The sound trigger service is enabled */ + SOUND_TRIGGER_STATE_DISABLED = 1 /* The sound trigger service is disabled */ +} sound_trigger_service_state_t; + #define RECOGNITION_MODE_VOICE_TRIGGER 0x1 /* simple voice trigger */ #define RECOGNITION_MODE_USER_IDENTIFICATION 0x2 /* trigger only if one user in model identified */ #define RECOGNITION_MODE_USER_AUTHENTICATION 0x4 /* trigger only if one user in mode authenticated */ - #define RECOGNITION_STATUS_SUCCESS 0 #define RECOGNITION_STATUS_ABORT 1 #define RECOGNITION_STATUS_FAILURE 2 @@ -42,7 +47,6 @@ typedef enum { SOUND_MODEL_TYPE_KEYPHRASE = 0 /* use for key phrase sound models */ } sound_trigger_sound_model_type_t; - typedef struct sound_trigger_uuid_s { unsigned int timeLow; unsigned short timeMid; @@ -73,6 +77,7 @@ struct sound_trigger_properties { capture_transition is true*/ bool concurrent_capture; /* supports capture by other use cases while detection is active */ + bool trigger_in_event; /* returns the trigger capture in event */ unsigned int power_consumption_mw; /* Rated power consumption when detection is active with TDB silence/sound/speech ratio */ }; @@ -144,9 +149,14 @@ struct sound_trigger_recognition_event { for capture. A negative value is possible (e.g. if key phrase is also available for capture */ - int capture_preamble_ms; /* duration in ms of audio captured + int capture_preamble_ms; /* duration in ms of audio captured before the start of the trigger. 0 if none. */ + bool trigger_in_data; /* the opaque data is the capture of + the trigger sound */ + audio_config_t audio_config; /* audio format of either the trigger in + event data or to use for capture of the + rest of the utterance */ unsigned int data_size; /* size of opaque event data */ unsigned int data_offset; /* offset of opaque data start from start of this struct (e.g sizeof struct @@ -169,16 +179,13 @@ struct sound_trigger_confidence_level { struct sound_trigger_phrase_recognition_extra { unsigned int id; /* keyphrase ID */ unsigned int recognition_modes; /* recognition modes used for this keyphrase */ + unsigned int confidence_level; /* confidence level for mode RECOGNITION_MODE_VOICE_TRIGGER */ unsigned int num_levels; /* number of user confidence levels */ struct sound_trigger_confidence_level levels[SOUND_TRIGGER_MAX_USERS]; }; struct sound_trigger_phrase_recognition_event { struct sound_trigger_recognition_event common; - bool key_phrase_in_capture; /* true if the key phrase is - present in audio data available - for capture after recognition - event is fired */ unsigned int num_phrases; struct sound_trigger_phrase_recognition_extra phrase_extras[SOUND_TRIGGER_MAX_PHRASES]; }; @@ -204,10 +211,11 @@ struct sound_trigger_recognition_config { * Event sent via load sound model callback */ struct sound_trigger_model_event { - int status; /* sound model status e.g. SOUND_MODEL_STATUS_UPDATED */ - unsigned int data_size; /* size of event data if any. Size of updated sound model if + int status; /* sound model status e.g. SOUND_MODEL_STATUS_UPDATED */ + sound_model_handle_t model; /* loaded sound model that triggered the event */ + unsigned int data_size; /* size of event data if any. Size of updated sound model if status is SOUND_MODEL_STATUS_UPDATED */ - unsigned int data_offset; /* offset of data start from start of this struct + unsigned int data_offset; /* offset of data start from start of this struct (e.g sizeof struct sound_trigger_model_event) */ }; |