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
头文件清单
#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
头文件清单
#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
头文件清单
#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
头文件清单
#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
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| listener | TtsEngineListener | TTS事件回调函数指针,用于接收合成与播放过程中的事件通知 |
Type definitions
TtsEngineListener
使用说明:作为TtsEngineInitParams的成员类型,在IntellVoiceTtsEngineInit接口中传入,用于接收TTS引擎事件回调