Android自动朗读(TTS)

今天在看《疯狂android讲义》的时候,看到一篇自动朗读,原来android还有这功能,感觉还挺有意思的噢。自动朗读支持可以对指定文本内容进行朗读,从而发出声音,android的自动朗读还允许把文本对应的音频录制成音频文件,方便以后播出。
现在来看一个例子:
布局代码:
Android自动朗读(TTS)
布局代码就很简单,两个Button和一个EditText
MainActivity.java:
public class MainActivity extends Activity {

private EditText etContent;
private TextToSpeech tts;
private Button btnSpeek;
private Button btnSave;

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

etContent = (EditText) findViewById(R.id.et_content);
btnSpeek = (Button) findViewById(R.id.btn_speek);
btnSave = (Button) findViewById(R.id.btn_save);

tts = new TextToSpeech(this, new OnInitListener() {

@Override
public void onInit(int status) {
// 若装载TTS引擎成功
if (status == TextToSpeech.SUCCESS) {
// 设置用美式英语朗读
int result = tts.setLanguage(Locale.US);
// 如果不支持所设置的语言
if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE
&& result != TextToSpeech.LANG_AVAILABLE) {
Toast.makeText(MainActivity.this, "TTS暂时不支持这种语言的朗读", 0)
.show();
}
}
}
});

btnSpeek.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
tts.speak(etContent.getText().toString(),
TextToSpeech.QUEUE_ADD, null);

}
});

btnSave.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
tts.synthesizeToFile(etContent.getText().toString(), null,
"/mnt/sdcard/sond.wav");
Toast.makeText(MainActivity.this, "声音记录保存成功!", 0).show();
}
});
}
@Override
protected void onDestroy() {
if (tts != null) {
tts.shutdown();
}
}
}
结果:
Android自动朗读(TTS)
当然点击朗读就在读 my name了,我这里是个女声噢~还可以保存这个声音文件,当然被保存的声音文件是可以在其他音频播放软件中播放的。
归纳起来,使用TextToSpeed的步骤:
1. 创建 TextToSpeed对象,创建时传入OnInitListener监听器监听创建是否成功。
2. 设置 TextToSpeed所使用的语言、国家选项,通过返回值判断TTS是否支持该语言、国家选项。
3. 调用speed()或者synthesizeToFile()方法。
4. 关闭TTS,回收资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值