1 import ai.kitt.snowboy.*;
3 import java.nio.ByteBuffer;
4 import java.nio.ByteOrder;
6 import javax.sound.sampled.AudioFormat;
7 import javax.sound.sampled.AudioSystem;
8 import javax.sound.sampled.DataLine;
9 import javax.sound.sampled.SourceDataLine;
10 import javax.sound.sampled.TargetDataLine;
14 System.loadLibrary(
"snowboy-detect-java");
17 public static void main(String[] args) {
19 AudioFormat format =
new AudioFormat(16000, 16, 1,
true,
false);
20 DataLine.Info targetInfo =
new DataLine.Info(TargetDataLine.class, format);
24 "resources/snowboy.umdl");
29 TargetDataLine targetLine =
30 (TargetDataLine) AudioSystem.getLine(targetInfo);
31 targetLine.open(format);
35 byte[] targetData =
new byte[3200];
36 short[] snowboyData =
new short[1600];
43 numBytesRead = targetLine.read(targetData, 0, targetData.length);
45 if (numBytesRead == -1) {
46 System.out.print(
"Fails to read audio data.");
51 ByteBuffer.wrap(targetData).order(
52 ByteOrder.LITTLE_ENDIAN).asShortBuffer().get(snowboyData);
55 int result =
detector.RunDetection(snowboyData, snowboyData.length);
57 System.out.print(
"Hotword " + result +
" detected!\n");
60 }
catch (Exception e) {
61 System.err.println(e);