Androidでスピーチからテキストへのアプリケーションを作成して、話すたびに (つまり、ボタンをクリックせずに)継続的に動作させるにはどうすればよいですか? どのイベントを使用できますか?
ありがとう、
Androidでスピーチからテキストへのアプリケーションを作成して、話すたびに (つまり、ボタンをクリックせずに)継続的に動作させるにはどうすればよいですか? どのイベントを使用できますか?
ありがとう、
SpeechRecognizerを使用する必要があります
recognizeDirectly
このクラス内
のメソッドを確認してください: https://github.com/gast-lib/gast-lib/blob/master/library/src/root/gast/speech/SpeechRecognizingAndSpeakingActivity.java
警告: 現在の Android API は確実に動作しません。しばらく連続して記録してからクラッシュする可能性があります。また、Android の新しいバージョンではビープ音が鳴りますが、これは望ましくない場合があります。
バックグラウンドで実行されるサービスを作成する必要があります。1 つのクラスRecognitionServiceと 1 つのインターフェイスRecognitionListenerを 学習する必要があります。
public class MainActivity extends Activity {
private static final int REQUEST_CODE = 1234;
private ListView resultList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
resultList = (ListView) findViewById(R.id.list);
// to check if recognizer available or not
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() == 0) {
Toast.makeText(getApplicationContext(), "Recognizer Not Found",
1000).show();
}
startVoiceRecognitionActivity();
}
private void startVoiceRecognitionActivity() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
"AndroidBite Voice Recognition...");
intent.putExtra(
RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS,
5000000);
startActivityForResult(intent, 1234);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList<String> matches = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
System.out.println("Matches list " + matches);
resultList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, matches));
}
super.onActivityResult(requestCode, resultCode, data);
}
@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;
}
}
//それはあなたの問題を解決します