📅  最后修改于: 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运行该应用,请打开您项目的活动文件之一,然后点击运行工具栏中的图标。在启动您的应用程序之前,android studio将显示以下窗口以选择要在其中运行Android应用程序的选项。
选择您的移动设备作为选项,然后检查将显示以下屏幕的移动设备。
现在,只需在字段中键入一些文本,然后单击下面的“文本转语音”按钮即可。将会出现通知,并说出文字。如下面的图片所示-
现在键入其他内容,并使用不同的语言环境再次重复该步骤。您将再次听到声音。这如下所示-