Cara Membuat Aplikasi Pendeteksi Teks berbasis android serta dikombinasikan menggunakan Text To Speech
Selamat malam teman gratisan. Pada malam ini aku ingin memberikan source code yang telah saya buat mengikuti tutorial menurut youtube. Source code sudah saya modif dengan mengkombinasikan menggunakan source code Text To Speech.
Sebenarnya kalian juga sanggup melakukan experimen sendiri menggunakan mencari tutorial pada youtube ataupun dari sebuah website, yang lalu kalian modif dan kalian masukkan sinkron dengan harapan. Pelaksanaan yg saya buat ini dari dari tutorial orang lain yg kemudian saya ikuti kemudian saya tambahkan menggunakan source code yang lain nya. Saya bukan seseorang programmer, saya hanya seseorang tukang intip tutorial kemudian aku pelajari dan aku modifikasi sinkron menggunakan harapan saya.
aplikasi ini saya untuk menggunakan android studio serta library nya memakai google vision. Kalian mampu mencobanya dengan cara mengikuti tutorial yang aku berikan pada bawah ini:
- Disini aku anggap kalian telah menciptakan sebuah project baru
- Di bagian activity_layout.xml kalian tambahkan kode script dibawah ini
<LinearLayout xmlns:android="//schemas.android.com/apk/res/android"xmlns:tools="//schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:weightSum="lima"tools:context="com.wayandev.deteksi.mainActivity"> <SurfaceViewandroid:id="@+id/surfaceView"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="4" /> <TextViewandroid: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>
- Kemudian pada Grandle kalian tambahkan library google vision "implementation 'com.google.android.gms:play-services-vision:15.0.1'". Perhatikan gambar dibawah ini:
- 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 group MainActivity extends AppCompatActivity SurfaceView mCameraView; TextView mTextView; CameraSource mCameraSource; TextToSpeech textToSpeech; private static final String TAG = "MainActivity"; private static final int requestPermissionID = 101; @Overrideprotected 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 speechtextToSpeech=new TextToSpeech(getApplicationContext(), new TextToSpeech.oninitListener() @Overridepublic 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 typedString 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 typedif (text.length() == 0) textToSpeech.speak("You haven't text", TextToSpeech.QUEUE_FLUSH, null); else { textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null); } @Overridepublic void onDestroy() // Don't forget to shutdown tts!If (textToSpeech != null) textToSpeech.stop(); textToSpeech.shutdown(); super.ondestroy(); private void startCameraSource() //Create the TextRecognizerfinal 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() @Overridepublic 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(); } @Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) } @Overridepublic void surfaceDestroyed(SurfaceHolder holder) mCameraSource.stop(); }); //Set the TextRecognizer's Processor.textRecognizer.setprocessor(new Detector.processor() @Overridepublic void release() } /** * Detect all the text from camera using TextBlock and the values into a stringBuilder * which will then be set to the textView. */@Overridepublic void receiveDetections(Detector.detections detections) final SparseArray items = detections.getdetectedItems(); if (items.size() != 0) mTextView.post(new Runnable() @Overridepublic 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 bila ada text baru yang di detectspeakOut(); }); } }); }}
- Setiap kalian Mengcopy Pastekan Script Diatas, kalian perhatikan Package Name Id kalian agar nir error.
- Terakhir Kalian masukkan Permission Kamera di Manifest kalian.
- Untuk File String nya mampu kalian lihat dibawah ini
Selamat mencoba, semoga berhasil. Silahkan pahami sendiri maksud menurut setiap kode diatas. Apabila error nanti akan aku sediakan arsip pribadi ke github nya, kalian bisa mendownloadnya langsung di github. Terima Kasih sudah berkunjung.
Berikan Komentar
<i>KODE</i>
<em>KODE YANG LEBIH PANJANG</em>
Notify me
untuk mendapatkan notifikasi balasan komentar melalui Email.