summaryrefslogtreecommitdiffstats
path: root/tests/SoundTriggerTests
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-07-30 08:57:39 -0700
committerEric Laurent <elaurent@google.com>2014-08-04 16:35:27 -0700
commitd3b8223377b8046280e4c09e728edc600171f941 (patch)
tree88d3e6bb021548e90b415791c3dbddc8870be60c /tests/SoundTriggerTests
parent2265c8f70088b88b34ee9e315f7ae5519de1cdba (diff)
downloadframeworks_base-d3b8223377b8046280e4c09e728edc600171f941.zip
frameworks_base-d3b8223377b8046280e4c09e728edc600171f941.tar.gz
frameworks_base-d3b8223377b8046280e4c09e728edc600171f941.tar.bz2
SoundTrigger API update.
Add sound model update callback. Add native service state change callback. Add vendor UUID in sound model description. Add coarse confidence level in recognition event. Add capture format in recognition event. Bug: 12378680. Change-Id: Id63437819ec7b9a4a69e1ff6185b747e20cad95e
Diffstat (limited to 'tests/SoundTriggerTests')
-rw-r--r--tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java67
1 files changed, 48 insertions, 19 deletions
diff --git a/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java b/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java
index 4372ff9..65a3d8a 100644
--- a/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java
+++ b/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java
@@ -23,6 +23,7 @@ import android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionEvent;
import android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionExtra;
import android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel;
import android.hardware.soundtrigger.SoundTrigger.RecognitionEvent;
+import android.media.AudioFormat;
import android.os.Parcel;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.LargeTest;
@@ -97,7 +98,8 @@ public class SoundTriggerTest extends InstrumentationTestCase {
Keyphrase[] keyphrases = new Keyphrase[2];
keyphrases[0] = new Keyphrase(1, 0, "en-US", "hello", new int[] {0});
keyphrases[1] = new Keyphrase(2, 0, "fr-FR", "there", new int[] {1, 2});
- KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), null, keyphrases);
+ KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), UUID.randomUUID(),
+ null, keyphrases);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -119,8 +121,8 @@ public class SoundTriggerTest extends InstrumentationTestCase {
Keyphrase[] keyphrases = new Keyphrase[2];
keyphrases[0] = new Keyphrase(1, 0, "en-US", "hello", new int[] {0});
keyphrases[1] = new Keyphrase(2, 0, "fr-FR", "there", new int[] {1, 2});
- KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), new byte[0],
- keyphrases);
+ KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), UUID.randomUUID(),
+ new byte[0], keyphrases);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -141,7 +143,8 @@ public class SoundTriggerTest extends InstrumentationTestCase {
public void testKeyphraseSoundModelParcelUnparcel_noKeyphrases() throws Exception {
byte[] data = new byte[10];
mRandom.nextBytes(data);
- KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), data, null);
+ KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), UUID.randomUUID(),
+ data, null);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -162,8 +165,8 @@ public class SoundTriggerTest extends InstrumentationTestCase {
public void testKeyphraseSoundModelParcelUnparcel_zeroKeyphrases() throws Exception {
byte[] data = new byte[10];
mRandom.nextBytes(data);
- KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), data,
- new Keyphrase[0]);
+ KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), UUID.randomUUID(),
+ data, new Keyphrase[0]);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -187,7 +190,8 @@ public class SoundTriggerTest extends InstrumentationTestCase {
keyphrases[1] = new Keyphrase(2, 0, "fr-FR", "there", new int[] {1, 2});
byte[] data = new byte[200 * 1024];
mRandom.nextBytes(data);
- KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), data, keyphrases);
+ KeyphraseSoundModel ksm = new KeyphraseSoundModel(UUID.randomUUID(), UUID.randomUUID(),
+ data, keyphrases);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -207,7 +211,7 @@ public class SoundTriggerTest extends InstrumentationTestCase {
@SmallTest
public void testRecognitionEventParcelUnparcel_noData() throws Exception {
RecognitionEvent re = new RecognitionEvent(SoundTrigger.RECOGNITION_STATUS_SUCCESS, 1,
- true, 2, 3, 4, null);
+ true, 2, 3, 4, false, null, null);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -224,7 +228,7 @@ public class SoundTriggerTest extends InstrumentationTestCase {
@SmallTest
public void testRecognitionEventParcelUnparcel_zeroData() throws Exception {
RecognitionEvent re = new RecognitionEvent(SoundTrigger.RECOGNITION_STATUS_FAILURE, 1,
- true, 2, 3, 4, new byte[1]);
+ true, 2, 3, 4, false, null, new byte[1]);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -243,7 +247,32 @@ public class SoundTriggerTest extends InstrumentationTestCase {
byte[] data = new byte[200 * 1024];
mRandom.nextBytes(data);
RecognitionEvent re = new RecognitionEvent(SoundTrigger.RECOGNITION_STATUS_ABORT, 1,
- false, 2, 3, 4, data);
+ false, 2, 3, 4, false, null, data);
+
+ // Write to a parcel
+ Parcel parcel = Parcel.obtain();
+ re.writeToParcel(parcel, 0);
+
+ // Read from it
+ parcel.setDataPosition(0);
+ RecognitionEvent unparceled = RecognitionEvent.CREATOR.createFromParcel(parcel);
+
+ // Verify that they are the same
+ assertEquals(re, unparceled);
+ }
+
+ @SmallTest
+ public void testRecognitionEventParcelUnparcel_largeAudioData() throws Exception {
+ byte[] data = new byte[200 * 1024];
+ mRandom.nextBytes(data);
+ RecognitionEvent re = new RecognitionEvent(SoundTrigger.RECOGNITION_STATUS_ABORT, 1,
+ false, 2, 3, 4, true,
+ (new AudioFormat.Builder())
+ .setChannelMask(AudioFormat.CHANNEL_IN_MONO)
+ .setEncoding(AudioFormat.ENCODING_PCM_16BIT)
+ .setSampleRate(16000)
+ .build(),
+ data);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -260,7 +289,7 @@ public class SoundTriggerTest extends InstrumentationTestCase {
@SmallTest
public void testKeyphraseRecognitionEventParcelUnparcel_noKeyphrases() throws Exception {
KeyphraseRecognitionEvent re = new KeyphraseRecognitionEvent(
- SoundTrigger.RECOGNITION_STATUS_SUCCESS, 1, true, 2, 3, 4, null, false, null);
+ SoundTrigger.RECOGNITION_STATUS_SUCCESS, 1, true, 2, 3, 4, false, null, null, null);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -279,8 +308,8 @@ public class SoundTriggerTest extends InstrumentationTestCase {
public void testKeyphraseRecognitionEventParcelUnparcel_zeroData() throws Exception {
KeyphraseRecognitionExtra[] kpExtra = new KeyphraseRecognitionExtra[0];
KeyphraseRecognitionEvent re = new KeyphraseRecognitionEvent(
- SoundTrigger.RECOGNITION_STATUS_FAILURE, 2, true, 2, 3, 4, new byte[1],
- true, kpExtra);
+ SoundTrigger.RECOGNITION_STATUS_FAILURE, 2, true, 2, 3, 4, false, null, new byte[1],
+ kpExtra);
// Write to a parcel
Parcel parcel = Parcel.obtain();
@@ -303,20 +332,20 @@ public class SoundTriggerTest extends InstrumentationTestCase {
ConfidenceLevel cl1 = new ConfidenceLevel(1, 90);
ConfidenceLevel cl2 = new ConfidenceLevel(2, 30);
kpExtra[0] = new KeyphraseRecognitionExtra(1,
- SoundTrigger.RECOGNITION_MODE_USER_IDENTIFICATION,
+ SoundTrigger.RECOGNITION_MODE_USER_IDENTIFICATION, 0,
new ConfidenceLevel[] {cl1, cl2});
kpExtra[1] = new KeyphraseRecognitionExtra(1,
- SoundTrigger.RECOGNITION_MODE_VOICE_TRIGGER,
+ SoundTrigger.RECOGNITION_MODE_VOICE_TRIGGER, 0,
new ConfidenceLevel[] {cl2});
kpExtra[2] = new KeyphraseRecognitionExtra(1,
- SoundTrigger.RECOGNITION_MODE_VOICE_TRIGGER, null);
+ SoundTrigger.RECOGNITION_MODE_VOICE_TRIGGER, 0, null);
kpExtra[3] = new KeyphraseRecognitionExtra(1,
- SoundTrigger.RECOGNITION_MODE_VOICE_TRIGGER,
+ SoundTrigger.RECOGNITION_MODE_VOICE_TRIGGER, 0,
new ConfidenceLevel[0]);
KeyphraseRecognitionEvent re = new KeyphraseRecognitionEvent(
- SoundTrigger.RECOGNITION_STATUS_FAILURE, 1, true, 2, 3, 4, data,
- false, kpExtra);
+ SoundTrigger.RECOGNITION_STATUS_FAILURE, 1, true, 2, 3, 4, false, null, data,
+ kpExtra);
// Write to a parcel
Parcel parcel = Parcel.obtain();