tts高级编程 android,Android TTS(TextToSpeech) 使用

TTS 是什么?

TTS 是 Text To Speech 的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。

TTS 技术对文本文件进行实时转换,转换时间之短可以秒计算。

TTS 不仅能帮助有视觉障碍的人阅读计算机上的信息,更能增加文本文档的可读性。现在的 TTS 应用包括语音驱动的邮件以及声音敏感系统,并常与声音识别程序一起使用。

开发者官网介绍

2c75343c9dc9

Android 开发者官网介绍

从上面 Android 开发者官网的介绍可以看出 TextToSpeech 必须被实例化之后才能使用。

实现 TextToSpeech.OnInitListener 方法来获取实例化结果的监听。当你已经使用完 TextToSpeech 实例之后, 应该调用 shutdown() 方法来释放 TextToSpeech 所使用的本地资源。

构造方法

//使用默认的引擎

TextToSpeech(Context context, TextToSpeech.OnInitListener listener)

//使用指定的引擎

TextToSpeech(Context context, TextToSpeech.OnInitListener listener, String engine)

主要方法

/**

* text 需要转成语音的文字

* queueMode 队列方式:

* QUEUE_ADD:播放完之前的语音任务后才播报本次内容

* QUEUE_FLUSH:丢弃之前的播报任务,立即播报本次内容

* params 设置TTS参数,可以是null。

* KEY_PARAM_STREAM:音频通道,可以是:STREAM_MUSIC、STREAM_NOTIFICATION、STREAM_RING等

* KEY_PARAM_VOLUME:音量大小,0-1f

* utteranceId:当前朗读文本的id

*/

textToSpeech.speak(content, TextToSpeech.QUEUE_FLUSH, null,i+"");

// 不管是否正在朗读TTS都被打断

textToSpeech.stop();

// 关闭,释放资源

textToSpeech.shutdown();

// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规

textToSpeech.setPitch(0.5f);

// 设定语速,默认1.0正常语速

textToSpeech.setSpeechRate(1.5f);

项目中使用

1、创建 TextToSpeech 类

//使用默认引擎,传入 Context 和 OnInitListener

TextToSpeech toSpeech = new TextToSpeech(this, this);

2、重写 onInit() 方法

@Override

public void onInit(int status) {

if (status == TextToSpeech.SUCCESS) {

int result = toSpeech.setLanguage(Locale.CHINA);

if (result == TextToSpeech.LANG_MISSING_DATA

|| result == TextToSpeech.LANG_NOT_SUPPORTED) {

Toast.makeText(this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();

}

if (toSpeech != null) {

toSpeech.setPitch(1.0f);// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规

toSpeech.speak(list_task_little.get(currentPosition).getTask_content(),

TextToSpeech.QUEUE_FLUSH, null);

}

}

}

调用方法 int result = toSpeech.setLanguage(Locale.CHINA); 设定语言为中文

在 onInit() 方法中判断初始化是否成功,初始化成功使用 toSpeech.setPitch(1.0f) 进行设置音调,值越大,音调越高。

使用 textToSpeech.setSpeechRate(1.5f) 设定语速,默认1.0正常语速。

3、释放资源

@Override

protected void onStop() {

super.onStop();

toSpeech.stop(); // 不管是否正在朗读TTS都被打断

toSpeech.shutdown(); // 关闭,释放资源

}

当页面需要退出或者不在使用 TTS 的时候,进行资源释放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值