use of com.ibm.watson.speech_to_text.v1.model.WordAlternativeResults in project java-sdk by watson-developer-cloud.
the class SpeechToTextIT method testRecognizeWebSocket.
/**
* Test recognize webSocket.
*
* @throws FileNotFoundException the file not found exception
* @throws InterruptedException the interrupted exception
*/
@Test
public void testRecognizeWebSocket() throws FileNotFoundException, InterruptedException {
FileInputStream audio = new FileInputStream(SAMPLE_WAV);
RecognizeOptions options = new RecognizeOptions.Builder().audio(audio).interimResults(true).inactivityTimeout(40).timestamps(true).maxAlternatives(2).wordAlternativesThreshold(0.5f).model(EN_BROADBAND16K).contentType(HttpMediaType.AUDIO_WAV).build();
service.recognizeUsingWebSocket(options, new BaseRecognizeCallback() {
@Override
public void onConnected() {
LOG.info("onConnected()");
}
@Override
public void onDisconnected() {
LOG.info("onDisconnected()");
}
@Override
public void onTranscriptionComplete() {
LOG.info("onTranscriptionComplete()");
lock.countDown();
}
@Override
public void onError(Exception e) {
e.printStackTrace();
lock.countDown();
}
@Override
public void onTranscription(SpeechRecognitionResults speechResults) {
Long resultIndex = speechResults.getResultIndex();
if (speechResults != null && speechResults.getResults().get(resultIndex.intValue()).isFinalResults()) {
asyncResults = speechResults;
}
}
});
lock.await(2, TimeUnit.MINUTES);
assertNotNull(asyncResults);
List<WordAlternativeResults> wordAlternatives = asyncResults.getResults().get(asyncResults.getResultIndex().intValue()).getWordAlternatives();
assertTrue(wordAlternatives != null && !wordAlternatives.isEmpty());
assertNotNull(wordAlternatives.get(0).getAlternatives());
}
use of com.ibm.watson.speech_to_text.v1.model.WordAlternativeResults in project java-sdk by watson-developer-cloud.
the class SpeechToTextIT method testRecognizeFileString.
/**
* Test recognize audio file.
*
* @throws FileNotFoundException the file not found exception
*/
@Test
public void testRecognizeFileString() throws FileNotFoundException {
Long maxAlternatives = 3L;
Float wordAlternativesThreshold = 0.8f;
File audio = new File(SAMPLE_WAV);
RecognizeOptions options = new RecognizeOptions.Builder().audio(audio).contentType(HttpMediaType.AUDIO_WAV).maxAlternatives(maxAlternatives).wordAlternativesThreshold(wordAlternativesThreshold).smartFormatting(true).build();
SpeechRecognitionResults results = service.recognize(options).execute().getResult();
assertNotNull(results.getResults().get(0).getAlternatives().get(0).getTranscript());
assertTrue(results.getResults().get(0).getAlternatives().size() <= maxAlternatives);
List<WordAlternativeResults> wordAlternatives = results.getResults().get(0).getWordAlternatives();
for (WordAlternativeResults alternativeResults : wordAlternatives) {
assertTrue(alternativeResults.getAlternatives().get(0).getConfidence() >= wordAlternativesThreshold);
}
}
use of com.ibm.watson.speech_to_text.v1.model.WordAlternativeResults in project java-sdk by watson-developer-cloud.
the class SpeechToTextIT method testRecognizeFileString.
/**
* Test recognize audio file.
*/
@Test
public void testRecognizeFileString() throws FileNotFoundException {
Long maxAlternatives = 3L;
Float wordAlternativesThreshold = 0.8f;
File audio = new File(SAMPLE_WAV);
RecognizeOptions options = new RecognizeOptions.Builder().audio(audio).contentType(RecognizeOptions.ContentType.AUDIO_WAV).maxAlternatives(maxAlternatives).wordAlternativesThreshold(wordAlternativesThreshold).smartFormatting(true).build();
SpeechRecognitionResults results = service.recognize(options).execute();
assertNotNull(results.getResults().get(0).getAlternatives().get(0).getTranscript());
assertTrue(results.getResults().get(0).getAlternatives().size() <= maxAlternatives);
List<WordAlternativeResults> wordAlternatives = results.getResults().get(0).getWordAlternatives();
for (WordAlternativeResults alternativeResults : wordAlternatives) {
assertTrue(alternativeResults.getAlternatives().get(0).getConfidence() >= wordAlternativesThreshold);
}
}
use of com.ibm.watson.speech_to_text.v1.model.WordAlternativeResults in project java-sdk by watson-developer-cloud.
the class SpeechToTextIT method testCreateJob.
/**
* Test create job.
*
* @throws InterruptedException the interrupted exception
* @throws FileNotFoundException the file not found exception
*/
@Test
public void testCreateJob() throws InterruptedException, FileNotFoundException {
File audio = new File(SAMPLE_WAV);
Long maxAlternatives = 3L;
Float wordAlternativesThreshold = 0.5f;
CreateJobOptions createOptions = new CreateJobOptions.Builder().audio(audio).contentType(CreateJobOptions.ContentType.AUDIO_WAV).maxAlternatives(maxAlternatives).wordAlternativesThreshold(wordAlternativesThreshold).build();
RecognitionJob job = service.createJob(createOptions).execute();
try {
assertNotNull(job.getId());
CheckJobOptions checkOptions = new CheckJobOptions.Builder().id(job.getId()).build();
for (int x = 0; x < 30 && !job.getStatus().equals(RecognitionJob.Status.COMPLETED); x++) {
Thread.sleep(3000);
job = service.checkJob(checkOptions).execute();
}
job = service.checkJob(checkOptions).execute();
assertEquals(RecognitionJob.Status.COMPLETED, job.getStatus());
assertNotNull(job.getResults());
assertTrue(job.getResults().get(0).getResults().get(0).getAlternatives().size() <= maxAlternatives);
List<WordAlternativeResults> wordAlternatives = job.getResults().get(0).getResults().get(0).getWordAlternatives();
for (WordAlternativeResults alternativeResults : wordAlternatives) {
assertTrue(alternativeResults.getAlternatives().get(0).getConfidence() >= wordAlternativesThreshold);
}
} finally {
DeleteJobOptions deleteOptions = new DeleteJobOptions.Builder().id(job.getId()).build();
service.deleteJob(deleteOptions).execute();
}
}
use of com.ibm.watson.speech_to_text.v1.model.WordAlternativeResults in project java-sdk by watson-developer-cloud.
the class SpeechToTextIT method testRecognizeWebSocket.
/**
* Test recognize webSocket.
*
* @throws FileNotFoundException the file not found exception
* @throws InterruptedException the interrupted exception
*/
@Test
public void testRecognizeWebSocket() throws FileNotFoundException, InterruptedException {
FileInputStream audio = new FileInputStream(SAMPLE_WAV);
RecognizeWithWebsocketsOptions options = new RecognizeWithWebsocketsOptions.Builder().audio(audio).inactivityTimeout(40).timestamps(true).maxAlternatives(2).wordAlternativesThreshold(0.5f).model(EN_BROADBAND16K).contentType(HttpMediaType.AUDIO_WAV).interimResults(true).processingMetrics(true).processingMetricsInterval(0.2f).audioMetrics(true).build();
service.recognizeUsingWebSocket(options, new BaseRecognizeCallback() {
@Override
public void onConnected() {
LOG.info("onConnected()");
}
@Override
public void onDisconnected() {
LOG.info("onDisconnected()");
}
@Override
public void onTranscriptionComplete() {
LOG.info("onTranscriptionComplete()");
lock.countDown();
}
@Override
public void onError(Exception e) {
// e.printStackTrace();
lock.countDown();
}
@Override
public void onTranscription(SpeechRecognitionResults speechResults) {
if (speechResults != null) {
if (speechResults.getResults() != null && speechResults.getResults().get(0).isXFinal()) {
asyncTranscriptionResults = speechResults;
}
if (speechResults.getAudioMetrics() != null) {
asyncAudioMetricsResults = speechResults;
}
// System.out.println(speechResults);
}
}
});
lock.await(3, TimeUnit.MINUTES);
assertNotNull(asyncTranscriptionResults);
assertNotNull(asyncAudioMetricsResults);
List<WordAlternativeResults> wordAlternatives = asyncTranscriptionResults.getResults().get(asyncTranscriptionResults.getResultIndex().intValue()).getWordAlternatives();
assertTrue(wordAlternatives != null && !wordAlternatives.isEmpty());
assertNotNull(wordAlternatives.get(0).getAlternatives());
assertNotNull(asyncAudioMetricsResults.getAudioMetrics());
// Clear for later tests.
asyncTranscriptionResults = null;
asyncAudioMetricsResults = null;
}
Aggregations