更新记录

1.0.3(2020-12-31)

  • 百度离线语音包 新增 setVolumn 方法用于设置音量
  • 修复 destroy 方法拼写错误

1.0.2(2020-12-28)

1.0.2

2020/12/28

  • 百度TTS新增 changeSpeeker 方法,用于切换发音人,离线可选发音人离线基础音库
  • 包名和文档更新

1.0.1(2020-12-17)

1.0.1 2020/12/17


TTS、Speech、百度离线语音合成

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 10.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


MT-TTS

安卓原生离线语音合成引擎工具插件 包含两个工具:MT-TTS-Speech(调用系统已安装TTS)、MT-TTS-Baidu(调用百度离线SDK,需要自行购买授权)

MT-TTS-Speech

调用安卓系统已安装的TTS进行语音合成播放

相关免费的安卓语音引擎TTS

使用方式

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

API

  • 初始化 init(callback, engineName?)
  • 获取已系统安装的TTS getInstallTTS(([{label, name}])=>{})
  • 设置引擎 setEngine(engineName)
  • 设置语调 setPitch(num) 0-100, 默认 50
  • 设置语速 setSpeed(num) 0-100, 默认 50
  • 获取状态 isSpeeking()
  • 设置语言 setLanguage(name) 默认中文
  • 播放 speek({text: 'test'})
  • 停止 stop()
  • 销毁 destroy()
  • 打开语音设置 openSetting()
  • 开始播放回调注册 (callback)
  • 完成播放回调注册 onDone(callback)
  • 播放出错回调注册 onError(callback)

示例

TTSSpeech.getInstallTTS(list => {
  list.forEach(v => console.log(`引擎名 ${v.label} 包名:${v.name}`));
})

TTSSpeech.init((status) => {
  if(status === 0){
    console.log('引擎初始化成功')
    TTSSpeech.speek({ text: '语音播放成功'})
  }
}, 'com.iflytek.speechcloud')

MT-TTS-Baidu

调用百度离线SDK,需要购买百度授权

百度语音离线合成SDK文档

使用方式

const TTSBaidu = uni.requireNativePlugin("MT-TTS-Baidu");

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)
  • 播放出错回调注册 onError(callback)

示例

TTSBaidu.init({
  appId: '',
  appKey: '',
  secretKey: '',
  sn: '', // 序列号
}, (status) => {
  if(status === 0){
    console.log('初始化成功')
    TTSBaidu.speek('语音播放成功!');
  }
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 百度语音合成 SDK需要提供 appId、appKey、secretKey、sn,进行激活使用。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

请参考开源项目地址的开源协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问