2016-05-14 11 views
1

Versuch RecognizeUsingWebSocketsExample, der mit IBM Watson SpeechToText Java SDK zu laufen, aber es andernfalls eine gültige RecognizeOptions für die Probe .wav-Datei mit der Verteilung bereitgestellt Objekt zu erstellen:IBM Watson TextToSpeech Beispiele nicht akzeptieren AUDIO_WAV als content

Exception in thread "main" java.lang.IllegalArgumentException: When using PCM the audio rate should be specified. 
at com.ibm.watson.developer_cloud.util.Validator.isTrue(Validator.java:38) 
at com.ibm.watson.developer_cloud.speech_to_text.v1.RecognizeOptions$Builder.contentType(RecognizeOptions.java:95) 
at com.ibm.watson.developer_cloud.speech_to_text.v1.RecognizeUsingWebSocketsExample.main(RecognizeUsingWebSocketsExample.java:30) 

Es scheint, dass der ContentType (HttpMediaType.AUDIO_WAV) fälschlicherweise als RAW interpretiert wird. Hier ist die tatsächliche (unmodifiziert von Distro) Code:

package com.ibm.watson.developer_cloud.speech_to_text.v1; 

import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.util.concurrent.CountDownLatch; 
import java.util.concurrent.TimeUnit; 

import com.ibm.watson.developer_cloud.http.HttpMediaType; 
import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeechResults; 
import com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.BaseRecognizeCallback; 

/** 
* Recognize using WebSockets a sample wav file and print the transcript into the console output. 
*/ 
public class RecognizeUsingWebSocketsExample { 
    private static CountDownLatch lock = new CountDownLatch(1); 

    public static void main(String[] args) throws FileNotFoundException, InterruptedException { 

    SpeechToText service = new SpeechToText(); 
    service.setUsernameAndPassword("<username>", "<password>"); 

    FileInputStream audio = new FileInputStream("src/test/resources/speech_to_text/sample1.wav"); 

    RecognizeOptions options = new RecognizeOptions.Builder() 
    .continuous(true) 
    .interimResults(true) 
    .contentType(HttpMediaType.AUDIO_WAV) 
    .build(); 

    service.recognizeUsingWebSocket(audio, options, new BaseRecognizeCallback() { 
    @Override 
    public void onTranscription(SpeechResults speechResults) { 
    System.out.println(speechResults); 
    if (speechResults.isFinal()) 
     lock.countDown(); 
    } 
}); 

lock.await(1, TimeUnit.MINUTES); 

} }

Ich bin mit 3.0.0-RC2 Snapshot. Keine Probleme beim Ausführen von Beispielen, die RecognizeOptions nicht verwenden, wie SpeechToTextExample. Danke.

-rg

Antwort

2

Entschuldigung, Fehlalarm. Ich habe das Beispielprojekt von Grund auf neu erstellt und es kompiliert und lief ohne Probleme. Das muss bei meinem Eclipse-Setup etwas seltsam gewesen sein.

Verwandte Themen