【问题标题】:What is the request code in Android recognition APIAndroid识别API中的请求码是什么
【发布时间】:2021-05-23 04:46:02
【问题描述】:
            Intent recIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            recIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
            recIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH);
            recIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Need to speak");
            try {
                startActivityForResult(intentRec, REQ_CODE);
            } catch (ActivityNotFoundException a) {
                Toast t = Toast.makeText(getApplicationContext(),
                        "Opps! Your device doesn't support Speech to Text",
                        Toast.LENGTH_SHORT);
                t.show();
            }

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch(resultCode) {
        case REQ_CODE:
            if (resultCode == RESULT_OK && null != data) {
                ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                Toast.makeText(getApplicationContext(), String.valueOf(data.hasExtra(RecognizerIntent.EXTRA_RESULTS)), Toast.LENGTH_SHORT);
            }
        break;
    }
}

我一直在关注识别 API 的教程,但我仍然没有得到请求代码是什么以及为什么代码不再工作,它没有显示任何错误,甚至没有以 false 响应我的操作 那么如何使用请求代码?代码没有显示任何输出。

【问题讨论】:

    标签: java android voice


    【解决方案1】:

    您需要对语音转文本进行初始设置,并且每当您尝试说话时,您都需要调用 speak 方法。 按照以下代码:

        private var mTextToSpeechListener: TextToSpeech? = null
        val REQUEST_CODE_SPEECH_INPUT = 5003
    
     /**
     * Showing google speech input dialog
     */
    private fun speechToTextOutput() {
        val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
        intent.putExtra(
            RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM
        )
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault())
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say something")
        try {
            startActivityForResult(intent, REQUEST_CODE_SPEECH_INPUT)
        } catch (exp: ActivityNotFoundException) {
            Lg.d(TAG, "speechToTextOutput: $exp")
        }
    
    }
    
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK) {
            when (requestCode) {
                REQUEST_CODE_SPEECH_INPUT -> {
                    val resultSpeech = data!!
                        .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)
                    if (resultSpeech != null && resultSpeech.size > 0) {
                        mBinding.txtSpeechToText.text = resultSpeech.get(0)
                    }
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 2020-11-17
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 2023-01-05
      相关资源
      最近更新 更多