android - Android 中的离线语音识别

标签 android voice-recognition voice

我在 StackOverFlow 上搜索了很多关于这个问题的信息,但线程已经超过 3 年了。

我实现了需要互联网连接的 Google 语音识别。搜索如何使用 Offline Voice Recognition 没有成功。

现在可以在离线时使用语音识别吗?

到目前为止我的代码:

speechStartButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            promtSpeechInput();
        }
    });

private void promtSpeechInput() {
    Intent intent = new 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,
            "Recording...");
    try {
        startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(getApplicationContext(), "Language not supported", Toast.LENGTH_SHORT).show();
    }
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case CAMERA_PIC_REQUEST: {
            try {
                Bitmap image = (Bitmap) data.getExtras().get("data");
                ImageView imageView = (ImageView) findViewById(R.id.taskPhotoImage);
                imageView.setImageBitmap(image);

            } catch (NullPointerException e) {
                e.printStackTrace();
            }
        }
        case REQ_CODE_SPEECH_INPUT: {
         if(resultCode == RESULT_OK && null != data) {
             ArrayList<String> result = data
                     .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
             speechToTextField.setText(speechToTextField.getText()+" " +result.get(0));
         }
            break;
        }
    }
}

国王问候

最佳答案

不适用于 Google。

您必须使用其他解决方案,例如 CMU Sphinx。 在这里查看:Android: Speech Recognition without using google server

关于android - Android 中的离线语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31562229/

相关文章:

java - 如何删除 JVM 属性 "https.proxyHost"?

Android - 如何使用 SQLite 缓存 Json

android - 无法在 Windows 上安装 sphinxbase(离线语音识别器)

android - 如何在 ViewPager 中实现按钮?

android - 从服务器 RPC :s-7:AEC-0 in Google play? 检索信息时出错

java - 当我在当前 Activity 中按下按钮时如何更改下一个 Activity 背景

android - 玻璃 GDk : Contextual voice commands without the "Ok Glass"

c++ - 我的正则表达式使用哪种语言?

java - 用于登录 Web 应用程序的语音识别

linux - 如何让电脑唱歌