跳转至

tts_engine

TTS(Text-To-Speech)引擎模块,提供文本转语音合成与播放功能,支持中文文本的语音合成、音频会话管理及事件回调通知。

头文件清单

#include "middleware/services/media/foundation/service/intelligent_voice_service/tts_engine/include/intelligent_voice_tts_engine.h"

接口清单

接口名称 功能简述
IntellVoiceTtsEngineInit 初始化TTS引擎,注册事件回调并创建音频会话
IntellVoiceTtsEngineTextSpeak 将文本送入TTS引擎进行语音合成并播放
IntellVoiceTtsEngineStop 停止当前TTS语音合成与播放
IntellVoiceTtsEngineDeInit 反初始化TTS引擎,释放全部资源

Functions

IntellVoiceTtsEngineInit

int32_t IntellVoiceTtsEngineInit(TtsEngineInitParams *initParams)

头文件清单

#include "middleware/services/media/foundation/service/intelligent_voice_service/tts_engine/include/intelligent_voice_tts_engine.h"

功能说明

  • 初始化TTS引擎运行上下文,分配播放线程与合成线程所需资源
  • 注册TTS事件回调函数,用于接收合成与播放过程中的事件通知
  • 创建音频会话并激活音频中断策略,建立音频输出通道

前置条件

  • 调用时序约束:TTS引擎未初始化状态下调用,若引擎已存在则返回失败
  • 依赖关系:依赖音频管理器(AudioManager)已就绪

入参

名称 参数类型 详细说明 约束取值范围
initParams TtsEngineInitParams * TTS引擎初始化参数结构体指针,包含事件回调函数 非NULL

返回值

返回类型:int32_t

返回值 文字含义 触发场景
0 (MEDIA_OK) 执行成功 初始化上下文、音频会话、模型环境均成功
非0 (MEDIA_ERR) 执行失败 参数为空、引擎已存在、音频会话创建失败或模型环境初始化失败

IntellVoiceTtsEngineTextSpeak

int32_t IntellVoiceTtsEngineTextSpeak(int32_t textId, const char *textString, uint32_t textLen)

头文件清单

#include "middleware/services/media/foundation/service/intelligent_voice_service/tts_engine/include/intelligent_voice_tts_engine.h"

功能说明

  • 将指定文本送入TTS引擎,启动文本转语音合成与音频播放流程
  • 通过textId标识当前合成的文本,合成完成后回调中携带该标识
  • 文本长度不超过1024字节,支持中文字符的拼音转换与语音合成

前置条件

  • 调用时序约束:必须在IntellVoiceTtsEngineInit成功返回后调用
  • 依赖关系:TTS引擎处于INIT状态,非IDLE或ERR状态

入参

名称 参数类型 详细说明 约束取值范围
textId int32_t 文本标识,用于在回调中区分不同的合成请求 -
textString const char * 待合成的文本字符串指针 非NULL
textLen uint32_t 文本字符串长度(字节) 1 ~ 1024

返回值

返回类型:int32_t

返回值 文字含义 触发场景
0 (MEDIA_OK) 执行成功 文本成功送入缓存队列
非0 (MEDIA_ERR) 执行失败 引擎状态异常、缓存初始化失败或线程创建失败
非0 (MEDIA_NO_CACHE) 缓存空间不足 文本缓存区无可用空间

IntellVoiceTtsEngineStop

int32_t IntellVoiceTtsEngineStop(void)

头文件清单

#include "middleware/services/media/foundation/service/intelligent_voice_service/tts_engine/include/intelligent_voice_tts_engine.h"

功能说明

  • 停止当前正在进行的TTS语音合成与播放
  • 销毁合成线程与播放线程,释放PCM缓存资源
  • 将引擎状态切换为STOP

前置条件

  • 调用时序约束:必须在IntellVoiceTtsEngineTextSpeak成功调用后、引擎处于START状态时调用
  • 依赖关系:TTS引擎已初始化且处于合成播放状态

返回值

返回类型:int32_t

返回值 文字含义 触发场景
0 (MEDIA_OK) 执行成功 成功停止合成与播放并释放资源
非0 (MEDIA_ERR) 执行失败 引擎未初始化或未处于START状态

IntellVoiceTtsEngineDeInit

int32_t IntellVoiceTtsEngineDeInit(void)

头文件清单

#include "middleware/services/media/foundation/service/intelligent_voice_service/tts_engine/include/intelligent_voice_tts_engine.h"

功能说明

  • 反初始化TTS引擎,释放全部运行时资源
  • 若引擎仍处于合成播放状态,先执行停止操作再进行反初始化
  • 销毁音频播放上下文、合成上下文、互斥锁等资源,去激活音频中断策略

前置条件

  • 调用时序约束:必须在IntellVoiceTtsEngineInit成功返回后调用
  • 依赖关系:TTS引擎已初始化

返回值

返回类型:int32_t

返回值 文字含义 触发场景
0 (MEDIA_OK) 执行成功 成功释放全部资源并销毁引擎上下文
非0 (MEDIA_ERR) 执行失败 引擎未初始化(上下文为空)

Enumerations

TtsEngineEvent

typedef enum {
    TTS_ENGINE_EVENT_SPEAK_BEGIN,
    TTS_ENGINE_EVENT_SPEAK_PLAY_COMPLETE,
    TTS_ENGINE_EVENT_SPEAK_END,
    TTS_ENGINE_EVENT_SPEAK_ERROR,
    TTS_ENGINE_EVENT_MAX
} TtsEngineEvent;
枚举成员 取值 描述
TTS_ENGINE_EVENT_SPEAK_BEGIN 0 语音合成开始事件
TTS_ENGINE_EVENT_SPEAK_PLAY_COMPLETE 1 语音播放完成事件
TTS_ENGINE_EVENT_SPEAK_END 2 语音合成结束事件
TTS_ENGINE_EVENT_SPEAK_ERROR 3 语音合成错误事件
TTS_ENGINE_EVENT_MAX 4 事件枚举上限值

Structures

TtsEngineInitParams

typedef struct {
    TtsEngineListener listener;
} TtsEngineInitParams;

成员说明

成员名称 数据类型 描述
listener TtsEngineListener TTS事件回调函数指针,用于接收合成与播放过程中的事件通知

Type definitions

TtsEngineListener

typedef void (*TtsEngineListener)(TtsEngineEvent event, const void *data, uint32_t length);

使用说明:作为TtsEngineInitParams的成员类型,在IntellVoiceTtsEngineInit接口中传入,用于接收TTS引擎事件回调