|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
版本:0.1 | 日期:2026-07-03 | 路径: platforms/components/xtiny/xt_audio/
xt_audio_tts 是将 UTF-8 文本合成为 PCM 音频数据的 TTS 引擎模块。引擎分块返回合成结果,用户通过回调接收 PCM 数据后,自行调用 xt_audio_dev_write() 写入设备播放。分离 TTS 合成与音频输出,用户可自行决定是否播放(如仅保存为文件)。
| 依赖 | 用途 |
|---|---|
| xt_audio_types.h | 音频句柄、格式、通用回调类型 |
合成过程中,用户需在 SYNTHESIZE_CHUNK 回调中将 info->data 写入音频设备。回调中的 info->fmt 包含本次合成数据的音频格式(与设备格式可能存在差异)。
| 事件 | 说明 |
|---|---|
| XT_AUDIO_TTS_EVT_NO_ERR | 无错误 |
| XT_AUDIO_TTS_EVT_SYNTHESIZE_CHUNK | 合成了一块音频数据, info->data / info->size 有效 |
| XT_AUDIO_TTS_EVT_SYNTHESIZE_CMPLT | 全部合成完成 |
| XT_AUDIO_TTS_EVT_SYNTHESIZE_ABORT | 合成被中止(调用 stop 或资源冲突) |
| XT_AUDIO_TTS_EVT_SYNTHESIZE_ERROR | 合成出错 |
| 参数 | 所在结构体 | 说明 |
|---|---|---|
| wq_num | config | 工作队列个数 |
| user_cb | config / info | 用户回调(config 中为默认回调,info 中为单次覆盖) |
| user_data | config / info | 回调用户数据 |
| prior | config / info | 优先级 |
| level | config / info | 音量等级 |
| prior | play_ext.info | 优先级 |
| level | play_ext.info | 音量等级 |
| 枚举值 | 说明 |
|---|---|
| XT_AUDIO_TTS_RES_LOC_INTERNAL | 内部资源(默认) |
| XT_AUDIO_TTS_RES_LOC_EXTERNAL | 外置 Flash ,需通过 part_name 指定分区名 |
以下为函数签名大纲,完整的参数说明、返回值、注意事项请查看 xt_audio_tts(TTS 语音合成) 。
| 函数签名 | 说明 |
|---|---|
| xt_err_t xt_audio_tts_set_resource_location(enum xt_tts_res_location loc, char *part_name) | 设置 TTS 资源位置 |
| 函数签名 | 说明 |
|---|---|
| xt_err_t xt_audio_tts_setup(struct xt_audio_tts_config *cfg, xt_audio_t *hdl) | 初始化 TTS 模块 |
| xt_err_t xt_audio_tts_close(xt_audio_t hdl) | 关闭 TTS 模块 |
| 函数签名 | 说明 |
|---|---|
| int xt_audio_tts_play_ext(xt_audio_t hdl, const char *text, uint32_t size, struct xt_audio_tts_info *info) | TTS 播放(扩展版,info 可为 NULL ) |
| #define xt_audio_tts_play(_hdl, _text, _size, _prior, _level) | TTS 播放(简化版,设优先级和音量) |
| xt_err_t xt_audio_tts_stop(xt_audio_t hdl) | 停止 TTS 合成 |
| int xt_audio_tts_is_stopping(xt_audio_t hdl) | 查询是否正在停止 |
| 类型签名 | 说明 |
|---|---|
| typedef struct xt_audio_tts(TTS 语音合成) *xt_audio_tts_t | TTS 实例句柄 |
| enum xt_audio_tts_evt | TTS 事件枚举( CHUNK / CMPLT / ABORT / ERROR ) |
| struct xt_audio_tts_cb_info | TTS 回调信息( data / size / fmt / prior / level ) |
| void (*xt_audio_tts_cb_t)(xt_audio_t hdl, enum xt_audio_tts_evt evt, struct xt_audio_tts_cb_info *info) | TTS 回调类型 |
| struct xt_audio_tts_config | TTS 配置( wq_num + 默认回调/参数) |
| struct xt_audio_tts_info | TTS 播放扩展参数 |
| 行为 | 说明 |
|---|---|
| 合成与输出分离 | TTS 不自动写入设备,用户必须在回调中手动 xt_audio_dev_write |
| play_ext 的 info 可为 NULL | 为 NULL 时使用 setup 时传入的默认回调 |
| SYNTHESIZE_CHUNK 的数据一次性 | 回调返回后数据即失效,用户必须及时消费或拷贝 |
| stop 异步 | xt_audio_tts_stop 返回后合成仍在终止中,需通过 is_stopping 或 SYNTHESIZE_ABORT 回调确认 |
| 外部资源需先调用 set_resource_location | 使用外置 Flash 资源时,setup 前必须先设置资源位置 |