Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 语音识别游戏_Java_Android_Speech Recognition - Fatal编程技术网

Java 语音识别游戏

Java 语音识别游戏,java,android,speech-recognition,Java,Android,Speech Recognition,我想问一下。我想做一个语音识别游戏。举例来说,当问题“说A”而我说“A”时,答案是正确的。当问题“B”和我说“M”时,答案是错的。但我有一个问题: 1.我必须为word类别创建数据库吗? 2.如何提出一个问题和一个答案?例如,当问题“说A”而我说“A”时,答案是正确的。 3.若我必须创建数据库,那个么我必须在语音识别类中在哪里实现它? 谢谢你,很抱歉我的英语不好 这是我的语音识别码 public class MainGame extends AppCompatActivity { priva

我想问一下。我想做一个语音识别游戏。举例来说,当问题“说A”而我说“A”时,答案是正确的。当问题“B”和我说“M”时,答案是错的。但我有一个问题: 1.我必须为word类别创建数据库吗? 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;
        }
}
这是我的“信件”类别

  • 我必须为word类别创建数据库吗 这将是非常方便的,有可能扩展您的程序与问题和文字,而不仅仅是字母。如果您只打算在程序中使用字母表,则可以使用数组或列表来添加所有26个字符

  • 如何提出一个问题和一个答案?例如,当问题“说A”而我说“A”时,答案是正确的 我建议您使用两种方法,一种是提问(可能通过参数输入),另一种是检查用户给出的答案。我想挑战在于想出一种你认为方便的方法来指定一个正确的答案。使用语音识别软件,您可能会生成一个布尔输出来检查答案,您可以使用它作为“正确”或“不正确”来通过测试

  • 若我必须创建数据库,那个么我必须在语音识别类中在哪里实现它? 同样,数据库应该是不必要的,但如果你想使用数据库,你可以通过直接查询或JPA回购来尝试
  • 以下是一篇关于JPA的非常好的文章:

    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);
            }
        });
    
    }