Android - Konuşmaya Metin

Android, metninizi sese dönüştürmenize olanak tanır. Sadece onu dönüştürmekle kalmaz, aynı zamanda çeşitli farklı dillerde metin konuşmanıza da olanak tanır.

Android sağlar TextToSpeechbu amaç için sınıf. Bu sınıfı kullanmak için, bu sınıfın bir nesnesini somutlaştırmanız ve ayrıcainitListener. Söz dizimi aşağıda verilmiştir -

private EditText write;
ttobj=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
   @Override
   public void onInit(int status) {
   }
});

Bu dinleyicide, TextToSpeech nesnesi için, dili, aralığı vb. Gibi özellikleri belirlemeniz gerekir. Dil, çağrı yapılarak ayarlanabilir setLanguage()yöntem. Söz dizimi aşağıda verilmiştir -

ttobj.setLanguage(Locale.UK);

SetLanguage yöntemi, parametre olarak bir Locale nesnesini alır. Mevcut yerel ayarlardan bazılarının listesi aşağıda verilmiştir -

Sr.No Yerel
1 BİZE
2 KANADA_FRENCH
3 ALMANYA
4 İTALYA
5 JAPONYA
6 ÇİN

Dili ayarladıktan sonra arayabilirsin speakmetni konuşma yöntemi. Söz dizimi aşağıda verilmiştir -

ttobj.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);

Speak yönteminin dışında, TextToSpeech sınıfında kullanılabilen başka yöntemler de vardır. Aşağıda listelenmiştir -

Sr.No Yöntem ve açıklama
1

addSpeech(String text, String filename)

Bu yöntem, bir metin dizesi ile bir ses dosyası arasına bir eşleme ekler.

2

getLanguage()

Bu yöntem, dili açıklayan bir Locale örneği döndürür.

3

isSpeaking()

Bu yöntem, TextToSpeech motorunun meşgul olup olmadığını kontrol eder.

4

setPitch(float pitch)

Bu yöntem, TextToSpeech motoru için konuşma aralığını ayarlar.

5

setSpeechRate(float speechRate)

Bu yöntem, konuşma hızını ayarlar.

6

shutdown()

Bu yöntem, TextToSpeech motoru tarafından kullanılan kaynakları serbest bırakır.

7

stop()

Bu yöntem konuşmayı durdurur.

Misal

Aşağıdaki örnek TextToSpeech sınıfının kullanımını göstermektedir. Metni yazmanıza ve konuşmanıza olanak tanıyan temel bir uygulama oluşturur.

Bu örneği denemek için, bunu gerçek bir cihazda çalıştırmanız gerekir.

Adımlar Açıklama
1 Com.example.sairamkrishna.myapplication paketi altında Android uygulaması oluşturmak için Android stüdyosunu kullanacaksınız.
2 TextToSpeech kodunu eklemek için src / MainActivity.java dosyasını değiştirin.
3 Düzen XML dosyasını değiştirin res / layout / activity_main.xml gerekirse herhangi bir GUI bileşeni ekleyin.
4 Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın.

İşte içeriği src/MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.util.Locale;
import android.widget.Toast;

public class MainActivity extends Activity {
   TextToSpeech t1;
   EditText ed1;
   Button b1;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      ed1=(EditText)findViewById(R.id.editText);
      b1=(Button)findViewById(R.id.button);

      t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
         @Override
         public void onInit(int status) {
            if(status != TextToSpeech.ERROR) {
               t1.setLanguage(Locale.UK);
            }
         }
      });

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String toSpeak = ed1.getText().toString();
            Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show();
            t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
         }
      });
   }

   public void onPause(){
      if(t1 !=null){
         t1.stop();
         t1.shutdown();
      }
      super.onPause();
   }
}

İşte içeriği activity_main.xml

Aşağıdaki kodda abctutorialspoint.com logosunu gösterir
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity"
   android:transitionGroup="true">
   
   <TextView android:text="Text to Speech" android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:theme="@style/Base.TextAppearance.AppCompat" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_below="@+id/imageView"
      android:layout_marginTop="46dp"
      android:hint="Enter Text"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:textColor="#ff7aff10"
      android:textColorHint="#ffff23d1" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Text to Speech"
      android:id="@+id/button"
      android:layout_below="@+id/editText"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="46dp" />

</RelativeLayout>

İşte içeriği Strings.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

İşte içeriği AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
   
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" >
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Uygulamanızı çalıştırmayı deneyelim. Gerçek Android Mobil cihazınızı bilgisayarınıza bağladığınızı varsayıyorum. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın

ve araç çubuğundan Çalıştır simgesine tıklayın . Uygulamanızı başlatmadan önce, android stüdyo, Android uygulamanızı çalıştırmak istediğiniz bir seçeneği seçmek için aşağıdaki pencereyi görüntüleyecektir.

Mobil cihazınızı bir seçenek olarak seçin ve ardından aşağıdaki ekranı gösterecek olan mobil cihazınızı kontrol edin.

Şimdi alana bir metin yazın ve aşağıdaki metin okuma düğmesine tıklayın. Bir bildirim görünecek ve metin söylenecektir. Aşağıdaki resimde gösterilmektedir -

Şimdi başka bir şey yazın ve adımı farklı yerel ayarlarla tekrarlayın. Sesi tekrar duyacaksınız. Bu aşağıda gösterilmiştir -