آموزش تبدیل گفتار به متن در برنامه نویسی اندروید

امتیاز 4.33 ( 3 رای )

سلام دوستان امیدوارم حالتون خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش تبدیل گفتار به متن در برنامه نویسی اندروید می پردازیم قبلتر آموزش متن به گفتار را برای شما قرار داده بودیم از لینک زیر می توانید به آموزش قبلی دسترسی پیدا کنید در ادامه با ما همراه باشید.

تبدیل متن به گفتار در اندروید

ابتدا در layout خود کدهای زیر را قرار دهید نام آن در اینجا برابر با activity_main.xml است.

<RelativeLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/voiceInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        android:textSize="26sp"
        android:textStyle="normal" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:orientation="vertical" >
        <TextView
            android:clickable="true"
            android:gravity="center"
            android:padding="16dp"
            android:textColor="@color/colorAccent"
            android:background="@color/colorPrimary"
            android:id="@+id/btnSpeak"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="Tap to Open Mic"
            android:textSize="22sp"
            android:textStyle="normal" />
    </LinearLayout>
</RelativeLayout>

در بالا دو TextView قرار دارد با کلیک بروی TextView که در پایین قرار گرفته ضبط صدا شروع می شود و بعد از آن در TextView که در بالا قرار دارد نمایش داده می شود.
کد مربوط به MainActivity.java همانند زیر می شود.

package ir.programchi;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.speech.RecognizerIntent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
    private TextView voiceInput;
    private TextView speakButton;
    private final int REQ_CODE_SPEECH_INPUT = 100;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        voiceInput = (TextView) findViewById(R.id.voiceInput);
        speakButton = (TextView) findViewById(R.id.btnSpeak);
        speakButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                askSpeechInput();
            }
        });
    }
    private void askSpeechInput() {
        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,
                "Hi speak something");
        try {
            startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
        } catch (ActivityNotFoundException a) {
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case REQ_CODE_SPEECH_INPUT: {
                if (resultCode == RESULT_OK && null != data) {
                    ArrayList<String> result = data
                            .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                    voiceInput.setText(result.get(0));
                }
                break;
            }
        }
    }
}

در بالا void اولی (askSpeechInput) دیالوگ ذخیره صدا گوگل را نمایش می دهد و از onActivityResult برای اینکه بررسی کنیم چه زمانی دیگر صدا وارد نمی شود و سپس صدا را به متن تبدیل می شود.
 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.
 
 

مطالعه بیشتر