- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
接口名 | 描述 |
---|---|
void create(Context context, TtsListener ttsListener) | 创建TTS客户端。context为应用的上下文;ttsListener为TTS回调,可以在TtsListener的onEvent方法中获取创建结果(成功或失败),只有在收到创建TTS客户端成功回调之后,才能进行TTS客户端的初始化。 |
void release() | 释放正在使用的TTS引擎。调用此方法会将初始化状态置为false,并结束播报任务,建议在init(TtsParams)前调用 |
boolean init(TtsParams ttsParams) | 初始化TTS客户端。设置deviceId、deviceType、语速、音量、音调、音色参数,其中deviceId必须设置,否则初始化失败 |
boolean setParams(TtsParams ttsParams) | 设置参数。支持设置音量、音调、语速、音色四个参数的修改,修改其他值无效,在init(TtsParams)之后调用,否则设置不生效 |
boolean setAudioType(AudioManager.AudioVolumeType audioType) | 设置音频流类型。目前支持AudioVolumeType.STREAM_MUSIC等九种音频流类型的设置,可在播报前调用 |
void speakText(String text, String utteranceId) | 合成音频并播报。传入需播报的文本即可合成音频并播报,支持的最大文本长度为512个字符,若文本超长或文本为空将会报错,并将错误结果通过回调TtsListener的onError(String,String)方法传给调用者。utteranceId为播报请求的唯一标识,若utteranceId为空,TTS引擎将为本次请求随机生成utteranceId |
void speakLongText(String longText, String utteranceId) | 连续合成并播报超长文本。文本最大支持长度为100000,若文本超过最大支持长度或文本为空将会报错,并将错误结果通过TtsListener的onError(String,String)方法传给调用者 |
boolean isSpeaking() | 判断是否正在进行TTS播报。如果正在进行TTS播报,返回true;否则,返回false |
void stopSpeak() | 停止TTS播报。调用此方法停止播报后,若再次播报,将会从头开始播报,而不是从停止处播报 |
Optional getVersion() | 获取TTS SDK版本号 |
void destroy() | 销毁TTS客户端。完成所有任务后,务必调用此方法销毁TTS客户端 |
eventType取值 | 描述 |
---|---|
TtsEvent.CREATE_TTS_CLIENT_SUCCESS | 创建TTS客户端成功 |
TtsEvent.CREATE_TTS_CLIENT_FAILED | 创建TTS客户端失败 |
TtsEvent.DESTROY_TTS_CLIENT_SUCCESS | 销毁TTS客户端成功 |
TtsEvent.METHOD_EXECUTE_SUCCESS | 方法执行成功或方法执行无异常时,返回此事件类型。对应的方法可以通过pacMap.getIntValue(TtsClient.PAC_MAP_KEY_METHOD_ID)获取 |
TtsEvent.METHOD_EXECUTE_FAILED_REMOTE_EXCEPTION | 方法执行失败或异常。对应的方法可以通过pacMap.getIntValue(TtsClient.PAC_MAP_KEY_METHOD_ID)获取 |
TtsEvent.DESTROY_TTS_CLIENT_FAILED | 销毁TTS客户端失败或未成功创建TTS客户端时,调用destroy方法,返回此事件类型 |
method Id | 方法 |
---|---|
TtsClient.METHOD_CREATE | create |
TtsClient.METHOD_DESTROY | destroy |
TtsClient.METHOD_RELEASE | release |
TtsClient.METHOD_SPEAK_LONG_TEXT | speakLongText |
TtsClient.METHOD_SPEAK_TEXT | speakText |
TtsClient.METHOD_STOP_SPEAK | stopSpeak |
import ohos.ai.tts.TtsClient; // TTS接口
import ohos.ai.tts.TtsListener; // TTS回调
import ohos.ai.tts.TtsParams; // TTS参数
import ohos.ai.tts.constants.TtsEvent; // TTS事件
import ohos.utils.PacMap; // TTS依赖
private static final TtsListener ttsListener = new TtsListener() {
@Override
public void onEvent(int eventType, PacMap pacMap) {
// Log.info("onEvent:" + eventType);
if (eventType == TtsEvent.CREATE_TTS_CLIENT_SUCCESS) {
// Log.info("TTS Client create success");
}
}
@Override
public void onStart(String utteranceId) {
// Log.info(utteranceId + " audio synthesis begins");
}
@Override
public void onProgress(String utteranceId, byte[] audioData, int progress) {
// Log.info(utteranceId + " audio synthesis progress:" + progress);
}
@Override
public void onFinish(String utteranceId) {
// Log.info(utteranceId + " audio synthesis completed");
}
@Override
public void onSpeechStart(String utteranceId) {
// Log.info(utteranceId + " begins to speech");
}
@Override
public void onSpeechProgressChanged(String utteranceId, int progress) {
// Log.info(utteranceId + " speech progress:" + progress);
}
@Override
public void onSpeechFinish(String utteranceId) {
// Log.info(utteranceId + " speech completed");
}
@Override
public void onError(String utteranceId, String errorMessage) {
// Log.info(utteranceId + " errorMessage: " + errorMessage);
}
};
TtsClient.getInstance().create(context, ttsListener);
TtsParams ttsParams = new TtsParams();
ttsParams.setDeviceId("your device id");
boolean initResult = TtsClient.getInstance().init(ttsParams);
if (initResult) {
TtsClient.getInstance().speakText("欢迎使用语音播报!", null);
}
TtsClient.getInstance().destroy();
我应该如何处理导致一些问题的常量。? import static android.net.ConnectivityManager.TYPE_BLUETOOTH; import
前言 因为鸿蒙系统刚出不久,官方的第三方登录SDK还没出来,下面就介绍下在鸿蒙应用中实现QQ登录的方法(支持唤起QQ安卓客户端进行授权) 前期准备 登录QQ开放平台 >
简介 前段时间一直研究ArkUI中的声明式开发,开发了一些demo,但都是界面相关的,相对来说比较基础,也比较简单。所以研究一下其他的,现在成熟的APP都会有网络交互,所以记录一篇网络
前言 鸿蒙这次API7更新除了新增TS声明式开发之外,还有JS开发也增加了很多API,JS开发自定义组件越来越方便了。 本项目基于ArkUI中JS扩展的类Web开发范式,关于
前言 本项目就是基于ArkUI中的声明式编程开发,语言ETS(Extended Type Script),代码都在ets文件中编写,这个文件用于描述 UI 布局、样式、事件交互和页面逻辑。
鸿蒙(HarmonyOS)原生AI能力之文本识别 原生智能介绍 在之前开发中,很多场景我们是通过调用云端的智能能力进行开发。例如文本识别、人脸识别等。 原生即指将一些能力直接集成在
全局弹窗相对于自定义弹窗有以下优点: 封装更彻底,一行代码就能调用 跟组件耦合度低,只需要传入组件的UIContext对象,不需要跟自定义弹窗一样需要在组件内部实例化CustomDialo
我正在使用 JS 框架创建一个 HarmonyOS 可穿戴应用程序,我想使用振动器。 watch 肯定有一个振动器,因为当我在设置应用程序中使用滚动条时我能感觉到它。 所以我申请了 system_gr
1 简介 通讯录demo主要分为联系人界面、设置紧急联系人、服务卡片3个模块,分为Java和JS两个版本,本篇主要讲解用尽可能的用纯JS去实现,实在无法实现的地方采用JS与Java结合
简介 本项目界面搭建基于ArkUI中TS扩展的声明式开发范式,关于语法和概念直接看官网官方文档地址: 基于TS扩展的声明式开发范式1、基于TS扩展的声明式开发范式2
DevEco Studio 下载、安装教程 DevEco Studio 下载 下载地址 运行环境 操作系统:Windows 10 64位 内存:8GB及以上 硬盘:100GB及以上 分辨率:1580*
我正在使用 Java SDK 在 HarmonyOS 中创建一个自定义组件,我必须在其中双击执行一些任务。但我无法检测到双击事件。 在 Android 中,借助 手势检测器 类我们可以检测双击事件如下
看到在 51CTO HarmonyOS社区张老师发了关于设备方向的认证资料,我给大家准备了应用方向的认证资料。 因为认证刚开始发布,现阶段去考相对来说是挺简单的,但是还是得把大纲的东西全部弄会。 官网
我正在开发华为 HarmonyOS 应用程序,我正在尝试使用 RxJava 为后台任务实现一个基类。我的问题是我不知道如何在主线程上观察。 在常规 Android 上,我会使用 AndroidSche
我正在做一个 Flutter 项目。其中,我们要生成 Android、iOS 和 HarmonyOS(华为)的构建版本。但我不确定 Flutter 是否支持这个操作系统。我浏览了互联网上的一些东西,但
我正在使用 Java SDK 在 HarmonyOS 中创建一个自定义组件,我必须在组件实例延迟一段时间后执行一些任务。 在 Android 中,我们有 postDelayed(Runnable ac
我是一名优秀的程序员,十分优秀!