Android--TTS转语音输出

TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。这是百度百科里面的定义。很多时候我们在开发项目都要用到语音功能,在安卓手机实现语音输出是非常简单的。只需要简单的设置和简短的代码即可。

设置

  • 一般而言国内销售的手机大部分自身就支持中文语音,无需设置,直接程序调用即可;但是在海外销售的手机就不一定了,如果手机本身不支持中文语音,就需要使用到第三方的语音工具了。我这里使用的是讯飞语音
    设置图

代码调用

  • 直接上代码吧

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    package com.example.demotts;

    import java.util.Locale;

    import android.app.Activity;
    import android.os.Bundle;
    import android.speech.tts.TextToSpeech;
    import android.speech.tts.TextToSpeech.OnInitListener;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;

    public class Main extends Activity {

    private TextToSpeech toSpeech = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    initSpeech(); //**语音设置初始化

    Button buttonSa = (Button) findViewById(R.id.button_say); //**注册按键事件
    buttonSa.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
    say("你好,世界");
    }
    });
    }

    //********************************************
    //**TTS转语音
    //********************************************
    private void initSpeech(){
    toSpeech = new TextToSpeech(this, new OnInitListener() {
    @Override
    public void onInit(int status) {
    if(status != TextToSpeech.ERROR){
    toSpeech.setLanguage(Locale.US);
    }
    }
    });
    }

    private void say(String str){
    toSpeech.speak(str, TextToSpeech.QUEUE_FLUSH, null);
    }
    }
  • 到这里你就可以通过一个按键,是文字转换为语音了

结束