2017-06-05 7 views
5

私はIBM bluemixを使用してオーディオを書き出しています。私はAPIスピーカー認識を使用したいと思います。Android Bluemixがスピーカータグを表示していません

私はこのような認識機能の設定:

private RecognizeOptions getRecognizeOptions() { 
    return new RecognizeOptions.Builder() 
      .continuous(true) 
      .contentType(ContentType.OPUS.toString()) 
      //.model("en-US") 
      .model("en-US_BroadbandModel") 
      .timestamps(true) 
      .smartFormatting(true) 
      .interimResults(true) 
      .speakerLabels(true) 
      .build(); 
} 

しかし、返されるJSON doesntのは、スピーカーのタグが含まれます。どのようにして、bluemix java APIで返されたスピーカータグも取得できますか?私は、サンプルアプリケーションを書いて、仕事にスピーカーのラベルを持ってあなたの例に基づいて

private void recordMessage() { 
    //mic.setEnabled(false); 
    speechService = new SpeechToText(); 
    speechService.setUsernameAndPassword("usr", "pwd"); 
    if(listening != true) { 
     capture = new MicrophoneInputStream(true); 
     new Thread(new Runnable() { 
      @Override public void run() { 
       try { 
        speechService.recognizeUsingWebSocket(capture, getRecognizeOptions(), new MicrophoneRecognizeDelegate()); 
       } catch (Exception e) { 
        showError(e); 
       } 
      } 
     }).start(); 
     Log.v("TAG",getRecognizeOptions().toString()); 
     listening = true; 
     Toast.makeText(MainActivity.this,"Listening....Click to Stop", Toast.LENGTH_LONG).show(); 
    } else { 
     try { 
      capture.close(); 
      listening = false; 
      Toast.makeText(MainActivity.this,"Stopped Listening....Click to Start", Toast.LENGTH_LONG).show(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

、いないテキストを音声に変換します。 ) –

+0

あなたは使用しているオーディオファイルと認識方法は何ですか? WebSocketを使用していますか? –

+0

@GermanAttanasio私はワトソンのAndroidオーディオストリーミングAPIを使用しています。更新されたコードスニペットをご覧ください。 – bear

答えて

0

:アンドロイドで

マイオーディオレコーダーは、次のようになります。

Java-SDK 4.2.1を使用していることを確認してください。あなたのbuild.gradle

compile 'com.ibm.watson.developer_cloud:java-sdk:4.2.1' 

を追加ここでWebSocketを、中間結果、およびスピーカーのラベルを使用してassetsフォルダからWAV fileを認識したコードの抜粋です。

public static InputStream loadInputStreamFromAssetFile(String fileName){ 
    AssetManager assetManager = getAssets(); // From Context 
    try { 
    InputStream is = assetManager.open(fileName); 
    return is; 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    return null; 
} 

アプリケーションログ:loadInputStreamFromAssetFile()がある

RecognizeOptions options = new RecognizeOptions.Builder() 
    .contentType("audio/wav") 
    .model(SpeechModel.EN_US_NARROWBANDMODEL.getName()) 
    .interimResults(true) 
    .speakerLabels(true) 
    .build(); 

SpeechToText service = new SpeechToText(); 
service.setUsernameAndPassword("SPEECH-TO-TEXT-USERNAME", "SPEECH-TO-TEXT-PASSWORD"); 

InputStream audio = loadInputStreamFromAssetFile("speaker_label.wav"); 

service.recognizeUsingWebSocket(audio, options, new BaseRecognizeCallback() { 
    @Override 
    public void onTranscription(SpeechResults speechResults) { 
     Assert.assertNotNull(speechResults); 
     System.out.println(speechResults.getResults().get(0).getAlternatives().get(0).getTranscript()); 
     System.out.println(speechResults.getSpeakerLabels()); 
    } 
}); 

私はあなたが彼が音声テキストタグを追加する必要があることを意味だと思う

I/System.out: so how are you doing these days 
I/System.out: so how are you doing these days things are going very well glad to hear 
I/System.out: so how are you doing these days things are going very well glad to hear I think I mentioned 
I/System.out: so how are you doing these days things are going very well glad to hear I think I mentioned before that there's a company now that I'm 
I/System.out: so how are you doing these days things are going very well glad to hear I think I mentioned before that there's a company now that I'm working with which is very much 
I/System.out: so how are you doing these days things are going very well glad to hear I think I mentioned before that there's a company now that I'm working with which is very much just just myself and Chris now 
I/System.out: so how are you doing these days things are going very well glad to hear I think I mentioned before that there's a company now that I'm working with which is very much just just myself and Chris now you had mentioned that %HESITATION okay 
I/System.out: so how are you doing these days things are going very well glad to hear I think I mentioned before that there's a company now that I'm working with which is very much just just myself and Chris now you had mentioned that %HESITATION okay 
I/System.out: [{ 
I/System.out: "confidence": 0.487, 
I/System.out: "final": false, 
I/System.out: "from": 0.03, 
I/System.out: "speaker": 0, 
I/System.out: "to": 0.34 
I/System.out: }, { 
I/System.out: "confidence": 0.487, 
I/System.out: "final": false, 
I/System.out: "from": 0.34, 
I/System.out: "speaker": 0, 
I/System.out: "to": 0.54 
I/System.out: }, { 
I/System.out: "confidence": 0.487, 
I/System.out: "final": false, 
I/System.out: "from": 0.54, 
I/System.out: "speaker": 0, 
I/System.out: "to": 0.63 
I/System.out: }, { 
...... blah blah blah 
I/System.out: }, { 
I/System.out: "confidence": 0.343, 
I/System.out: "final": false, 
I/System.out: "from": 13.39, 
I/System.out: "speaker": 1, 
I/System.out: "to": 13.84 
I/System.out: }] 
関連する問題