4G_module/include/cmiot/cm_local_tts.h

203 lines
6.9 KiB
C
Raw Permalink Normal View History

2024-09-02 17:54:29 +08:00
/**
* @file cm_local_tts.h
* @brief 线TTS接口
* @copyright Copyright © 2021 China Mobile IOT. All rights reserved.
* @author By WangPeng
* @date 2023/02/10
*
* @defgroup tts tts
* @ingroup AUDIO
* @{
*/
#ifndef __CM_LOCAL_TTS_H__
#define __CM_LOCAL_TTS_H__
/****************************************************************************
* Included Files
****************************************************************************/
#include <stdint.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Public Types
****************************************************************************/
/**
* @brief
*
* @details
*/
typedef enum
{
CM_LOCAL_TTS_ENCODE_TYPE_GB2312 = 1, /*!< 普通字符为ASCII格式汉字为GBK格式不支持 */
CM_LOCAL_TTS_ENCODE_TYPE_UTF8, /*!< 普通字符为ASCII格式汉字为UTF-8格式 */
} cm_local_tts_encode_e;
/**
* @brief
*/
typedef enum
{
CM_LOCAL_TTS_DIGIT_AUTO = 0, /*!< 自动模式 */
CM_LOCAL_TTS_DIGIT_AS_NUMBER, /*!< 数字模式 */
CM_LOCAL_TTS_DIGIT_AS_VALUE, /*!< 数值模式 */
} cm_local_tts_digit_e;
/**
* @brief
*
* @details
*/
typedef enum
{
CM_LOCAL_TTS_TONE_NORMAL = 1, /*!< 默认音调 */
} cm_local_tts_tone_e;
/**
* @brief
*
* @details
*/
typedef enum
{
CM_LOCAL_TTS_EFFECT_NORMAL = 1, /*!< 默认音效 */
} cm_local_tts_effect_e;
/**
* @brief TTS状态
*
*/
typedef enum
{
CM_LOCAL_TTS_STATE_IDLE = 1, /*!< TTS空闲 */
CM_LOCAL_TTS_STATE_WORKING, /*!< TTS工作中 */
} cm_local_tts_state_e;
/** TTS参数配置设置类型 */
typedef struct
{
int32_t speed; /*!< 语速范围0~15。语速设置对英文字符无效。 */
int32_t volume; /*!< TTS转化时音量范围0~15 */
cm_local_tts_encode_e encode; /*!< 中文文本编码方式 */
cm_local_tts_digit_e digit; /*!< 数字播放模式 */
cm_local_tts_tone_e tone; /*!< 音调,暂不支持 */
cm_local_tts_effect_e effect; /*!< 音效,暂不支持 */
} cm_local_tts_cfg_t;
/** TTS回调的事件类型 */
typedef enum
{
CM_LOCAL_TTS_EVENT_SYNTH_DATA = 1, /*!< 语音合成数据上报调用cm_tts_synth()接口时可能上报的事件,不支持 */
CM_LOCAL_TTS_EVENT_SYNTH_FAIL, /*!< 语音合成失败调用cm_tts_synth()接口时可能上报的事件,不支持 */
CM_LOCAL_TTS_EVENT_SYNTH_INTERRUPT, /*!< 语音合成异常中断调用cm_tts_synth()接口时可能上报的事件,不支持 */
CM_LOCAL_TTS_EVENT_SYNTH_FINISH, /*!< 语音合成完成调用cm_tts_synth()接口时可能上报的事件,不支持 */
CM_LOCAL_TTS_EVENT_PLAY_FAIL, /*!< 语音播放失败调用cm_tts_play()接口时可能上报的事件 */
CM_LOCAL_TTS_EVENT_PLAY_INTERRUPT, /*!< 语音播放中断调用cm_tts_play()接口时可能上报的事件 */
CM_LOCAL_TTS_EVENT_PLAY_FINISH, /*!< 语音播放完成调用cm_tts_play()接口时可能上报的事件 */
} cm_local_tts_event_e;
/*
* TTS语音合成数据结构体
*/
typedef struct
{
uint8_t *data; /*!< 语音合成数据PCM */
uint32_t len; /*!< 语音合成数据长度 */
void *user; /*!< 用户传入参数 */
} cm_local_tts_synth_data_t;
/**
* @brief TTS转码回调函数
*
* @param [in] event
* @param [in] param CM_LOCAL_TTS_EVENT_SYNTH_DATA时param强转为cm_local_tts_synth_data_t型
*/
typedef void (*cm_local_tts_callback)(cm_local_tts_event_e event, void *param);
/**
* @brief TTS初始化
*
* @param [in] cfg
*
* @return
* = 0 - \n
* = -1 - \n
*
* @details 8M版本ML307A-DSLN ML307A-GSLN ML305A-DS等线TTS功能
*/
int32_t cm_local_tts_init(cm_local_tts_cfg_t *cfg);
/**
* @brief TTS去初始化
*
* @details 8M版本ML307A-DSLN ML307A-GSLN ML305A-DS等线TTS功能
*/
void cm_local_tts_deinit(void);
/**
* @brief PCM数据PCM数据8k
*
* @param [in] text
* @param [in] len text的字符串长度
* @param [in] cb TTS回调函数
* @param [in] cb_param cm_local_tts_callback回调函数中param参数描述
*
* @return
* = 0 - \n
* = -1 -
*
* @details 8M版本ML307A-DSLN ML307A-GSLN ML305A-DS等线TTS功能 \n
* flash中运行速度较慢PCM数据接口依赖的.o文件转至RAM中运行以提升处理速度 \n
* 101.1 \n
* TTS播放实时性要求高
*/
int32_t cm_local_tts_synth(const void *text, int32_t len, cm_local_tts_callback cb, void *cb_param);
/**
* @brief TTS播放文字
*
* @param [in] text
* @param [in] len text的字符串长度
* @param [in] cb TTS回调函数
* @param [in] cb_param cm_tts_callback回调函数中param参数描述
*
* @return
* = 0 - \n
* = -1 -
*
* @details \n
* \n
* 10TTS数据10TTS数据会丢弃 \n
* 8M版本ML307A-DSLN ML307A-GSLN ML305A-DS等线TTS功能
*/
int32_t cm_local_tts_play(const char *text, int32_t len, cm_local_tts_callback cb, void *cb_param);
/**
* @brief TTS播放文字
*
* @return
* = 0 - \n
* = -1 - \n
*
* @details 8M版本ML307A-DSLN ML307A-GSLN ML305A-DS等线TTS功能
*/
int32_t cm_local_tts_play_stop(void);
int32_t cm_local_tts_play_status(void);
2024-09-02 17:54:29 +08:00
#undef EXTERN
#ifdef __cplusplus
}
#endif
#endif /* __CM_LOCAL_TTS_H__ */
/** @}*/