文章40 | 阅读 20750 | 点赞0
接口名 | 描述 |
---|---|
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();
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/Forever_wj/article/details/118336440
内容来源于网络,如有侵权,请联系作者删除!