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
50package 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;
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() {
public void onClick(View arg0) {
say("你好,世界");
}
});
}
//********************************************
//**TTS转语音
//********************************************
private void initSpeech(){
toSpeech = new TextToSpeech(this, new OnInitListener() {
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);
}
}到这里你就可以通过一个按键,是文字转换为语音了