【问题标题】:Unable to Get Text From Text Recognition Using ML Kit Firebase无法使用 ML Kit Firebase 从文本识别中获取文本
【发布时间】:2019-11-29 20:55:11
【问题描述】:

我在我的 android 应用程序中使用 ML Kit 文本识别。因此,用户使用 Paint 在屏幕上写了一些东西,然后我保存该图像并使用 Firebase ML Kit 文本识别对其进行处理。但是,当用户使用 PaintView 类中的 Paint.clear() 清除屏幕时,ML Kit 仍在识别写入的预览文本。我需要在这里重置什么。我正在使用文字转语音来说出书面文字。

paintView = (PaintView) findViewById(R.id.paintView);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
paintView.init(metrics);

        speakTextButton = findViewById(R.id.button_speak);
        clearTextButton = findViewById(R.id.button_clear);

        Bitmap b = paintView.getDrawingCache();

        textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                textToSpeech.setLanguage(Locale.US);
            }
        });

        clearTextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                paintView.clear();
            }
        });

        speakTextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                paintView.setDrawingCacheEnabled(true); //saving image
                Bitmap bitmap = paintView.getDrawingCache();
                FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);

                //create detector
                FirebaseVisionTextRecognizer detector = FirebaseVision.getInstance()
                        .getOnDeviceTextRecognizer();

                Task<FirebaseVisionText> result =
                        detector.processImage(image)
                                .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                                    @Override
                                    public void onSuccess(FirebaseVisionText firebaseVisionText) {
                                        extractText(firebaseVisionText);
                                    }
                                })
                                .addOnFailureListener(new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                    }
                                });
            }
        });
    }

    public void extractText(FirebaseVisionText result) {
        resultText = result.getText();
        for (FirebaseVisionText.TextBlock block: result.getTextBlocks()) {
            for (FirebaseVisionText.Line line: block.getLines()) {
                if(line != null) {
                    Log.v("LINETEXT", line.getText());
                    Float lineConfidence = line.getConfidence();
                }
            }
        }
        startTextToSeech(resultText);

    }


    public void startTextToSeech(String resultText) {
        Log.v("QUOTE", resultText);
        textToSpeech.speak(resultText, TextToSpeech.QUEUE_FLUSH,null, null);
    }

【问题讨论】:

    标签: android bitmap firebase-mlkit


    【解决方案1】:

    语句“StartTextToSpeech(resultText);”在您的代码底部有一个错字。而不是“StartTextToSpeech”,而是“StartTextToSeech”。

    这可能会产生一些影响,并且由于它是一种启动方法,因此可能是整个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2021-05-11
      • 2020-02-06
      相关资源
      最近更新 更多