Android - Text To Speech

Android ti consente di convertire il tuo testo in voce. Non solo puoi convertirlo, ma ti consente anche di parlare il testo in una varietà di lingue diverse.

Android fornisce TextToSpeechclasse per questo scopo. Per utilizzare questa classe, è necessario creare un'istanza di un oggetto di questa classe e specificare anche il fileinitListener. La sua sintassi è data di seguito:

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

In questo listener, devi specificare le proprietà per l'oggetto TextToSpeech, come la sua lingua, il tono ecc. La lingua può essere impostata chiamando setLanguage()metodo. La sua sintassi è data di seguito:

ttobj.setLanguage(Locale.UK);

Il metodo setLanguage accetta un oggetto Locale come parametro. Di seguito è riportato l'elenco di alcune delle località disponibili:

Suor n Locale
1 NOI
2 CANADA_FRENCH
3 GERMANIA
4 ITALIA
5 GIAPPONE
6 CINA

Dopo aver impostato la lingua, puoi chiamare speakmetodo della classe per pronunciare il testo. La sua sintassi è data di seguito:

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

Oltre al metodo speak, ci sono altri metodi disponibili nella classe TextToSpeech. Sono elencati di seguito:

Suor n Metodo e descrizione
1

addSpeech(String text, String filename)

Questo metodo aggiunge una mappatura tra una stringa di testo e un file audio.

2

getLanguage()

Questo metodo restituisce un'istanza Locale che descrive la lingua.

3

isSpeaking()

Questo metodo controlla se il motore TextToSpeech è occupato a parlare.

4

setPitch(float pitch)

Questo metodo imposta il tono del parlato per il motore TextToSpeech.

5

setSpeechRate(float speechRate)

Questo metodo imposta la velocità del parlato.

6

shutdown()

Questo metodo rilascia le risorse utilizzate dal motore TextToSpeech.

7

stop()

Questo metodo ferma la parola.

Esempio

L'esempio seguente mostra l'uso della classe TextToSpeech. Crea un'applicazione di base che ti consente di impostare il testo di scrittura e di pronunciarlo.

Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale.

Passi Descrizione
1 Utilizzerai Android Studio per creare un'applicazione Android con un pacchetto com.example.sairamkrishna.myapplication.
2 Modifica il file src / MainActivity.java per aggiungere il codice TextToSpeech.
3 Modifica il file XML di layout res / layout / activity_main.xml aggiungi qualsiasi componente della GUI se necessario.
4 Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati.

Ecco il contenuto di 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();
   }
}

Ecco il contenuto di activity_main.xml

Nel codice seguente abcindica il logo di tutorialspoint.com
<?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>

Ecco il contenuto di Strings.xml.

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

Ecco il contenuto di 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>

Proviamo a eseguire la tua applicazione. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Prima di avviare l'applicazione, Android Studio visualizzerà la seguente finestra per selezionare un'opzione in cui si desidera eseguire l'applicazione Android.

Seleziona il tuo dispositivo mobile come opzione e quindi controlla il tuo dispositivo mobile che mostrerà la schermata seguente.

Ora digita del testo nel campo e fai clic sul pulsante di sintesi vocale in basso. Apparirà una notifica e verrà pronunciato il testo. È mostrato nell'immagine qui sotto -

Ora digita qualcos'altro e ripeti il ​​passaggio di nuovo con una lingua diversa. Sentirai di nuovo il suono. Questo è mostrato di seguito -