text to speech

Android文字到语音教程

 

 
 

Android提供了一个很酷的功能(来自Android 1.6),称为文本到语音(TTS),它以不同的语言提供文本。本教程解释了如何使用android文字到语音或Android语音合成。在本教程中,我还介绍了更改语言类型,音高级别和速度级别。

下载代码

下面我提供了输出的视频。

 

我开发了一个简单的界面,一个输入字段和一个按钮来触发一个事件,它将从输入字段中取出文本并说出来。

Android文字到演讲

1。通过转到文件⇒新的Android项目创建一个新的项目。并填写所需的详细信息。
2。从TextToSpeech.OnInitListener实现主要的Activity类

public class AndroidTextToSpeechActivity extends Activity implements TextToSpeech.OnInitListener {

3。现在添加以下代码你的类。

package com.androidhive.texttospeech;
 
import java.util.Locale;
 
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
public class AndroidTextToSpeechActivity extends Activity implements
        TextToSpeech.OnInitListener {
    /** Called when the activity is first created. */
 
    private TextToSpeech tts;
    private Button btnSpeak;
    private EditText txtText;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        tts = new TextToSpeech(this, this);
 
        btnSpeak = (Button) findViewById(R.id.btnSpeak);
 
        txtText = (EditText) findViewById(R.id.txtText);
 
        // button on click event
        btnSpeak.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View arg0) {
                speakOut();
            }
 
        });
    }
 
    @Override
    public void onDestroy() {
        // Don't forget to shutdown tts!
        if (tts != null) {
            tts.stop();
            tts.shutdown();
        }
        super.onDestroy();
    }
 
    @Override
    public void onInit(int status) {
 
        if (status == TextToSpeech.SUCCESS) {
 
            int result = tts.setLanguage(Locale.US);
 
            if (result == TextToSpeech.LANG_MISSING_DATA
                    || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Log.e("TTS", "This Language is not supported");
            } else {
                btnSpeak.setEnabled(true);
                speakOut();
            }
 
        } else {
            Log.e("TTS", "Initilization Failed!");
        }
 
    }
 
    private void speakOut() {
 
        String text = txtText.getText().toString();
 
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
    }
}

4。现在运行您的项目并通过在输入文件中输入一些文本来测试您的应用程序。

 

改变语言

您可以使用setLanguage()函数来更改语言。支持多种语言,如加拿大,法国,中国,德国等,

tts.setLanguage(Locale.CHINESE); // Chinese language

改变音高率

您可以使用setPitch()功能设置速度级别。默认情况下,该值为1.0您可以设置低于1.0的值以降低音高级别或增加音高级别的较大值。

tts.setPitch(0.6);

改变速度

速度可以使用setSpeechRate()设置。这也将默认为1.0值。通过设置2.0可以将速度提高一倍,或通过设置0.5来使速度等于一半

tts.setSpeechRate(2);

posted on 2017-07-08 01:09  信假名如  阅读(628)  评论(0)    收藏  举报

导航