Langsung ke konten utama

Cara Membuat 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 sahabat gratisan. pada malam ini saya ingin membagikan source code yang sudah saya buat mengikuti tutorial dari youtube. source code sudah saya modif dengan mengkombinasikan dengan source code Text To Speech.

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

aplikasi ini saya buat menggunakan android studio dan library nya menggunakan google vision. kalian bisa mencobanya dengan cara mengikuti tutorial yang saya berikan di bawah ini:


  1.  Disini saya anggap kalian sudah membuat sebuah project baru
  2.  Di bagian activity_layout.xml kalian tambahkan kode 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 jika ada text baru 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 bisa kalian lihat dibawah ini
Selamat mencoba, semoga berhasil. Silahkan pahami sendiri maksud dari setiap kode diatas. Jika error nanti akan saya sediakan file langsung ke github nya, kalian bisa mendownloadnya langsung di github. Terima Kasih sudah berkunjung.


Komentar

Postingan populer dari blog ini

Cara Mendapatkan Youtube Stream Key Untuk Live Streaming

Cara Mendapatkan Youtube Stream Key Untuk Live Streaming Hello sahabat bloggers.. kali ini saya akan membagikan bagaimana cara mendapatkan Youtube Stream Key Untuk Melakukan Live Streaming di youtube . Live Stream Key ini adalah kode unik yang digunakan untuk melakukan Live Pada Obs Studio atau aplikasi streamer Lainnya. Untuk kalian yang ingin mendapatkan kode Youtube Stream Key ini wajib mengaktifkan fitur Yang ada pada Dasboard youtube kalian. Buat temen-temen yang belum baca bagaimana cara Mengaktifkan Fitur Live Streaming Di youtube, kalian bisa baca terlebih dahulu. Untuk Cara Melakukan Live Streaming di Android kalian bisa baca disini dan sedangkan untuk Live streaming di laptop atau Pc kalian bisa membaca nya di sini . Kita langsung saja menuju Bagaimana Cara mendapatkan Youtube Stream Key atau Kode Youtube Streaming dengan mengikuti cara di bawah ini: Login terlebih dahulu di youtube kalian melalui browser laptop kalian. kemudian klik Creator Studio Selanjutnya kita akan di h...

Cara mengatasi cisco Packet Tracer yang tidak terbuka di linux terbaru

Cara mengatasi cisco Packet Tracer yang tidak terbuka di linux terbaru siapa yang tidak kenal dengan cisco packet tracer ini, tools simulasi jaringan yang banyak digunakan oleh mereka yang mau belajar jaringan. cisco packet tracer ini support pada windows dan linux. kali ini saya mau berbagi cara mengatasi cisco packet tracer yang tidak bisa terbuka setelah  proses install selesai. langsung saja, langkah pertama adalah kalian harus terkoneksi internet,pastikan semua library di bawah ini sudah terinstall dan jika sudah terinstall kita menuju langkah selanjutanya. sudo apt-get -y install lib32z1 sudo apt-get -y install lib32ncurses5 sudo apt-get -y install lib32bz2-1.0 sudo apt-get -y install libgcc1:i386 sudo apt-get -y install libstdc++6:i386 sudo apt-get -y install libssl-dev:i386 sudo apt-get -y install libqtwebkit4:i386 sudo apt-get -y install libqt4-scripttools:i386 buka terminal kalian dan ketik  packettracer  (pastikan kalian sudah menginstall cisco packet trac...

Cara Membuka handphone Xiaomi yang terkena lock Micloud tanpa Ke Tukang Service

pada kesempatan kali ini saya akan berbagi pengalaman saya saat membeli handphone xiaomi bekas. singkat cerita saya membeli sebuah handphone xiaomi pada sebuah group jual beli di facebook,setelah berhasil nego saya kemudian COD dan melihat kondisi hp nya. hp yang saya beli belum terkena lock micloud tapi hanya lupa pola saja. pikir saya gampang tinggal flash pake rom baru selesai sudah :v akhirnya setelah membeli saya pergi ke wifi korner untuk download semua perlengkapan untuk flash ulang handphone xiaomi ini (redmi 3s dengan ram 3 dan internal 32 gb).  sebelumnya saya menanyakan apakah itu handphone curian atau bukan dan dia meyakinkan saya itu memang bukan handphone curian dan dia berani di laporkan ke polisi kalau memang itu handphone curian. singkat cerita,setelah semua selesai terdownload saya pergi ke kosan sepupu ku untuk bantu proses flashing hp tersebut. keringat bercucuran karena handphone nya ada kendala saat proses flashing tapi kami pantang menyerah dan download rom ...