2016-05-27 6 views
2

Ich benutze IBM Watson Speech zu Text-API, um Audiodateien in Text zu konvertieren. Jedes Feature funktioniert gut für mich. Ich kann die Keyword-Spotting-Funktion jedoch nicht verwenden. Die Ausgabe gibt keine Informationen zu gefundenen Keywords.Wie funktioniert die Keyword-Spotting-Funktion für die API von IBM Waston Speech to Text?

Hier ist mein Code:

SpeechToText service = new SpeechToText(); 
    service.setUsernameAndPassword("*********", "********"); 
    //SpeechModel model =service.getModel("en-US_NarrowbandModel"); 


    service.setEndPoint("https://stream.watsonplatform.net/speech-to-text/api"); 

    String[] keys= {"abuse","bullying","parents","physical","assaulting"}; 
    RecognizeOptions options = new RecognizeOptions().contentType("audio/wav").model("en-US_NarrowbandModel").continuous(true).inactivityTimeout(500).keywords(keys).keywordsThreshold(0.7); 


    File audio = new File("C:\\Users\\AudioFiles\\me.wav"); 

    SpeechResults transcript = service.recognize(audio, options); 
    //Speech t1 = service.recognize(audio, options); 
    System.out.println(transcript); 

Gibt es eine spezielle Funktion, die gefleckten Schlüsselwörter als Ausgang als auch mit dem Transkript zu erhalten?

+0

Es gab einen Fehler im Java-SDK. Können Sie das jetzt überprüfen? –

Antwort

1

Dies wurde im Java SDK v3.2.0 behoben. Stellen Sie sicher, dass Sie die neueste Version herunterladen (4.2.1) jar: java-sdk-4.2.1-jar-with-dependencies.jar oder aktualisieren Sie Ihre Gradle/Maven, um die neueste Version zu ziehen.

Der folgende Code basiert auf dem Code in Ihrer Frage.

SpeechToText service = new SpeechToText(); 
service.setUsernameAndPassword("USERNAME", "PASSWORD"); 

File audio = new File("C:\\Users\\AudioFiles\\me.wav");  

RecognizeOptions options = new RecognizeOptions().Builder() 
    .contentType("audio/wav) 
    .inactivityTimeout(500) 
    .keywords({"abuse", "bullying", "parents", "physical", "assaulting"}) 
    .keywordsThreshold(0.5) 
    .build(); 

    SpeechResults transcript = service.recognize(audio, options).execute(); 
    System.out.println(transcript); 
Verwandte Themen