簡體   English   中英

使用WebSockets的IBM Watson語音到文本

[英]IBM Watson Speech to Text using WebSockets

我正在嘗試使用Watson Developer Cloud java SDK來轉錄大型音頻文件。 我嘗試了Sessionless方法並且工作正常,但是當我嘗試WebSockets方法時,事情變得不可靠。

大多數情況下,該方法只返回沒有將SpeechResult傳遞給委托者; 它很少有效,但它只能轉錄前幾秒。

這就是我的代碼:

static SpeechResults transcript = null;
private static String SpeechToText(String audioFile) throws FileNotFoundException {
        SpeechToText service = new SpeechToText();
        service.setUsernameAndPassword("<!!USERNAME!!>", "<!!PASSWORD!!>");
        service.setEndPoint("https://stream.watsonplatform.net/speech-to-text/api");

        RecognizeOptions options = new RecognizeOptions();
        options.contentType("audio/ogg;codecs=opus");
        options.continuous(Boolean.TRUE);
        options.inactivityTimeout(-1);
        options.model(Models.GetModelName(Models.SpeechModelEnums.ArabicBroadband));
        options.timestamps(Boolean.TRUE);
        options.wordAlternativesThreshold(0.5);
        options.wordConfidence(Boolean.TRUE);

        options.interimResults(Boolean.FALSE);

        File audio = new File(audioFile);

        //This is my sessionless call
        //SpeechResults transcript = service.recognize(audio, options);


        service.recognizeUsingWebSockets(new FileInputStream(audio),  options, new BaseRecognizeDelegate()
        {
                @Override
                public void onMessage(SpeechResults speechResults){
                System.out.println(speechResults);                
                }
            }
        );

        return "";//transcript.toString();
    } 

我已經連續啟用了。 我試圖擺弄interimResults但是沒有用。

我究竟做錯了什么?

您提到的問題已在3.0.0-RC1版本中修復。
我已經回答了類似的問題,並添加了一個代碼片段,可以使用WebSockets識別音頻文件。

3.0.0-RC1開始, README中有一個WebSocket示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM