我想问一下。我想做一个语音识别游戏。例如,当问题“说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);
}
});
}
最佳答案
我必须为单词类别创建数据库吗?
可以用问题和单词而不是字母来扩展程序,这将非常方便。如果仅打算在程序中使用字母,则可以使用数组或列表添加所有26个字符。
如何提出一个问题和一个答案?例如,当问题“说A”而我说“ A”时,答案是正确的。
我建议您采用两种方法,一种是询问问题(可能是通过参数输入),另一种是检查用户给出的答案。我想面临的挑战是想出一种您认为方便的方法来指定正确的答案。使用语音识别软件,您可能会生成布尔输出来检查答案,并且可以使用该输出将槽作为“正确”或“不正确”传递。
如果必须创建数据库,则必须在语音识别类中实现该数据库?
同样,数据库不是必需的,但是如果您要使用数据库,则可以通过直接查询或JPA回购数据库来尝试。
这是一篇有关JPA的很好的文章:https://www.baeldung.com/spring-data-jpa-multiple-databases
关于java - 语音识别游戏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59244445/