2016-05-14 129 views
1

試圖運行RecognizeUsingWebSocketsExample提供IBM沃森SpeechToText的Java SDK,但它未能建立有效的RecognizeOptions對象爲在分發提供樣品.wav文件:IBM沃森文字轉語音的例子不接受AUDIO_WAV爲contentType中

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) 

看來內容類型(HttpMediaType.AUDIO_WAV)被誤解爲RAW。下面是實際的(未修改從發行)代碼:

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); 

}}

我使用的是3.0.0-RC2快照。運行不使用RecognizeOptions的示例(如SpeechToTextExample)沒有問題。謝謝。

-rg

回答

2

對不起,虛驚一場。我從零開始重新創建示例項目,並且編譯和運行順利。一定是我的Eclipse設置一些怪異。

相關問題