【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)

什么是TTS?

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

在程序开发中,有很多TTS的插件,比如百度,讯飞,等等,但是大部分产品都不是完全免费无限制次数调用的且需在线使用

本篇文章介绍一种免费快捷且可以离线本地使用的方法:调用安卓系统已安装的TTS进行语音合成播放。

安卓原生自带离线语音合成的使用

1. 安装Android文字转语音引擎

安卓系统本身是有自带语音引擎的,但是有些手机没有,如果没有的话,需要先安装语音引擎apk,可以参考这篇文章下载:Android文字转语音引擎(TTS)简单比较及下载

2. 调用系统已安装TTS插件 (MT-TTS)

在手机上已经有语音引擎的前提下,就可以使用MT-TTS插件进行调用了。

2.1 下载MT-TTS插件

下载地址和使用方法:MT-TTS离线语音合成

可以直接在下载的demo上进行开发,或者把demo里面的nativeplugins文件夹拷贝到自己的项目根目录下
【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第1张图片
然后把项目用HBuilder X打开,点击manifest.json文件,App原生插件配置,把MT-TTS勾选上,确定

【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第2张图片

2.2 使用自定义基座打包uni原生插件 (注:请使用真机运行自定义基座)

使用uni原生插件必须先提交云端打包才能生效,所以需要先把原生插件打包到自定义基座,然后再进行写代码真机调试(不知道怎么真机调试的可以看看我这篇文章真机调试)。
运行-》运行到手机或模拟器-》制作自定义调试基座
【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第3张图片
打包
【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第4张图片

打包发布
使用自定义基座开发调试uni-app原生插件后,不可直接将自定义基座apk作为正式版发布。
应该重新提交云端打包(不能勾选“自定义基座”)生成正式版本。
自定义基座打包完成后,选择自定义调试基座。

【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第5张图片
之后,就可以真机运行调试了
【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第6张图片

2.3 正式使用MT-TTS

插件的demo里面有示例代码,挺详细的,这里对主要使用步骤进行简单说明:
requireNativePlugin导入插件

const TTSSpeech = uni.requireNativePlugin("MT-TTS-Speech");

先进行初始化

<button class="title" size="mini" @click="init">Init TTSbutton>
init() {
		console.log('>> TTS:init...')
		SpeechTTS.init((callback) => {
				this.isReady = true;
				console.log('>> tts: init success');
		});

		SpeechTTS.onDone((res) => {
				console.log(">> tts: play end " + res)
		});
},

语音播放

<button class="title" size="mini" @click="play">播放button>
text: '请。112号、张三,到,C04、检查'
play() {
		console.log('>> tts: play...');
		const res = SpeechTTS.speak({
					text: this.text
		});
		console.log('>> tts: play result = ' + res);
},

其他使用请参考下面的插件API

插件API

  • 初始化 init(options, callback)
  • 设置语调 setPitch(num) 范围 0-9,默认5
  • 设置语速 setSpeed(num) 范围 0-9,默认5
  • 设置语速 setVolumn(num) 范围 0-9,默认15
  • 获取状态 isSpeeking()
  • 播放 speek(text, utteranceId)
  • 播放 changeSpeeker(text) text: F(度小美)、M(度小宇)、Y(度丫丫)、X(度逍遥), 成功返回0
  • 停止合成 stop()
  • 暂停播放 paused()
  • 恢复播放 resume()
  • 销毁 destroy()
  • 开始播放回调注册 (callback)
  • 完成播放回调注册 onDone(callback)
  • 播放出错回调注册 (callback)

本篇文章就介绍到这里啦,祝各位程序员1024程序员节日快乐!
【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)_第7张图片

你可能感兴趣的:(前端,android,移动开发,1024程序员节,uni-app,android,语音识别)