Google Cloud Speech API添加SpeechContext
我想在我的应用程序中添加一些关键字,这样API就可以更高效地识别口语。
例如Im having trouble recognizing the some Italian words that starts with E
、(E`Per Me)等。或德语(呃)。
以下是我的代码:
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;
}
解决方案
我找到解决方案了:
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());
}
相关文章