Razieh Shahraki

تلفظ متن (Text To Speech)

1 ارسال در این موضوع قرار دارد

بعضی وقت ها نیاز داریم کلمات را برنامه تلفظ کند مثل کلمات دیکشنری.

در این آموزش نحوره ایجاد این بخش را توضیح می دهیم.

 

پروژه جدیدی ایجاد کرده و در فایل xml کد زیر را قرار  می دهیم.

[shcode=xml]<?xml version="1.0" encoding="utf-8"?>

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#ffffff"

    android:orientation="vertical"

    tools:ignore="HardcodedText" >

 

   

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:padding="15dip"

        android:text="Text To Speech"

        android:textColor="#0587d9"

        android:textSize="26dip"

        android:textStyle="bold" />

 

   

        android:id="@+id/txtText"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_margin="10dip"

        android:layout_marginTop="20dip"

        android:hint="Enter text to speak" />

 

   

        android:id="@+id/btnSpeak"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_margin="10dip"

        android:enabled="false"

        android:text="Speak" />

 

[/shcode]

در فایل جاوا کد زیر را قرار می دهیم.

[shcode=java]package com.example.texttospeech;

import java.util.Locale;

import android.app.Activity;

import android.os.Bundle;

import android.speech.tts.TextToSpeech;

import android.speech.tts.TextToSpeech.OnInitListener;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity implements OnInitListener{

    //create TextToSpeech native object

    private TextToSpeech tts;

    private Button btnSpeak;

    private EditText txtText;

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

                //Set application layout

        setContentView(R.layout.activity_main);

                //Initialize the tts object

        tts = new TextToSpeech(this, this);

                //Refer 'Speak' button

        btnSpeak = (Button) findViewById(R.id.btnSpeak);

                //Refer 'Text' control

        txtText = (EditText) findViewById(R.id.txtText);

        //Handle onClick event for button 'Speak'

        btnSpeak.setOnClickListener(new View.OnClickListener() {

 

            public void onClick(View arg0) {

                                //Method yet to be defined

                 speakOut();

            }

 

        });

    }

    public void onInit(int status) {

        // TODO Auto-generated method stub

          //TTS is successfully initialized

        if (status == TextToSpeech.SUCCESS) {

                       //Setting speech language

            int result = tts.setLanguage(Locale.US);

           //If your device doesn't support language you set above

            if (result == TextToSpeech.LANG_MISSING_DATA

                    || result == TextToSpeech.LANG_NOT_SUPPORTED) {

                           //Cook simple toast message with message

                Toast.makeText(this, "Language not supported", Toast.LENGTH_LONG).show();

                Log.e("TTS", "Language is not supported");

            }

                 //Enable the button - It was disabled in main.xml (Go back and Check it)

                        else {

                btnSpeak.setEnabled(true);

            }

            //TTS is not initialized properly

        } else {

                    Toast.makeText(this, "TTS Initilization Failed", Toast.LENGTH_LONG).show();

            Log.e("TTS", "Initilization Failed");

        }

    }

    private void speakOut() {

        //Get the text typed

       String text = txtText.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) {

           tts.speak("You haven't typed text", TextToSpeech.QUEUE_FLUSH, null);

       } else {

           tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);

       }

   }

    public void onDestroy() {

        // Don't forget to shutdown!

        if (tts != null) {

            tts.stop();

            tts.shutdown();

        }

        super.onDestroy();

    }

}

[/shcode]

خروجی برنامه به صورت زیر می باشد.

do.php?img=634

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری