Search in sources :

Example 26 with RecognitionConfig

use of android.hardware.soundtrigger.SoundTrigger.RecognitionConfig in project android_frameworks_base by ResurrectionRemix.

the class GenericSoundModelTest method testStartStopGenericSoundModel.

@LargeTest
public void testStartStopGenericSoundModel() throws Exception {
    GenericSoundModel model = new_sound_model();
    boolean captureTriggerAudio = true;
    boolean allowMultipleTriggers = true;
    RecognitionConfig config = new RecognitionConfig(captureTriggerAudio, allowMultipleTriggers, null, null);
    TestRecognitionStatusCallback spyCallback = spy(new TestRecognitionStatusCallback());
    // Update and start sound model recognition
    soundTriggerService.updateSoundModel(model);
    loadedModelUuids.add(model.uuid);
    int r = soundTriggerService.startRecognition(new ParcelUuid(model.uuid), spyCallback, config);
    assertEquals("Could Not Start Recognition with code: " + r, android.hardware.soundtrigger.SoundTrigger.STATUS_OK, r);
    // Stop recognition
    r = soundTriggerService.stopRecognition(new ParcelUuid(model.uuid), spyCallback);
    assertEquals("Could Not Stop Recognition with code: " + r, android.hardware.soundtrigger.SoundTrigger.STATUS_OK, r);
}
Also used : ParcelUuid(android.os.ParcelUuid) GenericSoundModel(android.hardware.soundtrigger.SoundTrigger.GenericSoundModel) RecognitionConfig(android.hardware.soundtrigger.SoundTrigger.RecognitionConfig) LargeTest(android.test.suitebuilder.annotation.LargeTest)

Example 27 with RecognitionConfig

use of android.hardware.soundtrigger.SoundTrigger.RecognitionConfig in project android_frameworks_base by ResurrectionRemix.

the class GenericSoundModelTest method testTriggerGenericSoundModel.

@LargeTest
public void testTriggerGenericSoundModel() throws Exception {
    GenericSoundModel model = new_sound_model();
    boolean captureTriggerAudio = true;
    boolean allowMultipleTriggers = true;
    RecognitionConfig config = new RecognitionConfig(captureTriggerAudio, allowMultipleTriggers, null, null);
    TestRecognitionStatusCallback spyCallback = spy(new TestRecognitionStatusCallback());
    // Update and start sound model
    soundTriggerService.updateSoundModel(model);
    loadedModelUuids.add(model.uuid);
    soundTriggerService.startRecognition(new ParcelUuid(model.uuid), spyCallback, config);
    // Send trigger to stub HAL
    Socket socket = new Socket(InetAddress.getLocalHost(), 14035);
    DataOutputStream out = new DataOutputStream(socket.getOutputStream());
    out.writeBytes("trig " + model.uuid.toString() + "\r\n");
    out.flush();
    socket.close();
    // Verify trigger was received
    verify(spyCallback, timeout(100)).onGenericSoundTriggerDetected(any());
}
Also used : ParcelUuid(android.os.ParcelUuid) GenericSoundModel(android.hardware.soundtrigger.SoundTrigger.GenericSoundModel) DataOutputStream(java.io.DataOutputStream) RecognitionConfig(android.hardware.soundtrigger.SoundTrigger.RecognitionConfig) Socket(java.net.Socket) LargeTest(android.test.suitebuilder.annotation.LargeTest)

Example 28 with RecognitionConfig

use of android.hardware.soundtrigger.SoundTrigger.RecognitionConfig in project android_frameworks_base by crdroidandroid.

the class GenericSoundModelTest method testTriggerGenericSoundModel.

