use of com.ibm.watson.speech_to_text.v1.model.RecognizeOptions in project java-sdk by watson-developer-cloud.
the class SpeechToTextTest method testClosingInputStreamClosesWebSocket.
@Test
public void testClosingInputStreamClosesWebSocket() throws Exception {
TestRecognizeCallback callback = new TestRecognizeCallback();
WebSocketRecorder webSocketRecorder = new WebSocketRecorder("server");
PipedOutputStream outputStream = new PipedOutputStream();
InputStream inputStream = new PipedInputStream(outputStream);
server.enqueue(new MockResponse().withWebSocketUpgrade(webSocketRecorder));
String customizationId = "id";
String version = "version";
Double customizationWeight = 0.1;
RecognizeOptions options = new RecognizeOptions.Builder().audio(inputStream).contentType(HttpMediaType.createAudioRaw(44000)).customizationId(customizationId).version(version).customizationWeight(customizationWeight).build();
service.recognizeUsingWebSocket(options, callback);
WebSocket serverSocket = webSocketRecorder.assertOpen();
serverSocket.send("{\"state\": {}}");
outputStream.write(ByteString.encodeUtf8("test").toByteArray());
outputStream.close();
webSocketRecorder.assertTextMessage("{\"content-type\":\"audio/l16; rate=44000\"," + "\"action\":\"start\"}");
webSocketRecorder.assertBinaryMessage(ByteString.encodeUtf8("test"));
webSocketRecorder.assertTextMessage("{\"action\":\"stop\"}");
webSocketRecorder.assertExhausted();
serverSocket.close(1000, null);
callback.assertConnected();
callback.assertDisconnected();
callback.assertNoErrors();
callback.assertOnTranscriptionComplete();
}
use of com.ibm.watson.speech_to_text.v1.model.RecognizeOptions in project java-sdk by watson-developer-cloud.
the class SpeechToTextTest method testRecognize.
/**
* Test recognize.
*
* @throws URISyntaxException the URI syntax exception
* @throws InterruptedException the interrupted exception
*/
@Test
public void testRecognize() throws URISyntaxException, InterruptedException, FileNotFoundException {
server.enqueue(new MockResponse().addHeader(CONTENT_TYPE, HttpMediaType.APPLICATION_JSON).setBody(GSON.toJson(recognitionResults)));
RecognizeOptions recognizeOptions = new RecognizeOptions.Builder().audio(SAMPLE_WAV).contentType(RecognizeOptions.ContentType.AUDIO_WAV).build();
final SpeechRecognitionResults result = service.recognize(recognizeOptions).execute();
final RecordedRequest request = server.takeRequest();
assertNotNull(result);
assertEquals(result, recognitionResults);
assertEquals("POST", request.getMethod());
assertEquals(PATH_RECOGNIZE, request.getPath());
assertEquals(HttpMediaType.AUDIO_WAV, request.getHeader(CONTENT_TYPE));
}
use of com.ibm.watson.speech_to_text.v1.model.RecognizeOptions in project java-sdk by watson-developer-cloud.
the class SpeechToTextTest method testRecognizeWithSpeakerLabels.
/**
* Test diarization.
*
* @throws URISyntaxException the URI syntax exception
* @throws InterruptedException the interrupted exception
* @throws FileNotFoundException the file not found exception
*/
@Test
public void testRecognizeWithSpeakerLabels() throws URISyntaxException, InterruptedException, FileNotFoundException {
FileInputStream jsonFile = new FileInputStream("src/test/resources/speech_to_text/diarization.json");
String diarizationStr = getStringFromInputStream(jsonFile);
JsonObject diarization = new JsonParser().parse(diarizationStr).getAsJsonObject();
server.enqueue(new MockResponse().addHeader(CONTENT_TYPE, HttpMediaType.APPLICATION_JSON).setBody(diarizationStr));
RecognizeOptions recognizeOptions = new RecognizeOptions.Builder().audio(SAMPLE_WAV).contentType(RecognizeOptions.ContentType.AUDIO_WAV).speakerLabels(true).build();
SpeechRecognitionResults result = service.recognize(recognizeOptions).execute();
final RecordedRequest request = server.takeRequest();
assertEquals("POST", request.getMethod());
assertEquals(PATH_RECOGNIZE + "?speaker_labels=true", request.getPath());
assertEquals(diarization.toString(), GSON.toJsonTree(result).toString());
}
use of com.ibm.watson.speech_to_text.v1.model.RecognizeOptions in project java-sdk by watson-developer-cloud.
the class SpeechToTextTest method testRecognizeWithCustomization.
/**
* Test recognize with customization.
*
* @throws FileNotFoundException the file not found exception
* @throws InterruptedException the interrupted exception
*/
@Test
public void testRecognizeWithCustomization() throws FileNotFoundException, InterruptedException {
String id = "foo";
String version = "version";
String recString = getStringFromInputStream(new FileInputStream("src/test/resources/speech_to_text/recognition.json"));
JsonObject recognition = new JsonParser().parse(recString).getAsJsonObject();
server.enqueue(new MockResponse().addHeader(CONTENT_TYPE, HttpMediaType.APPLICATION_JSON).setBody(recString));
RecognizeOptions recognizeOptions = new RecognizeOptions.Builder().audio(SAMPLE_WAV).contentType(RecognizeOptions.ContentType.AUDIO_WAV).customizationId(id).version(version).build();
SpeechRecognitionResults result = service.recognize(recognizeOptions).execute();
final RecordedRequest request = server.takeRequest();
assertEquals("POST", request.getMethod());
assertEquals(PATH_RECOGNIZE + "?customization_id=" + id + "&version=" + version, request.getPath());
assertEquals(recognition, GSON.toJsonTree(result));
}
use of com.ibm.watson.speech_to_text.v1.model.RecognizeOptions in project java-sdk by watson-developer-cloud.
the class SpeechToTextExample method main.
public static void main(String[] args) throws FileNotFoundException {
Authenticator authenticator = new IamAuthenticator("<iam_api_key>");
SpeechToText service = new SpeechToText(authenticator);
File audio = new File("src/test/resources/speech_to_text/sample1.wav");
RecognizeOptions options = new RecognizeOptions.Builder().audio(audio).contentType(HttpMediaType.AUDIO_WAV).build();
SpeechRecognitionResults transcript = service.recognize(options).execute().getResult();
System.out.println(transcript);
}
Aggregations