演讲到文本api其他语言android

我开发了可以用普通话识别语音的android应用程序,然后生成文本。 但我找不到如何做到这一点。 有人能给我一些其他语言(普通话,法国等)的语音识别代码吗?

public class MainActivity extends Activity { private TextView txtSpeechInput; private ImageButton btnSpeak; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtSpeechInput = (TextView) findViewById(R.id.txtSpeechInput); btnSpeak = (ImageButton) findViewById(R.id.btnSpeak); // hide the action bar getActionBar().hide(); btnSpeak.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listen(); } }); } private static int SR_CODE = 123; /** * Initializes the speech recognizer and starts listening to the user input */ private void listen() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //Specify language intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.SIMPLIFIED_CHINESE); // Specify language model intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // Specify how many results to receive intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5); // Start listening startActivityForResult(intent, SR_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SR_CODE && resultCode == RESULT_OK) { if (data != null) { // Retrieves the best list SR result ArrayList nBestList = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); String bestResult = nBestList.get(0); Toast.makeText(getApplicationContext(), bestResult, Toast.LENGTH_LONG).show(); } else { // Reports error in recognition error in log Log.e("Log", "Recognition was not successful"); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

调用识别器时,可以设置RecognizerIntent.EXTRA_LANGUAGE 。

所以简体中文的例子是:

 private static int SR_CODE = 123; /** * Initializes the speech recognizer and starts listening to the user input */ private void listen() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //Specify language intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.SIMPLIFIED_CHINESE) // Specify language model intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // Specify how many results to receive intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5); // Start listening startActivityForResult(intent, SR_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SR_CODE && resultCode == RESULT_OK) { if(data!=null) { //Retrieves the best list SR result ArrayList nBestList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); String bestResult = nBestList.get(0); Toast.makeText(getApplicationContext(), bestResult, Toast.LENGTH_LONG).show; }else { //Reports error in recognition error in log Log.e(LOGTAG, "Recognition was not successful"); } } 
 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh"); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "zh"); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "zh"); intent.putExtra(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES, "zh"); intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE,"zh"); intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "zh"); intent.putExtra(RecognizerIntent.EXTRA_RESULTS, "zh");