@LargeTest
public void testTriggerGenericSoundModel() throws Exception {
    GenericSoundModel model = new_sound_model();
    boolean captureTriggerAudio = true;
    boolean allowMultipleTriggers = true;
    RecognitionConfig config = new RecognitionConfig(captureTriggerAudio, allowMultipleTriggers, null, null);
    TestRecognitionStatusCallback spyCallback = spy(new TestRecognitionStatusCallback());
    // Update and start sound model
    soundTriggerService.updateSoundModel(model);
    loadedModelUuids.add(model.uuid);
    soundTriggerService.startRecognition(new ParcelUuid(model.uuid), spyCallback, config);
    // Send trigger to stub HAL
    Socket socket = new Socket(InetAddress.getLocalHost(), 14035);
    DataOutputStream out = new DataOutputStream(socket.getOutputStream());
    out.writeBytes("trig " + model.uuid.toString() + "\r\n");
    out.flush();
    socket.close();
    // Verify trigger was received
    verify(spyCallback, timeout(100)).onGenericSoundTriggerDetected(any());
}
Also used : ParcelUuid(android.os.ParcelUuid) GenericSoundModel(android.hardware.soundtrigger.SoundTrigger.GenericSoundModel) DataOutputStream(java.io.DataOutputStream) RecognitionConfig(android.hardware.soundtrigger.SoundTrigger.RecognitionConfig) Socket(java.net.Socket) LargeTest(android.test.suitebuilder.annotation.LargeTest)

Example 29 with RecognitionConfig

use of android.hardware.soundtrigger.SoundTrigger.RecognitionConfig in project android_frameworks_base by crdroidandroid.

the class SoundTriggerHelper method startRecognitionLocked.

// A single routine that implements the start recognition logic for both generic and keyphrase
// models.
private int startRecognitionLocked(ModelData modelData, boolean notify) {
    IRecognitionStatusCallback callback = modelData.getCallback();
    int handle = modelData.getHandle();
    RecognitionConfig config = modelData.getRecognitionConfig();
    if (callback == null || handle == INVALID_VALUE || config == null) {
        // Nothing to do here.
        Slog.w(TAG, "startRecognition: Bad data passed in.");
        MetricsLogger.count(mContext, "sth_start_recognition_error", 1);
        return STATUS_ERROR;
    }
    if (!isRecognitionAllowed()) {
        // Nothing to do here.
        Slog.w(TAG, "startRecognition requested but not allowed.");
        MetricsLogger.count(mContext, "sth_start_recognition_not_allowed", 1);
        return STATUS_OK;
    }
    int status = mModule.startRecognition(handle, config);
    if (status != SoundTrigger.STATUS_OK) {
        Slog.w(TAG, "startRecognition failed with " + status);
        MetricsLogger.count(mContext, "sth_start_recognition_error", 1);
        // Notify of error if needed.
        if (notify) {
            try {
                callback.onError(status);
            } catch (RemoteException e) {
                Slog.w(TAG, "RemoteException in onError", e);
            }
        }
    } else {
        Slog.i(TAG, "startRecognition successful.");
        MetricsLogger.count(mContext, "sth_start_recognition_success", 1);
        modelData.setStarted();
        // Notify of resume if needed.
        if (notify) {
            try {
                callback.onRecognitionResumed();
            } catch (RemoteException e) {
                Slog.w(TAG, "RemoteException in onRecognitionResumed", e);
            }
        }
    }
    if (DBG) {
        Slog.d(TAG, "Model being started :" + modelData.toString());
    }
    return status;
}
Also used : RecognitionConfig(android.hardware.soundtrigger.SoundTrigger.RecognitionConfig) RemoteException(android.os.RemoteException) IRecognitionStatusCallback(android.hardware.soundtrigger.IRecognitionStatusCallback)

Aggregations

RecognitionConfig (android.hardware.soundtrigger.SoundTrigger.RecognitionConfig)29 RemoteException (android.os.RemoteException)17 GenericSoundModel (android.hardware.soundtrigger.SoundTrigger.GenericSoundModel)12 ParcelUuid (android.os.ParcelUuid)12 LargeTest (android.test.suitebuilder.annotation.LargeTest)12 IRecognitionStatusCallback (android.hardware.soundtrigger.IRecognitionStatusCallback)8 DataOutputStream (java.io.DataOutputStream)8 Socket (java.net.Socket)8 ConfidenceLevel (android.hardware.soundtrigger.SoundTrigger.ConfidenceLevel)5 KeyphraseRecognitionExtra (android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionExtra)5 ArrayList (java.util.ArrayList)4 Random (java.util.Random)4 UUID (java.util.UUID)4