我正在使用append()
方法在 androidtextview
中附加文本,但它一次又一次地override
。我正在努力进行实时语音识别,并且正在获得要设置为文本视图的实时结果。我这样做,
@Override
public void onPartialResults(Bundle partialResults) {
if (dsProperties.speechResultFound) return;
Boolean valid = (partialResults != null && partialResults.containsKey(SpeechRecognizer.RESULTS_RECOGNITION) &&
partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION) != null &&
partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION).size() > 0 &&
!partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION).get(0).trim().isEmpty());
if (valid) {
final String droidLiveSpeechResult = partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION).get(0);
if (droidSpeechListener == null) {
Log.i(TAG, "Droid speech live result = " + droidLiveSpeechResult);
} else {
// Setting the progress message
recognitionProgressMsg.setText(droidLiveSpeechResult);
// setRecognitionProgressMsg(droidLiveSpeechResult);
// Sending an update with the droid speech live result
droidSpeechListener.onDroidSpeechLiveResult(droidLiveSpeechResult);
}
if ((System.currentTimeMillis() - dsProperties.pauseAndSpeakTime) > Extensions.MAX_PAUSE_TIME) {
dsProperties.speechResultFound = true;
droidSpeechPartialResult.postDelayed(new Runnable() {
@Override
public void run() {
// Closing droid speech operations
// closeDroidSpeech();
if (dsProperties.showRecognitionProgressView && dsProperties.oneStepResultVerify) {
// Saving the speech result
dsProperties.oneStepVerifySpeechResult = droidLiveSpeechResult;
restartDroidSpeech.postDelayed(new Runnable() {
@Override
public void run() {
startDroidSpeechRecognition();
// abc=abc+" "+droidLiveSpeechResult;
// droidSpeechListener.onDroidSpeechFinalResult(dsProperties.oneStepVerifySpeechResult);
}
}, Extensions.MAX_PAUSE_TIME);
} else {
if (droidSpeechListener == null) {
Log.i(TAG, "Droid speech final result = " + droidLiveSpeechResult);
} else {
droidSpeechListener.onDroidSpeechLiveResult(droidLiveSpeechResult);
if (dsProperties.continuousSpeechRecognition) {
// Start droid speech recognition again
startDroidSpeechRecognition();
} else {
}
}
}
}
}, Extensions.PARTIAL_DELAY_TIME);
} else {
dsProperties.pauseAndSpeakTime = System.currentTimeMillis();
}
} else {
dsProperties.pauseAndSpeakTime = System.currentTimeMillis();
}
}
private void setRecognitionProgressMsg(String msg) {
if (recognitionProgressMsg != null && msg != null) {
recognitionProgressMsg.append(msg);
}
}
以上给出了用于实时识别的完整代码,并在下面函数中将实时结果设置为文本视图。 任何人都可以纠正我吗?
String a = recognitionProgressMsg.getText().toString();
a+=msg;
recognitionProgressMsg.setText(a);