簡體   English   中英

Android中的離線語音識別

[英]Offline Speech Recognition in Android

我在StackOverFlow上搜索了很多有關此問題的內容,但是這些線程的使用時間已超過3年。

我實現了需要互聯網連接的Google Voice Recognition 搜索如何使用Offline Voice Recognition沒有成功。

現在可以離線使用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:不使用Google服務器的語音識別

實際上,您可以脫機使用SpeechRecognizer。

  • 轉到設置->“語言和輸入”
  • 從“鍵盤和輸入法”部分中選擇鍵盤,然后啟用“ Google語音輸入”
  • 返回上一個屏幕“語言和輸入”,您將看到“ Google語音輸入”已啟用。
  • 點擊“離線語音識別”。
  • 下載語言。
  • 現在,您應該可以在脫機模式下使用“語音轉文本”。

問題在於,如果不使用循環,它就不會連續,並且由於恆定的蜂鳴聲,使用SpeechRecognizer進行循環絕對令人討厭。 蜂鳴聲周圍有多種方法,但是大多數都使蜂鳴聲靜音,並且所有聲音都與之相同。

在步驟中還提到了,您還必須下載“ Google語音輸入”及其語言,這會占用更多存儲空間。 總體而言,您可以脫機使用SpeechRecognizer,但這是一個很大的麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM