Android - Text zu Sprache

Mit Android können Sie Ihren Text in Sprache umwandeln. Sie können es nicht nur konvertieren, sondern auch Text in verschiedenen Sprachen sprechen.

Android bietet TextToSpeechKlasse für diesen Zweck. Um diese Klasse verwenden zu können, müssen Sie ein Objekt dieser Klasse instanziieren und außerdem das angebeninitListener. Die Syntax ist unten angegeben -

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

In diesem Listener müssen Sie die Eigenschaften für das TextToSpeech-Objekt angeben, z. B. Sprache, Tonhöhe usw. Die Sprache kann durch Aufrufen festgelegt werden setLanguage()Methode. Die Syntax ist unten angegeben -

ttobj.setLanguage(Locale.UK);

Die Methode setLanguage verwendet ein Locale-Objekt als Parameter. Die Liste einiger verfügbarer Gebietsschemas finden Sie unten -

Sr.Nr. Gebietsschema
1 UNS
2 CANADA_FRENCH
3 DEUTSCHLAND
4 ITALIEN
5 JAPAN
6 CHINA

Sobald Sie die Sprache eingestellt haben, können Sie anrufen speakMethode der Klasse, um den Text zu sprechen. Die Syntax ist unten angegeben -

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

Neben der Speak-Methode stehen in der TextToSpeech-Klasse einige andere Methoden zur Verfügung. Sie sind unten aufgeführt -

Sr.Nr. Methode & Beschreibung
1

addSpeech(String text, String filename)

Diese Methode fügt eine Zuordnung zwischen einer Textzeichenfolge und einer Audiodatei hinzu.

2

getLanguage()

Diese Methode gibt eine Locale-Instanz zurück, die die Sprache beschreibt.

3

isSpeaking()

Diese Methode prüft, ob die TextToSpeech-Engine gerade spricht.

4

setPitch(float pitch)

Diese Methode legt den Sprachabstand für die TextToSpeech-Engine fest.

5

setSpeechRate(float speechRate)

Diese Methode legt die Sprachrate fest.

6

shutdown()

Diese Methode gibt die von der TextToSpeech-Engine verwendeten Ressourcen frei.

7

stop()

Diese Methode stoppt das Sprechen.

Beispiel

Das folgende Beispiel zeigt die Verwendung der TextToSpeech-Klasse. Es erstellt eine Basisanwendung, mit der Sie Text schreiben und sprechen können.

Um mit diesem Beispiel zu experimentieren, müssen Sie dies auf einem tatsächlichen Gerät ausführen.

Schritte Beschreibung
1 Sie werden Android Studio verwenden, um eine Android-Anwendung unter einem Paket com.example.sairamkrishna.myapplication zu erstellen.
2 Ändern Sie die Datei src / MainActivity.java, um TextToSpeech-Code hinzuzufügen.
3 Ändern Sie die Layout-XML-Datei res / layout / activity_main.xml und fügen Sie bei Bedarf eine beliebige GUI-Komponente hinzu.
4 Führen Sie die Anwendung aus und wählen Sie ein laufendes Android-Gerät aus. Installieren Sie die Anwendung darauf und überprüfen Sie die Ergebnisse.

Hier ist der Inhalt von 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();
   }
}

Hier ist der Inhalt von activity_main.xml

Im folgenden Code abczeigt das Logo von tutorialspoint.com an
<?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>

Hier ist der Inhalt von Strings.xml.

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

Hier ist der Inhalt von 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>

Versuchen wir, Ihre Anwendung auszuführen. Ich gehe davon aus, dass Sie Ihr aktuelles Android Mobile-Gerät mit Ihrem Computer verbunden haben. Um die App von Android Studio aus auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in

der Symbolleiste auf das Symbol Ausführen . Vor dem Starten Ihrer Anwendung zeigt Android Studio das folgende Fenster an, um eine Option auszuwählen, bei der Sie Ihre Android-Anwendung ausführen möchten.

Wählen Sie Ihr Mobilgerät als Option aus und überprüfen Sie dann Ihr Mobilgerät, das den folgenden Bildschirm anzeigt.

Geben Sie nun einfach Text in das Feld ein und klicken Sie unten auf die Schaltfläche Text zu Sprache. Eine Benachrichtigung wird angezeigt und der Text wird gesprochen. Es ist im Bild unten gezeigt -

Geben Sie nun etwas anderes ein und wiederholen Sie den Schritt erneut mit einem anderen Gebietsschema. Sie werden wieder Ton hören. Dies ist unten gezeigt -