2017-01-31 17 views
0

現在、Watsonsの強力な音声からテキストAPIを使用しています。これは、マイク入力でJSON(?)を返します。ワトソンでJSON出力をデコードする音声からテキストへ

これは、JSONファイルを返すコードの一部です:

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

私は現在、何をしようとしている、speechResults JSONの「写し」の部分を(出力を参照)を取得することですが、 speechResultsはStringではないので、jsonパーサーを使用した典型的なjson記述では動作しないようです。

これを実現する方法はありますか?

これが出力されます。

{ 
    "result_index": 0, 
    "results": [ 
    { 
     "final": true, 
     "alternatives": [ 
     { 
      "confidence": 0.908, 
      "timestamps": [ 
      [ 
       "are", 
       0.03, 
       0.2 
      ], 
      [ 
       "you", 
       0.2, 
       0.36 
      ] 
      ], 
      "transcript": "are you ", 
      "word_confidence": [ 
      [ 
       "are", 
       0.838 
      ], 
      [ 
       "you", 
       0.982 
      ] 
      ] 
     } 
     ] 
    } 
    ] 
} 

答えて

0

あなたはエントリの配列に到達するために完全なオブジェクトを分解する必要があります。

SpeechResultsがすでに解析済みのJSONObjectであると仮定します。

SpeechResults.getJSONObject("results").getJSONArray("transcript"); 

例I:

//By using javasript json parser 
var json = SpeechResults.results; 
System.out.println(json.transcript) 

例II:

 String jsonStr = SpeechResults; 
     JSONObject jsonObj = new JSONObject(jsonStr); 
     String transcript = jsonObj.getString("transcript"); 
     System.out.println(transcript); 
関連する問題