2016-04-08 10 views
3

Ich versuche eine App zu erstellen, die einen gestreamten Audioeingang (zB eine Leitung im Mikrofon) aufnimmt und Speech-to-Text mit IBM Bluemix (Watson) ausführt. .Watson STT Java - Unterschiedliche Ergebnisse zwischen WebSockets Java und HTTP POST

Ich habe kurz den Beispiel-Java-Code here geändert. Dieses Beispiel sendet einen WAV, aber ich sende ein FLAC ... das sollte [sollte] irrelevant sein.

Die Ergebnisse sind schlecht, sehr schlecht. Das ist, was ich bekomme, wenn ich den Java-WebSockets-Code verwende:

{ 
    "result_index": 0, 
    "results": [ 
    { 
     "final": true, 
     "alternatives": [ 
     { 
      "transcript": "it was six weeks ago today the terror ", 
      "confidence": 0.92 
     } 
     ] 
    } 
    ] 
} 

Vergleichen Sie jetzt die obigen Ergebnisse mit denen unten. Dies sind die Ergebnisse, wenn die gleiche Sache zu senden, sondern mit cURL (HTTP POST):

{ 
    "results": [ 
    { 
    "alternatives": [ 
     { 
      "confidence": 0.945, 
      "transcript": "it was six weeks ago today the terrorists attacked the U. S. consulate in Benghazi Libya now we've obtained email alerts that were put out by the state department as the attack unfolded as you know four Americans were killed including ambassador Christopher Stevens " 
     } 
    ], 
    "final": true 
    }, 
    { 
    "alternatives": [ 
     { 
      "confidence": 0.942, 
      "transcript": "sharyl Attkisson has our story " 
     } 
    ], 
    "final": true 
    } 
    ], 
    "result_index": 0 
} 

Das ist ein fast fehlerlos Ergebnis.

Warum der Unterschied bei der Verwendung von Websockets?

+1

Ich habe ein Problem im Repository erstellt und werde dies https://github.com/watson-developer-cloud/java-sdk/issues/231 –

+0

können Sie die Audiodatei, die Sie verwenden, hinzufügen Das Thema ? –

+0

@GermanAttanasio Hier ist die Datei. https://s3.amazonaws.com/mozart-company/tmp/4.flac – abdielou

Antwort

2

Das Problem wurde in der 3.0.0-RC1 Version behoben.

Sie können das neue Glas erhalten von:

  1. Maven

    <dependency> 
        <groupId>com.ibm.watson.developer_cloud</groupId> 
        <artifactId>java-sdk</artifactId> 
        <version>3.0.0-RC1</version> 
    </dependency> 
    
  2. Gradle

    'com.ibm.watson.developer_cloud:java-sdk:3.0.0-RC1' 
    
  3. JAR

    Download jar-with-dependencies (~ 1,4 MB)


Hier ist ein Beispiel dafür, wie eine FLAC-Audiodatei mit WebSockets zu Test

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

FileInputStream audio = new FileInputStream("path-to-audio-file.flac"); 

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

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

}

FLAC-Datei zu erkennen: https://s3.amazonaws.com/mozart-company/tmp/4.flac


HINWEIS:3.0.0-RC1 ist ein Release-Kandidat. Wir werden nächste Woche eine Produktion veröffentlichen (3.0.1).

+1

Großartig. Ich überprüfe es und lasse es Sie wissen. – abdielou

+1

Süß. Funktioniert wunderbar schnell. – abdielou