java Android语音识别器如何使连续语音识别?
我正在尝试制作一个Android应用程序,它可以连续识别用户的语音并将其转换为文本
我已经有很长一段时间没能让语音识别器工作了。有没有办法让它不断地倾听?该应用不需要在后台运行。事实上,它根本不会在后台运行
public class MainActivity extends AppCompatActivity {
private TextView resultTextView;
private SpeechRecognizer speechRecognizer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = (TextView) findViewById(R.id.resultsText);
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
if(SpeechRecognizer.isRecognitionAvailable(this)){
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
speechRecognizer.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle params) {}
@Override
public void onBeginningOfSpeech() {}
@Override
public void onRmsChanged(float rmsdB) {}
@Override
public void onBufferReceived(byte[] buffer) {}
@Override
public void onEndOfSpeech() {}
@Override
public void onError(int error) {}
@Override
public void onResults(Bundle bundle) {
List<String> results = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
resultTextView.setText(results.get(0));
}
@Override
public void onPartialResults(Bundle partialResults) {}
@Override
public void onEvent(int eventType, Bundle params) {}
});
}
speechRecognizer.startListening(intent);
}
}
共 (0) 个答案