2017-11-12 7 views
-2

Verwenden SpeechRecognizer Klasse von Android.So konvertieren Sie Sprache in Text

private void initRecord() { 
    mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this); 
    mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, 
      Locale.getDefault()); 
} 

Antwort

-1

Verwenden Sie den folgenden Code zum Konvertieren von Sprache in Text. es ist der Arbeitscode.just Kopieren Sie und fügen Sie den folgenden Code ein.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    editText = (EditText) findViewById(R.id.editText); 
    recordImg = (ImageView) findViewById(R.id.button); 
    checkPermission(); 
    initRecord(); 
    recordImg.setOnTouchListener(this); 

} 

private void initRecord() { 
    mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this); 
    mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, 
      Locale.getDefault()); 
    mSpeechRecognizer.setRecognitionListener(new RecognitionListener() { 
     @Override 
     public void onReadyForSpeech(Bundle bundle) { 

     } 

     @Override 
     public void onBeginningOfSpeech() { 

     } 

     @Override 
     public void onRmsChanged(float v) { 

     } 

     @Override 
     public void onBufferReceived(byte[] bytes) { 

     } 

     @Override 
     public void onEndOfSpeech() { 

     } 

     @Override 
     public void onError(int i) { 

     } 

     @Override 
     public void onResults(Bundle bundle) { 
      //getting all the matches 
      ArrayList<String> matches = bundle 
        .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); 

      //displaying the first match 
      if (matches != null) 
       editText.setText(matches.get(0)); 
     } 

     @Override 
     public void onPartialResults(Bundle bundle) { 

     } 

     @Override 
     public void onEvent(int i, Bundle bundle) { 

     } 
    }); 
} 
private void checkPermission() { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     if (!(ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED)) { 
      Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, 
        Uri.parse("package:" + getPackageName())); 
      startActivity(intent); 
      finish(); 
     } 
    } 
} 
@Override 
public boolean onTouch(View view, MotionEvent motionEvent) { 
    switch (motionEvent.getAction()) { 
     case MotionEvent.ACTION_UP: 
      //when the user removed the fingure... 
      mSpeechRecognizer.stopListening(); 
      editText.setHint("You will see input here"); 
      break; 
     case MotionEvent.ACTION_DOWN: 
      mSpeechRecognizer.startListening(mSpeechRecognizerIntent); 
      editText.setText(""); 
      editText.setHint("You will see input here"); 
      break; 
    } 
    return false; 
}