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,回收资源。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android TTS是指Android平台上的文本转语音技术(Text-to-Speech)。通过使用Android TTS,开发者可以将文本转换为语音并播放出来。在Android中,可以使用TextToSpeech类来实现TTS功能。 在初始化TextToSpeech对象时,可以通过实现TextToSpeech.OnInitListener接口的onInit方法来获取初始化的结果。在onInit方法中,可以设置朗读的语言,例如设置为中文。如果语言数据丢失或不支持中文,可以进行相应的处理。 TextToSpeech类有两个主要的构造函数,可以根据需要选择使用。其中一个构造函数需要传入上下文和初始化监听器,另一个构造函数还可以传入引擎的包名。 要进行朗读操作,可以使用TextToSpeech类的speak方法。该方法接受要朗读的文本串作为参数,并可以设置队列策略、请求参数和唯一标识符等。 综上所述,Android TTS是一种将文本转换为语音并播放的技术,可以通过TextToSpeech类来实现。可以通过初始化监听器获取初始化结果,设置朗读的语言,使用不同的构造函数创建TextToSpeech对象,并使用speak方法进行朗读操作。 #### 引用[.reference_title] - *1* *2* *3* [Android实现TTS文字转语音功能](https://blog.csdn.net/qq_40785165/article/details/123764071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值