我想问一下。我想做一个语音识别游戏。我想,举个例子,当问题“说A”而我说"A“时,答案是真的。当问题"B“和我说"M”时,答案是假的。但我有一个问题: 1。我必须为单词类别建立数据库吗? 2。如何制作一问一答?例如,当问题“说A”而我说"A“时,答案是真的。3.如果我必须创建数据库,我必须在语音识别类中实现它?谢谢并为我糟糕的英语感到抱歉。
这是我的语音识别代码
public class MainGame extends AppCompatActivity {
private TextView jawabanTxt;
private String textA;
TextView textView;
SpeechRecognizer mSpeechRecognizer;
Intent mSpeechRecognizerIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_game_act);
jawabanTxt = (TextView) findViewById(R.id.jawabanTxt);
textView = (TextView) findViewById(R.id.textView);
}
public void getSpeechInput(View view){
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,Locale.getDefault());
if(intent.resolveActivity(getPackageManager())!=null) {
startActivityForResult(intent, 10);
} else {
Toast.makeText(this, "Perangkat anda tidak mendukung", Toast.LENGTH_SHORT).show();
}
}
protected void onActivityResult(int requestCode,int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode,data);
switch (requestCode){
case 10:
if ((resultCode == RESULT_OK &&data != null)) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
jawabanTxt.setText(result.get(0));
}
break;
}
}这是我的数据库代码(如果需要)
public class dbGame extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "huruf.db";
private static final String DATABASE_VERSION = "1";
public dbGame(Context context){
super(context, DATABASE_NAME, null, Integer.parseInt(DATABASE_VERSION));
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table game(huruf);";
db.execSQL(sql);
sql = "INSERT INTO game (huruf) VALUES('a','b','c','d');";
db.execSQL((sql));
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}这是我的“信件”类别
public class HurufActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.huruf_activity);
ImageButton aBtn,bBtn,cBtn,d;
aBtn = (ImageButton) findViewById(R.id.aBtn);
bBtn = (ImageButton) findViewById(R.id.bBtn);
aBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(HurufActivity.this, MainGame.class);
startActivity(intent);
}
});
bBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(HurufActivity.this, MainGame.class);
startActivity(intent);
}
});
}发布于 2019-12-09 17:06:45
如果可以用问题和单词来扩展你的程序,而不仅仅是字母,那将是非常方便的。如果你只打算在你的程序中使用字母表,你可以使用一个数组或者一个列表来添加全部26个字符。
我建议你使用两种方法,一种是提出问题(可能是通过参数输入),另一种是检查用户给出的答案。我猜挑战在于想出一种你认为很方便的方式来指定一个正确的答案。使用语音识别软件,你可以生成一个布尔输出来检查答案,你可以用它来通过一个“正确”或“不正确”的结果。
这里有一篇关于JPA的非常好的文章:https://www.baeldung.com/spring-data-jpa-multiple-databases
https://stackoverflow.com/questions/59244445
复制相似问题