demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java
Go to the documentation of this file.
1 package ai.picovoice.porcupine.demo;
2 
3 import static org.junit.Assert.assertSame;
4 import static org.junit.Assert.assertTrue;
5 
6 import android.content.Context;
7 import android.content.res.AssetManager;
8 
9 import androidx.test.ext.junit.runners.AndroidJUnit4;
10 import androidx.test.platform.app.InstrumentationRegistry;
11 
12 import com.microsoft.appcenter.espresso.Factory;
13 import com.microsoft.appcenter.espresso.ReportHelper;
14 
15 import org.junit.After;
16 import org.junit.Before;
17 import org.junit.Rule;
18 import org.junit.Test;
19 import org.junit.runner.RunWith;
20 
21 import java.io.BufferedInputStream;
22 import java.io.BufferedOutputStream;
23 import java.io.File;
24 import java.io.FileInputStream;
25 import java.io.FileOutputStream;
26 import java.io.IOException;
27 import java.io.InputStream;
28 import java.io.OutputStream;
29 import java.nio.ByteBuffer;
30 import java.nio.ByteOrder;
31 import java.util.ArrayList;
32 
35 
36 
37 @RunWith(AndroidJUnit4.class)
38 public class PorcupineTest {
39  @Rule
40  public ReportHelper reportHelper = Factory.getReportHelper();
41  Context testContext;
42  Context appContext;
43  AssetManager assetManager;
44  String testResourcesPath;
45  String accessKey;
46 
47  @After
48  public void TearDown() {
49  reportHelper.label("Stopping App");
50  }
51 
52  @Before
53  public void Setup() throws IOException {
54  testContext = InstrumentationRegistry.getInstrumentation().getContext();
55  appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
56  assetManager = testContext.getAssets();
57  extractAssetsRecursively("test_resources");
58  testResourcesPath = new File(appContext.getFilesDir(), "test_resources").getAbsolutePath();
59 
60  accessKey = appContext.getString(R.string.pvTestingAccessKey);
61  }
62 
63  @Test
65  Porcupine p = new Porcupine.Builder()
66  .setAccessKey(accessKey)
68  .build(appContext);
69 
70  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
71  assertTrue(p.getFrameLength() > 0);
72  assertTrue(p.getSampleRate() > 0);
73 
74  p.delete();
75  }
76 
77  @Test
79  Porcupine.BuiltInKeyword[] inputBuiltInKeywords = new Porcupine.BuiltInKeyword[]{
84  };
85 
86  Porcupine p = new Porcupine.Builder()
87  .setAccessKey(accessKey)
88  .setKeywords(inputBuiltInKeywords)
89  .build(appContext);
90 
91  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
92  assertTrue(p.getFrameLength() > 0);
93  assertTrue(p.getSampleRate() > 0);
94 
95  p.delete();
96  }
97 
98  @Test
100  File keywordPath = new File(testResourcesPath, "keyword_files/en/hey_barista_android.ppn");
101  File modelPath = new File(testResourcesPath, "model_files/porcupine_params.pv");
102  Porcupine p = new Porcupine.Builder()
103  .setAccessKey(accessKey)
104  .setModelPath(modelPath.getAbsolutePath())
105  .setKeywordPath(keywordPath.getAbsolutePath())
106  .setSensitivity(0.25f)
107  .build(appContext);
108 
109  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
110  assertTrue(p.getFrameLength() > 0);
111  assertTrue(p.getSampleRate() > 0);
112 
113  p.delete();
114  }
115 
116  @Test
118  File keywordPath = new File(testResourcesPath, "keyword_files/en/hey_barista_android.ppn");
119  File keywordPath2 = new File(testResourcesPath, "keyword_files/en/pico_clock_android.ppn");
120  String[] keywordPaths = new String[]{keywordPath.getAbsolutePath(), keywordPath2.getAbsolutePath()};
121  Porcupine p = new Porcupine.Builder()
122  .setAccessKey(accessKey)
123  .setKeywordPaths(keywordPaths)
124  .setSensitivities(new float[]{0.35f, 0.6f})
125  .build(appContext);
126 
127  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
128  assertTrue(p.getFrameLength() > 0);
129  assertTrue(p.getSampleRate() > 0);
130 
131  p.delete();
132  }
133 
134  @Test
136  boolean didFail = false;
137  File keywordPath = new File(testResourcesPath, "keyword_files/de/ananas_android.ppn");
138  File modelPath = new File(testResourcesPath, "model_files/porcupine_params.pv");
139  try {
140  Porcupine p = new Porcupine.Builder()
141  .setAccessKey(accessKey)
142  .setModelPath(modelPath.getAbsolutePath())
143  .setKeywordPath(keywordPath.getAbsolutePath())
144  .build(appContext);
145  } catch (PorcupineException e) {
146  didFail = true;
147  }
148 
149  assertTrue(didFail);
150  }
151 
152  @Test
154  boolean didFail = false;
155  File modelPath = new File(testResourcesPath, "bad_path/bad_path.pv");
156  try {
157  Porcupine p = new Porcupine.Builder()
158  .setAccessKey(accessKey)
159  .setModelPath(modelPath.getAbsolutePath())
161  .build(appContext);
162  } catch (PorcupineException e) {
163  didFail = true;
164  }
165 
166  assertTrue(didFail);
167  }
168 
169  @Test
171  boolean didFail = false;
172  try {
173  Porcupine p = new Porcupine.Builder()
174  .setAccessKey(accessKey)
176  .setSensitivity(10)
177  .build(appContext);
178  } catch (PorcupineException e) {
179  didFail = true;
180  }
181 
182  assertTrue(didFail);
183  }
184 
185  @Test
187  boolean didFail = false;
188  try {
189  Porcupine p = new Porcupine.Builder()
190  .setAccessKey(accessKey)
192  .setSensitivities(new float[]{0.4f, 0.8f})
193  .build(appContext);
194  } catch (PorcupineException e) {
195  didFail = true;
196  }
197 
198  assertTrue(didFail);
199  }
200 
201  @Test
203  boolean didFail = false;
204  try {
205  Porcupine p = new Porcupine.Builder()
206  .setAccessKey(accessKey)
207  .build(appContext);
208  } catch (PorcupineException e) {
209  didFail = true;
210  }
211 
212  assertTrue(didFail);
213  }
214 
215  @Test
217  boolean didFail = false;
218  File keywordPath = new File(testResourcesPath, "bad_path/bad_path.ppn");
219  try {
220  Porcupine p = new Porcupine.Builder()
221  .setAccessKey(accessKey)
222  .setKeywordPath(keywordPath.getAbsolutePath())
223  .build(appContext);
224  } catch (PorcupineException e) {
225  didFail = true;
226  }
227 
228  assertTrue(didFail);
229  }
230 
231  @Test
233  File keywordPath = new File(testResourcesPath, "keyword_files/en/hey_barista_android.ppn");
234  boolean didFail = false;
235  try {
236  Porcupine p = new Porcupine.Builder()
237  .setAccessKey(accessKey)
239  .setKeywordPath(keywordPath.getAbsolutePath())
240  .build(appContext);
241  } catch (PorcupineException e) {
242  didFail = true;
243  }
244 
245  assertTrue(didFail);
246  }
247 
248  @Test
250  boolean didFail = false;
251  File keywordPath = new File(testResourcesPath, "keyword_files/en/alexa_linux.ppn");
252  try {
253  Porcupine p = new Porcupine.Builder()
254  .setAccessKey(accessKey)
255  .setKeywordPath(keywordPath.getAbsolutePath())
256  .build(appContext);
257  } catch (PorcupineException e) {
258  didFail = true;
259  }
260 
261  assertTrue(didFail);
262  }
263 
264  @Test
265  public void testProcSuccessSingleBuiltIn() throws Exception {
266  Porcupine p = new Porcupine.Builder()
267  .setAccessKey(accessKey)
269  .build(appContext);
270 
271  File testAudio = new File(testResourcesPath, "audio_samples/porcupine.wav");
272  FileInputStream audioInputStream = new FileInputStream(testAudio);
273 
274  byte[] rawData = new byte[p.getFrameLength() * 2];
275  short[] pcm = new short[p.getFrameLength()];
276  ByteBuffer pcmBuff = ByteBuffer.wrap(rawData).order(ByteOrder.LITTLE_ENDIAN);
277 
278  audioInputStream.skip(44);
279 
280  boolean keywordDetected = false;
281  while (audioInputStream.available() > 0) {
282  int numRead = audioInputStream.read(pcmBuff.array());
283  if (numRead == p.getFrameLength() * 2) {
284  pcmBuff.asShortBuffer().get(pcm);
285  int keywordIndex = p.process(pcm);
286  if (keywordIndex == 0) {
287  keywordDetected = true;
288  }
289  }
290  }
291  p.delete();
292 
293  assertTrue(keywordDetected);
294  }
295 
296  @Test
297  public void testProcSuccessMultipleBuiltIn() throws Exception {
298  Porcupine.BuiltInKeyword[] inputBuiltInKeywords = new Porcupine.BuiltInKeyword[]{
308  };
309 
310  Porcupine.BuiltInKeyword[] expectedResults = new Porcupine.BuiltInKeyword[]{
321  };
322 
323  Porcupine p = new Porcupine.Builder()
324  .setAccessKey(accessKey)
325  .setKeywords(inputBuiltInKeywords)
326  .build(appContext);
327 
328  File testAudio = new File(testResourcesPath, "audio_samples/multiple_keywords.wav");
329  FileInputStream audioInputStream = new FileInputStream(testAudio);
330 
331  byte[] rawData = new byte[p.getFrameLength() * 2];
332  short[] pcm = new short[p.getFrameLength()];
333  ByteBuffer pcmBuff = ByteBuffer.wrap(rawData).order(ByteOrder.LITTLE_ENDIAN);
334 
335  audioInputStream.skip(44);
336 
337  ArrayList<Integer> detectionResults = new ArrayList<>();
338  while (audioInputStream.available() > 0) {
339  int numRead = audioInputStream.read(pcmBuff.array());
340  if (numRead == p.getFrameLength() * 2) {
341  pcmBuff.asShortBuffer().get(pcm);
342  int keywordIndex = p.process(pcm);
343  if (keywordIndex >= 0) {
344  detectionResults.add(keywordIndex);
345  }
346  }
347  }
348  p.delete();
349 
350  assertSame(expectedResults.length, detectionResults.size());
351  for (int i = 0; i < expectedResults.length; i++) {
352  Porcupine.BuiltInKeyword expectedKeyword = expectedResults[i];
353  assertTrue(detectionResults.get(i) < inputBuiltInKeywords.length);
354  Porcupine.BuiltInKeyword keywordDetected = inputBuiltInKeywords[detectionResults.get(i)];
355  assertSame(expectedKeyword, keywordDetected);
356  }
357  }
358 
359  @Test
360  public void testInitSuccessDE() throws PorcupineException {
361  File keywordPath = new File(testResourcesPath, "keyword_files/de/ananas_android.ppn");
362  File modelPath = new File(testResourcesPath, "model_files/porcupine_params_de.pv");
363  Porcupine p = new Porcupine.Builder()
364  .setAccessKey(accessKey)
365  .setKeywordPath(keywordPath.getAbsolutePath())
366  .setModelPath(modelPath.getAbsolutePath())
367  .build(appContext);
368 
369  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
370  assertTrue(p.getFrameLength() > 0);
371  assertTrue(p.getSampleRate() > 0);
372 
373  p.delete();
374  }
375 
376  @Test
377  public void testInitSuccessES() throws PorcupineException {
378  File keywordPath = new File(testResourcesPath, "keyword_files/es/emparedado_android.ppn");
379  File modelPath = new File(testResourcesPath, "model_files/porcupine_params_es.pv");
380  Porcupine p = new Porcupine.Builder()
381  .setAccessKey(accessKey)
382  .setKeywordPath(keywordPath.getAbsolutePath())
383  .setModelPath(modelPath.getAbsolutePath())
384  .build(appContext);
385 
386  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
387  assertTrue(p.getFrameLength() > 0);
388  assertTrue(p.getSampleRate() > 0);
389 
390  p.delete();
391  }
392 
393  @Test
394  public void testInitSuccessFR() throws PorcupineException {
395  File keywordPath = new File(testResourcesPath, "keyword_files/fr/framboise_android.ppn");
396  File modelPath = new File(testResourcesPath, "model_files/porcupine_params_fr.pv");
397  Porcupine p = new Porcupine.Builder()
398  .setAccessKey(accessKey)
399  .setKeywordPath(keywordPath.getAbsolutePath())
400  .setModelPath(modelPath.getAbsolutePath())
401  .build(appContext);
402 
403  assertTrue(p.getVersion() != null && !p.getVersion().equals(""));
404  assertTrue(p.getFrameLength() > 0);
405  assertTrue(p.getSampleRate() > 0);
406 
407  p.delete();
408  }
409 
410  private void extractAssetsRecursively(String path) throws IOException {
411 
412  String[] list = assetManager.list(path);
413  if (list.length > 0) {
414  File outputFile = new File(appContext.getFilesDir(), path);
415  if (!outputFile.exists()) {
416  outputFile.mkdirs();
417  }
418 
419  for (String file : list) {
420  String filepath = path + "/" + file;
421  extractAssetsRecursively(filepath);
422  }
423  } else {
424  extractTestFile(path);
425  }
426  }
427 
428  private void extractTestFile(String filepath) throws IOException {
429 
430  InputStream is = new BufferedInputStream(assetManager.open(filepath), 256);
431  File absPath = new File(appContext.getFilesDir(), filepath);
432  OutputStream os = new BufferedOutputStream(new FileOutputStream(absPath), 256);
433  int r;
434  while ((r = is.read()) != -1) {
435  os.write(r);
436  }
437  os.flush();
438 
439  is.close();
440  os.close();
441  }
442 }
R
#define R
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/stb_vorbis.c:5104
ai.picovoice.porcupine
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/exception/PorcupineActivationException.java:11
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.ALEXA
ALEXA
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:146
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessWithCustomArguments
void testInitSuccessWithCustomArguments()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:99
ai.picovoice.porcupine.Porcupine.Builder.setKeyword
Builder setKeyword(BuiltInKeyword keyword)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:198
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessWithSingleBuiltIn
void testInitSuccessWithSingleBuiltIn()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:64
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.BUMBLEBEE
BUMBLEBEE
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:149
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.GRAPEFRUIT
GRAPEFRUIT
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:151
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.PICOVOICE
PICOVOICE
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:157
ai.picovoice.porcupine.Porcupine.Builder
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:165
ai.picovoice.porcupine.Porcupine.Builder.setKeywordPaths
Builder setKeywordPaths(String[] keywordPaths)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:183
ai.picovoice.porcupine.Porcupine.delete
void delete()
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:75
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessWithMultipleCustomKeywordsAndSensitivities
void testInitSuccessWithMultipleCustomKeywordsAndSensitivities()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:117
ai.picovoice.porcupine.Porcupine.getVersion
native String getVersion()
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithInvalidModelPath
void testInitFailWithInvalidModelPath()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:153
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessFR
void testInitSuccessFR()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:394
ai.picovoice.porcupine.Porcupine.Builder.build
Porcupine build(Context context)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:256
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithMismatchedSensitivityCount
void testInitFailWithMismatchedSensitivityCount()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:186
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessES
void testInitSuccessES()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:377
ai.picovoice.porcupine.demo.PorcupineTest.extractTestFile
void extractTestFile(String filepath)
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:428
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithNoKeywords
void testInitFailWithNoKeywords()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:202
f
f
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessWithMultipleBuiltIns
void testInitSuccessWithMultipleBuiltIns()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:78
ai.picovoice.porcupine.Porcupine.Builder.setKeywordPath
Builder setKeywordPath(String keywordPaths)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:188
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithBuiltInAndCustom
void testInitFailWithBuiltInAndCustom()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:232
ai.picovoice.porcupine.PorcupineException
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/exception/PorcupineException.java:13
ai.picovoice.porcupine.Porcupine.getFrameLength
native int getFrameLength()
ai.picovoice.porcupine.Porcupine.Builder.setSensitivities
Builder setSensitivities(float[] sensitivities)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:203
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithWrongKeywordPlatform
void testInitFailWithWrongKeywordPlatform()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:249
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.BLUEBERRY
BLUEBERRY
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:148
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.TERMINATOR
TERMINATOR
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:159
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.AMERICANO
AMERICANO
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:147
ai.picovoice.porcupine.Porcupine.Builder.setKeywords
Builder setKeywords(BuiltInKeyword[] keywords)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:193
ai.picovoice.porcupine.demo.PorcupineTest.testProcSuccessMultipleBuiltIn
void testProcSuccessMultipleBuiltIn()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:297
ai.picovoice.porcupine.demo.PorcupineTest
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:38
ai.picovoice.porcupine.demo.PorcupineTest.testInitSuccessDE
void testInitSuccessDE()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:360
ai
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.GRASSHOPPER
GRASSHOPPER
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:152
ai.picovoice
ai.picovoice.porcupine.demo.PorcupineTest.testProcSuccessSingleBuiltIn
void testProcSuccessSingleBuiltIn()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:265
ai.picovoice.porcupine.Porcupine.process
int process(short[] pcm)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:94
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithInvalidSensitivity
void testInitFailWithInvalidSensitivity()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:170
ai.picovoice.porcupine.Porcupine.getSampleRate
native int getSampleRate()
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithInvalidKeywordPath
void testInitFailWithInvalidKeywordPath()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:216
ai.picovoice.porcupine.Porcupine.Builder.setAccessKey
Builder setAccessKey(String accessKey)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:173
ai.picovoice.porcupine.demo.PorcupineTest.extractAssetsRecursively
void extractAssetsRecursively(String path)
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:410
ai.picovoice.porcupine.Porcupine.BuiltInKeyword.PORCUPINE
PORCUPINE
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:158
ai.picovoice.porcupine.Porcupine
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:35
ai.picovoice.porcupine.demo.PorcupineTest.Setup
void Setup()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:53
ai.picovoice.porcupine.Porcupine.Builder.setSensitivity
Builder setSensitivity(float sensitivity)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:208
ai.picovoice.porcupine.Porcupine.Builder.setModelPath
Builder setModelPath(String modelPath)
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:178
ai.picovoice.porcupine.demo.PorcupineTest.testInitFailWithMismatchedLanguage
void testInitFailWithMismatchedLanguage()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:135
ai.picovoice.porcupine.demo.PorcupineTest.TearDown
void TearDown()
Definition: demo/android/Activity/porcupine-activity-demo-app/src/androidTest/java/ai/picovoice/porcupine/demo/PorcupineTest.java:48
ai.picovoice.porcupine.Porcupine.BuiltInKeyword
Definition: android/Porcupine/porcupine/src/main/java/ai/picovoice/porcupine/Porcupine.java:145


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:50