📜  Android-文字转语音

📅  最后修改于: 2021-01-05 05:35:38             🧑  作者: Mango


Android允许您将文本转换为语音。您不仅可以转换它,还可以用多种不同的语言说文本。

Android为此提供了TextToSpeech类。为了使用此类,您需要实例化此类的对象并指定initListener 。其语法如下-

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

在此侦听器中,您必须指定TextToSpeech对象的属性,例如其语言,音高等。可以通过调用setLanguage()方法来设置语言。其语法如下-

ttobj.setLanguage(Locale.UK);

setLanguage方法将Locale对象作为参数。下面列出了一些可用的语言环境-

Sr.No Locale
1 US
2 CANADA_FRENCH
3 GERMANY
4 ITALY
5 JAPAN
6 CHINA

设置语言后,您可以调用该类的方法讲文本。其语法如下-

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

除语音方法外,TextToSpeech类中还有其他一些方法。它们在下面列出-

Sr.No Method & description
1

addSpeech(String text, String filename)

This method adds a mapping between a string of text and a sound file.

2

getLanguage()

This method returns a Locale instance describing the language.

3

isSpeaking()

This method checks whether the TextToSpeech engine is busy speaking.

4

setPitch(float pitch)

This method sets the speech pitch for the TextToSpeech engine.

5

setSpeechRate(float speechRate)

This method sets the speech rate.

6

shutdown()

This method releases the resources used by the TextToSpeech engine.

7

stop()

This method stop the speak.

下面的示例演示TextToSpeech类的用法。它创建了一个基本应用程序,可让您设置书写文字并说出来。

要尝试使用此示例,您需要在实际设备上运行它。

Steps Description
1 You will use Android studio to create an Android application under a package com.example.sairamkrishna.myapplication.
2 Modify src/MainActivity.java file to add TextToSpeech code.
3 Modify layout XML file res/layout/activity_main.xml add any GUI component if required.
4 Run the application and choose a running android device and install the application on it and verify the results.

这是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();
   }
}

这是activity_main.xml的内容

在下面的代码中, abc指示tutorialspoint.com的徽标



   
   
      
   
      
   
      
   
      
   


这是Strings.xml的内容。


   My Application

这是AndroidManifest.xml的内容



   
   
      
      
         
            
            
         
         
      
      
   

让我们尝试运行您的应用程序。我假设您已将实际的Android Mobile设备与计算机连接。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后点击运行Eclipse运行图标工具栏中的图标。在启动您的应用程序之前,android studio将显示以下窗口以选择要在其中运行Android应用程序的选项。

匿名文本到语音教程

选择您的移动设备作为选项,然后检查将显示以下屏幕的移动设备。

Android文字转语音教学

现在,只需在字段中键入一些文本,然后单击下面的“文本转语音”按钮即可。将会出现通知,并说出文字。如下面的图片所示-

Android文字转语音教学

现在键入其他内容,并使用不同的语言环境再次重复该步骤。您将再次听到声音。这如下所示-

Android文字转语音教学