我正在研究语音到文本的功能,之前我使用了语音识别,当系统识别语音时,会弹出一个谷歌对话框。
随后,由于我不想要对话框,所以我遵循了 如何在没有安卓手机中烦人的对话框的情况下使用语音识别中的答案
实现SpeechRecognizer
这样,当按下说话按钮时,不会有标准的谷歌对话框弹出。
代码:
public void onClick(View v)
{
if (v.getId() == R.id.button_record)
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh_HK");
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,1);
sr.startListening(intent);
Log.i("111111","11111111");
}
并且在class listener implements RecognitionListener
public void onResults(Bundle results)
{
String str = new String();
Log.d(TAG, "onResults " + results);
ArrayList<String> data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
string_after_speech = data.get(0).toString();
TextView1.setText(""+string_after_speech);
问题:
我希望语音识别(带有谷歌对话框弹出的那个)和 SpeechRecognizer 生成的结果应该是一样的?但是运行了几次,似乎 Voice Recognition with Dialog Box 的质量高于 SpeechRecognizer 的质量......
如何将结果限制为 SOLELY zh_HK(粤语或繁体中文)?我试着用粤语说一个演讲,但结果是一半是中文,一半是英文……如果我说英文,它会直接输出英文。这样的
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh_HK"
设置不正确吗?
谢谢!