2017-08-07 78 views
0

我想添加一些关键字到我的应用程序,所以API可以更有效地识别说出的话。例如,I m having trouble recognizing the some Italian words that starts with E,(例如,每个我)。或用德语(呃)。谷歌云语音API增加语音上下文

这里是我的代码:

public void recognize (int sampleRate) { 
    if (mApi == null) { 
     Log.w(TAG, "API not ready. Ignoring the request."); 
     return; 
    } 
    // Configure the API 
    mRequestObserver = mApi.streamingRecognize(mResponseObserver); 
    mRequestObserver.onNext(StreamingRecognizeRequest.newBuilder() 
      .setStreamingConfig(StreamingRecognitionConfig.newBuilder() 
        .setConfig(RecognitionConfig.newBuilder() 
          .setLanguageCode(getDefaultLanguageCode()) 
          .setEncoding(RecognitionConfig.AudioEncoding.LINEAR16) 
          .setSampleRateHertz(sampleRate) 
          .build()) 
        .setInterimResults(true) 
        .setSingleUtterance(true) 
        .build()) 
      .build()); 
} 

设置为不同的情况下,语言:

private String getDefaultLanguageCode() { 

    SharedPreferences getLangSharedPrefs = getSharedPreferences("langSelected",0); 
    String selectedLanguage = getLangSharedPrefs.getString("langSelected", null); 
    switch (selectedLanguage) { 
     case "German": 
      langaugeCode = "de-DE"; 
      break; 
     case "Italian": 
      langaugeCode = "it-IT"; 
      break; 
     case "Spanish" : 
      langaugeCode = "es-ES"; 
      break; 
     case "French" : 
      langaugeCode = "fr-FR"; 
      break; 
    } 
    return langaugeCode; 
} 

回答

3

我找到了解决办法:

public void startRecognizing(int sampleRate) { 
    if (mApi == null) { 
     Log.w(TAG, "API not ready. Ignoring the request."); 
     return; 
    } 
    // Configure the API 
    mRequestObserver = mApi.streamingRecognize(mResponseObserver); 
    SpeechContext.Builder speechBuilder = SpeechContext.newBuilder(); 
    speechBuilder.addPhrases("E per me"); 
    speechBuilder.addPhrases("E"); 
    mRequestObserver.onNext(StreamingRecognizeRequest.newBuilder() 
      .setStreamingConfig(StreamingRecognitionConfig.newBuilder() 
        .setConfig(RecognitionConfig.newBuilder() 
          .setLanguageCode(getDefaultLanguageCode()) 
          .setEncoding(RecognitionConfig.AudioEncoding.LINEAR16) 
          .setSampleRateHertz(sampleRate) 
          .addSpeechContexts(speechBuilder) 
          .build()) 
        .setInterimResults(true) 
        .setSingleUtterance(true) 
        .build()) 
      .build()); 
}