Sound trigger middleware service definition
These are the AIDL files that define the sound trigger middleware interface. This service is intended to replace the existing frameworks/av/include/soundtrigger/ISoundTriggerHwService.h using AIDL in order to avoid a large amount of hand-written parceling code and other forms of boilerplate, and provide cross-language support. Change-Id: Ia783ba4f1ea7335a984396e7024cac0411699403 Bug: 142070343
This commit is contained in:
@@ -133,3 +133,41 @@ aidl_interface {
|
||||
},
|
||||
}
|
||||
|
||||
aidl_interface {
|
||||
name: "soundtrigger_middleware-aidl",
|
||||
local_include_dir: "java",
|
||||
srcs: [
|
||||
"java/android/media/soundtrigger_middleware/ConfidenceLevel.aidl",
|
||||
"java/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl",
|
||||
"java/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl",
|
||||
"java/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl",
|
||||
"java/android/media/soundtrigger_middleware/Phrase.aidl",
|
||||
"java/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl",
|
||||
"java/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl",
|
||||
"java/android/media/soundtrigger_middleware/PhraseSoundModel.aidl",
|
||||
"java/android/media/soundtrigger_middleware/RecognitionConfig.aidl",
|
||||
"java/android/media/soundtrigger_middleware/RecognitionEvent.aidl",
|
||||
"java/android/media/soundtrigger_middleware/RecognitionMode.aidl",
|
||||
"java/android/media/soundtrigger_middleware/RecognitionStatus.aidl",
|
||||
"java/android/media/soundtrigger_middleware/SoundModel.aidl",
|
||||
"java/android/media/soundtrigger_middleware/SoundModelType.aidl",
|
||||
"java/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl",
|
||||
"java/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl",
|
||||
"java/android/media/soundtrigger_middleware/Status.aidl",
|
||||
],
|
||||
backend:
|
||||
{
|
||||
cpp: {
|
||||
enabled: true,
|
||||
},
|
||||
java: {
|
||||
// Already generated as part of the entire media java library.
|
||||
enabled: false,
|
||||
},
|
||||
ndk: {
|
||||
// Not currently needed, and disabled because of b/146172425
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
imports: [ "audio_common-aidl" ],
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* A recognition confidence level.
|
||||
* This type is used to represent either a threshold or an actual detection confidence level.
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable ConfidenceLevel {
|
||||
/** user ID. */
|
||||
int userId;
|
||||
/**
|
||||
* Confidence level in percent (0 - 100).
|
||||
* <ul>
|
||||
* <li>Min level for recognition configuration
|
||||
* <li>Detected level for recognition event.
|
||||
* </ul>
|
||||
*/
|
||||
int levelPercent;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.RecognitionEvent;
|
||||
import android.media.soundtrigger_middleware.PhraseRecognitionEvent;
|
||||
|
||||
/**
|
||||
* Main interface for a client to get notifications of events coming from this module.
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
oneway interface ISoundTriggerCallback {
|
||||
/**
|
||||
* Invoked whenever a recognition event is triggered (typically, on recognition, but also in
|
||||
* case of external aborting of a recognition or a forced recognition event - see the status
|
||||
* code in the event for determining).
|
||||
*/
|
||||
void onRecognition(int modelHandle, in RecognitionEvent event);
|
||||
/**
|
||||
* Invoked whenever a phrase recognition event is triggered (typically, on recognition, but
|
||||
* also in case of external aborting of a recognition or a forced recognition event - see the
|
||||
* status code in the event for determining).
|
||||
*/
|
||||
void onPhraseRecognition(int modelHandle, in PhraseRecognitionEvent event);
|
||||
/**
|
||||
* Notifies the client the recognition has become available after previously having been
|
||||
* unavailable, or vice versa. This method will always be invoked once immediately after
|
||||
* attachment, and then every time there is a change in availability.
|
||||
* When availability changes from available to unavailable, all active recognitions are aborted,
|
||||
* and this event will be sent in addition to the abort event.
|
||||
*/
|
||||
void onRecognitionAvailabilityChange(boolean available);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.ISoundTriggerModule;
|
||||
import android.media.soundtrigger_middleware.ISoundTriggerCallback;
|
||||
import android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor;
|
||||
|
||||
/**
|
||||
* Main entry point into this module.
|
||||
*
|
||||
* Allows the client to enumerate the available soundtrigger devices and their capabilities, then
|
||||
* attach to either one of them in order to use it.
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
interface ISoundTriggerMiddlewareService {
|
||||
/**
|
||||
* Query the available modules and their capabilities.
|
||||
*/
|
||||
SoundTriggerModuleDescriptor[] listModules();
|
||||
|
||||
/**
|
||||
* Attach to one of the available modules.
|
||||
* listModules() must be called prior to calling this method and the provided handle must be
|
||||
* one of the handles from the returned list.
|
||||
*/
|
||||
ISoundTriggerModule attach(int handle, ISoundTriggerCallback callback);
|
||||
|
||||
/**
|
||||
* Notify the service that external input capture is taking place. This may cause some of the
|
||||
* active recognitions to be aborted.
|
||||
*/
|
||||
void setExternalCaptureState(boolean active);
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.SoundModel;
|
||||
import android.media.soundtrigger_middleware.PhraseSoundModel;
|
||||
import android.media.soundtrigger_middleware.RecognitionConfig;
|
||||
|
||||
/**
|
||||
* A sound-trigger module.
|
||||
*
|
||||
* This interface allows a client to operate a sound-trigger device, intended for low-power
|
||||
* detection of various sound patterns, represented by a "sound model".
|
||||
*
|
||||
* Basic operation is to load a sound model (either a generic one or a "phrase" model), then
|
||||
* initiate recognition on this model. A trigger will be delivered asynchronously via a callback
|
||||
* provided by the caller earlier, when attaching to this interface.
|
||||
*
|
||||
* In additon to recognition events, this module will also produce abort events in cases where
|
||||
* recognition has been externally preempted.
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
interface ISoundTriggerModule {
|
||||
/**
|
||||
* Load a sound model. Will return a handle to the model on success or will throw a
|
||||
* ServiceSpecificException with one of the {@link Status} error codes upon a recoverable error
|
||||
* (for example, lack of resources of loading a model at the time of call.
|
||||
* Model must eventually be unloaded using {@link #unloadModel(int)} prior to detaching.
|
||||
*
|
||||
* May throw a ServiceSpecificException with an RESOURCE_CONTENTION status to indicate that
|
||||
* resources required for loading the model are currently consumed by other clients.
|
||||
*/
|
||||
int loadModel(in SoundModel model);
|
||||
|
||||
/**
|
||||
* Load a phrase sound model. Will return a handle to the model on success or will throw a
|
||||
* ServiceSpecificException with one of the {@link Status} error codes upon a recoverable error
|
||||
* (for example, lack of resources of loading a model at the time of call.
|
||||
* Model must eventually be unloaded using unloadModel prior to detaching.
|
||||
*
|
||||
* May throw a ServiceSpecificException with an RESOURCE_CONTENTION status to indicate that
|
||||
* resources required for loading the model are currently consumed by other clients.
|
||||
*/
|
||||
int loadPhraseModel(in PhraseSoundModel model);
|
||||
|
||||
/**
|
||||
* Unload a model, previously loaded with loadModel or loadPhraseModel. After unloading, model
|
||||
* can no longer be used for recognition and the resources occupied by it are released.
|
||||
* Model must not be active at the time of unloading. Cient may call stopRecognition to ensure
|
||||
* that.
|
||||
*/
|
||||
void unloadModel(int modelHandle);
|
||||
|
||||
/**
|
||||
* Initiate recognition on a previously loaded model.
|
||||
* Recognition event would eventually be delivered via the client-provided callback, typically
|
||||
* supplied during attachment to this interface.
|
||||
*
|
||||
* Once a recognition event is passed to the client, the recognition automatically become
|
||||
* inactive, unless the event is of the RecognitionStatus.FORCED kind. Client can also shut down
|
||||
* the recognition explicitly, via stopRecognition.
|
||||
*/
|
||||
void startRecognition(int modelHandle, in RecognitionConfig config);
|
||||
|
||||
/**
|
||||
* Stop a recognition of a previously active recognition. Will NOT generate a recognition event.
|
||||
* This call is idempotent - calling it on an inactive model has no effect. However, it must
|
||||
* only be used with a loaded model handle.
|
||||
*/
|
||||
void stopRecognition(int modelHandle);
|
||||
|
||||
/**
|
||||
* Force generation of a recognition event. Handle must be that of a loaded model. If
|
||||
* recognition is inactive, will do nothing. If recognition is active, will asynchronously
|
||||
* deliever an event with RecognitionStatus.FORCED status and leave recognition in active state.
|
||||
* To avoid any race conditions, once an event signalling the automatic stopping of recognition
|
||||
* is sent, no more forced events will get sent (even if previously requested) until recognition
|
||||
* is explicitly started again.
|
||||
*
|
||||
* Since not all module implementations support this feature, may throw a
|
||||
* ServiceSpecificException with an OPERATION_NOT_SUPPORTED status.
|
||||
*/
|
||||
void forceRecognitionEvent(int modelHandle);
|
||||
|
||||
/**
|
||||
* Detach from the module, releasing any active resources.
|
||||
* This will ensure the client callback is no longer called after this call returns.
|
||||
* All models must have been unloaded prior to calling this method.
|
||||
*/
|
||||
void detach();
|
||||
}
|
||||
34
media/java/android/media/soundtrigger_middleware/Phrase.aidl
Normal file
34
media/java/android/media/soundtrigger_middleware/Phrase.aidl
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* Key phrase descriptor.
|
||||
*
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable Phrase {
|
||||
/** Unique keyphrase ID assigned at enrollment time. */
|
||||
int id;
|
||||
/** Recognition modes supported by this key phrase (bitfield of RecognitionMode enum). */
|
||||
int recognitionModes;
|
||||
/** List of users IDs associated with this key phrase. */
|
||||
int[] users;
|
||||
/** Locale - Java Locale style (e.g. en_US). */
|
||||
String locale;
|
||||
/** Phrase text. */
|
||||
String text;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.PhraseRecognitionExtra;
|
||||
import android.media.soundtrigger_middleware.RecognitionEvent;
|
||||
|
||||
/**
|
||||
* An event that gets sent to indicate a phrase recognition (or aborting of the recognition
|
||||
process).
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable PhraseRecognitionEvent {
|
||||
/** Common recognition event. */
|
||||
RecognitionEvent common;
|
||||
/** List of descriptors for each recognized key phrase */
|
||||
PhraseRecognitionExtra[] phraseExtras;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.ConfidenceLevel;
|
||||
|
||||
/**
|
||||
* Specialized recognition event for key phrase detection.
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable PhraseRecognitionExtra {
|
||||
// TODO(ytai): Constants / enums.
|
||||
|
||||
/** keyphrase ID */
|
||||
int id;
|
||||
/** recognition modes used for this keyphrase */
|
||||
int recognitionModes;
|
||||
/** confidence level for mode RECOGNITION_MODE_VOICE_TRIGGER */
|
||||
int confidenceLevel;
|
||||
/** number of user confidence levels */
|
||||
ConfidenceLevel[] levels;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.SoundModel;
|
||||
import android.media.soundtrigger_middleware.Phrase;
|
||||
|
||||
/**
|
||||
* Specialized sound model for key phrase detection.
|
||||
* Proprietary representation of key phrases in binary data must match
|
||||
* information indicated by phrases field.
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable PhraseSoundModel {
|
||||
/** Common part of sound model descriptor */
|
||||
SoundModel common;
|
||||
/** List of descriptors for key phrases supported by this sound model */
|
||||
Phrase[] phrases;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.PhraseRecognitionExtra;
|
||||
|
||||
/**
|
||||
* Configuration for tuning behavior of an active recognition process.
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable RecognitionConfig {
|
||||
/* Capture and buffer audio for this recognition instance. */
|
||||
boolean captureRequested;
|
||||
|
||||
/* Configuration for each key phrase. */
|
||||
PhraseRecognitionExtra[] phraseRecognitionExtras;
|
||||
|
||||
/** Opaque capture configuration data. */
|
||||
byte[] data;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.audio.common.AudioConfig;
|
||||
import android.media.soundtrigger_middleware.RecognitionStatus;
|
||||
import android.media.soundtrigger_middleware.SoundModelType;
|
||||
|
||||
/**
|
||||
* An event that gets sent to indicate a recognition (or aborting of the recognition process).
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable RecognitionEvent {
|
||||
/** Recognition status. */
|
||||
RecognitionStatus status;
|
||||
/** Event type, same as sound model type. */
|
||||
SoundModelType type;
|
||||
/** Is it possible to capture audio from this utterance buffered by the implementation. */
|
||||
boolean captureAvailable;
|
||||
/* Audio session ID. framework use. */
|
||||
int captureSession;
|
||||
/**
|
||||
* Delay in ms between end of model detection and start of audio available for capture.
|
||||
* A negative value is possible (e.g. if key phrase is also available for Capture.
|
||||
*/
|
||||
int captureDelayMs;
|
||||
/** Duration in ms of audio captured before the start of the trigger. 0 if none. */
|
||||
int capturePreambleMs;
|
||||
/** If true, the 'data' field below contains the capture of the trigger sound. */
|
||||
boolean triggerInData;
|
||||
/**
|
||||
* Audio format of either the trigger in event data or to use for capture of the rest of the
|
||||
* utterance.
|
||||
*/
|
||||
AudioConfig audioConfig;
|
||||
/** Additional data. */
|
||||
byte[] data;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* Recognition mode.
|
||||
* {@hide}
|
||||
*/
|
||||
@Backing(type="int")
|
||||
enum RecognitionMode {
|
||||
/** Simple voice trigger. */
|
||||
VOICE_TRIGGER = 0x1,
|
||||
/** Trigger only if one user in model identified. */
|
||||
USER_IDENTIFICATION = 0x2,
|
||||
/** Trigger only if one user in model authenticated. */
|
||||
USER_AUTHENTICATION = 0x4,
|
||||
/** Generic sound trigger. */
|
||||
GENERIC_TRIGGER = 0x8,
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* A status for indicating the type of a recognition event.
|
||||
* {@hide}
|
||||
*/
|
||||
@Backing(type="int")
|
||||
enum RecognitionStatus {
|
||||
/** Recognition success. */
|
||||
SUCCESS = 0,
|
||||
/** Recognition aborted (e.g. capture preempted by another use-case. */
|
||||
ABORTED = 1,
|
||||
/** Recognition failure. */
|
||||
FAILURE = 2,
|
||||
/**
|
||||
* Recognition event was triggered by a forceRecognitionEvent request, not by the DSP.
|
||||
* Note that forced detections *do not* stop the active recognition, unlike the other types.
|
||||
*/
|
||||
FORCED = 3
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.SoundModelType;
|
||||
|
||||
/**
|
||||
* Base sound model descriptor. This struct can be extended for various specific types by way of
|
||||
* aggregation.
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable SoundModel {
|
||||
/** Model type. */
|
||||
SoundModelType type;
|
||||
/** Unique sound model ID. */
|
||||
String uuid;
|
||||
/**
|
||||
* Unique vendor ID. Identifies the engine the sound model
|
||||
* was build for */
|
||||
String vendorUuid;
|
||||
/** Opaque data transparent to Android framework */
|
||||
byte[] data;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* Sound model type.
|
||||
* {@hide}
|
||||
*/
|
||||
@Backing(type="int")
|
||||
enum SoundModelType {
|
||||
/** Unspecified sound model type */
|
||||
UNKNOWN = -1,
|
||||
/** Key phrase sound models */
|
||||
KEYPHRASE = 0,
|
||||
/** All models other than keyphrase */
|
||||
GENERIC = 1,
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
import android.media.soundtrigger_middleware.SoundTriggerModuleProperties;
|
||||
|
||||
/**
|
||||
* A descriptor of an available sound trigger module, containing the handle used to reference the
|
||||
* module, as well its capabilities.
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable SoundTriggerModuleDescriptor {
|
||||
/** Module handle to be used for attaching to it. */
|
||||
int handle;
|
||||
/** Module capabilities. */
|
||||
SoundTriggerModuleProperties properties;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* Capabilities of a sound trigger module.
|
||||
* {@hide}
|
||||
*/
|
||||
parcelable SoundTriggerModuleProperties {
|
||||
/** Implementor name */
|
||||
String implementor;
|
||||
/** Implementation description */
|
||||
String description;
|
||||
/** Implementation version */
|
||||
int version;
|
||||
/**
|
||||
* Unique implementation ID. The UUID must change with each version of
|
||||
the engine implementation */
|
||||
String uuid;
|
||||
/** Maximum number of concurrent sound models loaded */
|
||||
int maxSoundModels;
|
||||
/** Maximum number of key phrases */
|
||||
int maxKeyPhrases;
|
||||
/** Maximum number of concurrent users detected */
|
||||
int maxUsers;
|
||||
/** All supported modes. e.g RecognitionMode.VOICE_TRIGGER */
|
||||
int recognitionModes;
|
||||
/** Supports seamless transition from detection to capture */
|
||||
boolean captureTransition;
|
||||
/** Maximum buffering capacity in ms if captureTransition is true */
|
||||
int maxBufferMs;
|
||||
/** Supports capture by other use cases while detection is active */
|
||||
boolean concurrentCapture;
|
||||
/** Returns the trigger capture in event */
|
||||
boolean triggerInEvent;
|
||||
/**
|
||||
* Rated power consumption when detection is active with TDB
|
||||
* silence/sound/speech ratio */
|
||||
int powerConsumptionMw;
|
||||
}
|
||||
29
media/java/android/media/soundtrigger_middleware/Status.aidl
Normal file
29
media/java/android/media/soundtrigger_middleware/Status.aidl
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.media.soundtrigger_middleware;
|
||||
|
||||
/**
|
||||
* {@hide}
|
||||
*/
|
||||
@Backing(type="int")
|
||||
enum Status {
|
||||
/** Success. */
|
||||
SUCCESS = 0,
|
||||
/** Failure due to resource contention. This is typically a temporary condition. */
|
||||
RESOURCE_CONTENTION = 1,
|
||||
/** Operation is not supported in this implementation. This is a permanent condition. */
|
||||
OPERATION_NOT_SUPPORTED = 2,
|
||||
}
|
||||
Reference in New Issue
Block a user