📜  如何在Android中将文本转换为语音?

📅  最后修改于: 2021-05-09 16:39:42             🧑  作者: Mango

文字转语音应用程序会将屏幕上书写的文本转换为语音,就像您在屏幕上书写了“ Hello World”一样,当您按下按钮时,它将说出“ Hello World”。文字转语音通常用作辅助功能,以帮助阅读屏幕上的文本有困难的人,但对于想阅读的人也很方便。对于用户而言,此功能已成为非常普遍且有用的功能。

应用程序的运行状况

在Android中将文本转换为语音的步骤

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

步骤2:使用activity_main.xml文件

转到应用程序-> res->布局-> activity_main.xml部分,并设置应用程序的布局。在此文件中,添加一个EditText来输入用户的文本,即一个Button,因此,每当用户单击Button时,它将转换为语音,并转换一个TextView来显示GeeksforGeeks文本。以下是activity_main.xml文件的完整代码。

activity_main.xml


    
    
    
    
    
    


MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
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;
  
public class MainActivity extends AppCompatActivity {
  
    EditText Text;
    Button btnText;
    TextToSpeech textToSpeech;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        Text = findViewById(R.id.Text);
        btnText = findViewById(R.id.btnText);
  
        // create an object textToSpeech and adding features into it
        textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int i) {
  
                // if No error is found then only it will run
                if(i!=TextToSpeech.ERROR){ 
                    // To Choose language of speech
                    textToSpeech.setLanguage(Locale.UK); 
                }
            }
        });
  
        // Adding OnClickListener
        btnText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textToSpeech.speak(Text.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
            }
        });
  
    }
}


步骤3:使用MainActivity。 Java文件

转到应用-> Java > com.example.GFG(Package Name)-> MainActivity。 Java部分。现在,将Button和Edittext加入Java代码,并在代码内部添加注释,以轻松理解代码。以下是MainActivity的完整代码。 Java文件。

主要活动。Java

import androidx.appcompat.app.AppCompatActivity;
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;
  
public class MainActivity extends AppCompatActivity {
  
    EditText Text;
    Button btnText;
    TextToSpeech textToSpeech;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        Text = findViewById(R.id.Text);
        btnText = findViewById(R.id.btnText);
  
        // create an object textToSpeech and adding features into it
        textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int i) {
  
                // if No error is found then only it will run
                if(i!=TextToSpeech.ERROR){ 
                    // To Choose language of speech
                    textToSpeech.setLanguage(Locale.UK); 
                }
            }
        });
  
        // Adding OnClickListener
        btnText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textToSpeech.speak(Text.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
            }
        });
  
    }
}

用户也可以选择另一种语言。为此,请参考下图以了解操作方法。

输出:在模拟器上运行

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!