Cara Menciptakan Aplikasi Pendeteksi Teks Berbasis Android Dan Dikombinasikan Dengan Text To Speech

Cara Membuat Aplikasi Pendeteksi Teks berbasis android dan dikombinasikan dengan Text To Speech

Selamat malam sobat gratisan. pada malam ini aku ingin membagikan source code yang sudah aku buat mengikuti tutorial dari youtube. source code sudah aku modif dengan mengkombinasikan dengan source code Text To Speech.

Sebenarnya kalian juga dapat melaksanakan experimen sendiri dengan mencari tutorial di youtube ataupun dari sebuah website, yang lalu kalian modif dan kalian tambahkan sesuai dengan keinginan. aplikasi yang aku buat ini berasal dari tutorial orang lain yang lalu aku ikuti lalu aku tambahkan dengan source code yang lain nya. aku bukan seorang programmer, aku hanya seorang tukang intip tutorial lalu aku pelajari dan aku modifikasi sesuai dengan cita-cita saya.

aplikasi ini aku buat memakai android studio dan library nya memakai google vision. kalian dapat mencobanya dengan cara mengikuti tutorial yang aku berikan di bawah ini:


  1.  Disini aku anggap kalian sudah menciptakan sebuah project baru
  2.  Di bab activity_layout.xml kalian tambahkan isyarat script dibawah ini
    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:weightSum="5"    tools:context="com.wayandev.deteksi.MainActivity">      <SurfaceView        android:id="@+id/surfaceView"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="4" />     <TextView        android:id="@+id/text_view"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_margin="8dp"        android:layout_weight="1"        android:gravity="center"        android:textStyle="bold"        android:text="@string/txt_message"        android:textColor="@android:color/black"        android:textSize="20sp" />  </LinearLayout>
  3. Kemudian pada Grandle  kalian tambahkan library google vision "implementation 'com.google.android.gms:play-services-vision:15.0.1'". perhatikan gambar dibawah ini:
  4. Selanjutnya kita menuju MainActivity.java dan tambahkan script di bawah ini
    package com.wayandev.deteksi;  import android.Manifest; import android.content.pm.PackageManager; import android.speech.tts.TextToSpeech; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.util.SparseArray; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.widget.TextView;  import com.google.android.gms.vision.CameraSource; import com.google.android.gms.vision.Detector; import com.google.android.gms.vision.text.TextBlock; import com.google.android.gms.vision.text.TextRecognizer;  import java.io.IOException; import java.util.Locale;  public class MainActivity extends AppCompatActivity {     SurfaceView mCameraView;     TextView mTextView;     CameraSource mCameraSource;     TextToSpeech textToSpeech;       private static final String TAG = "MainActivity";     private static final int requestPermissionID = 101;       @Override    protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         mCameraView = findViewById(R.id.surfaceView);         mTextView = findViewById(R.id.text_view);           //inisialisasi text to speech        textToSpeech=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {             @Override            public void onInit(int status) {                 if (status == TextToSpeech.SUCCESS) {                      int result = textToSpeech.setLanguage(Locale.US);                      if (result == TextToSpeech.LANG_MISSING_DATA                            || result == TextToSpeech.LANG_NOT_SUPPORTED) {                         Log.e("TTS", "This Language is not supported");                     } else {                          speakOut();                     }                  } else {                     Log.e("TTS", "Initilization Failed!");                 }             }         });          startCameraSource();     }      private void speakOut() {         //Get the text typed        String text = mTextView.getText().toString();         //If no text is typed, tts will read out 'You haven't typed text'        //else it reads out the text you typed        if (text.length() == 0) {             textToSpeech.speak("You haven't text", TextToSpeech.QUEUE_FLUSH, null);         } else {             textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null);         }      }      @Override    public void onDestroy() {         // Don't forget to shutdown tts!        if (textToSpeech != null) {             textToSpeech.stop();             textToSpeech.shutdown();         }         super.onDestroy();     }     private void startCameraSource() {         //Create the TextRecognizer        final TextRecognizer textRecognizer = new TextRecognizer.Builder(getApplicationContext()).build();          if (!textRecognizer.isOperational()) {             Log.w(TAG, "Detector dependencies not loaded yet");         } else {              //Initialize camerasource to use high resolution and set Autofocus on.            mCameraSource = new CameraSource.Builder(getApplicationContext(), textRecognizer)                     .setFacing(CameraSource.CAMERA_FACING_BACK)                     .setRequestedPreviewSize(1280, 1024)                     .setAutoFocusEnabled(true)                     .setRequestedFps(2.0f)                     .build();             /**             * Add call back to SurfaceView and check if camera permission is granted.             * If permission is granted we can start our cameraSource and pass it to surfaceView             */            mCameraView.getHolder().addCallback(new SurfaceHolder.Callback() {                 @Override                public void surfaceCreated(SurfaceHolder holder) {                     try {                          if (ActivityCompat.checkSelfPermission(getApplicationContext(),                                 Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {                              ActivityCompat.requestPermissions(MainActivity.this,                                     new String[]{Manifest.permission.CAMERA},                                     requestPermissionID);                             return;                         }                         mCameraSource.start(mCameraView.getHolder());                     } catch (IOException e) {                         e.printStackTrace();                     }                 }                  @Override                public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {                 }                  @Override                public void surfaceDestroyed(SurfaceHolder holder) {                     mCameraSource.stop();                 }             });              //Set the TextRecognizer's Processor.            textRecognizer.setProcessor(new Detector.Processor<TextBlock>() {                 @Override                public void release() {                 }                  /**                 * Detect all the text from camera using TextBlock and the values into a stringBuilder                 * which will then be set to the textView.                 */                @Override                public void receiveDetections(Detector.Detections<TextBlock> detections) {                     final SparseArray<TextBlock> items = detections.getDetectedItems();                     if (items.size() != 0) {                          mTextView.post(new Runnable() {                             @Override                            public void run() {                                 StringBuilder stringBuilder = new StringBuilder();                                 for (int i = 0; i < items.size(); i++) {                                     TextBlock item = items.valueAt(i);                                     stringBuilder.append(item.getValue());                                     stringBuilder.append("\n");                                   //  speakOut();                                }                                 mTextView.setText(stringBuilder.toString());                                 //dibaca secara berulang jikalau ada text gres yang di detect                                speakOut();                             }                         });                     }                 }             });         }     } }
  5. Setiap kalian Mengcopy Pastekan Script Diatas, kalian perhatikan Package Name Id kalian supaya tidak error.
  6. Terakhir Kalian tambahkan Permission Kamera di Manifest kalian.
  7. Untuk File String nya dapat kalian lihat dibawah ini
Selamat mencoba, agar berhasil. Silahkan pahami sendiri maksud dari setiap isyarat diatas. Jika error nanti akan aku sediakan file pribadi ke github nya, kalian dapat mendownloadnya pribadi di github. Terima Kasih sudah berkunjung.


0 Response to "Cara Menciptakan Aplikasi Pendeteksi Teks Berbasis Android Dan Dikombinasikan Dengan Text To Speech"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel