私はスピーチからテキストへの機能に取り組んでおり、システムがスピーチを認識しているときにGoogleダイアログボックスがポップアップする音声認識を事前に使用していました。
その後、ダイアログボックスが必要ないので、 Androidフォンで迷惑なダイアログなしで音声認識を使用するにはどうすればよいですかの回答に従いました
SpeechRecognizer
話すボタンが押されたときに標準のGoogleダイアログポップアップが表示されないように実装します。
コード:
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);
質問:
音声認識 (Google ダイアログ ボックスのポップアップがあるもの) と SpeechRecognizer から生成された結果は同じであると思いますか? それでも何度か実行してみると、SpeechRecognizer よりもダイアログ ボックスを使用した音声認識の方が品質が高いようです...
結果を zh_HK (広東語または繁体字中国語) のみに制限するにはどうすればよいでしょうか? 広東語でスピーチをしようとしたところ、結果は半分中国語で半分英語でした...英語を話すと、英語がそのまま出力されます。このように
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh_HK"
セットするのは正しくありませんか?
ありがとう!