SSTAR_VC算法使用参考
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0.0 | 10/11/2021 | |
2.0.0 | 11/29/2022 | |
2.0.1 | 04/11/2023 |
1. 概述¶
1.1. 算法说明¶
声音修改(Voice Change, VC)算法是对通过语音信号进行变速和变调处理从而达到变声的效果。
2. API 参考¶
2.1. 功能模块API¶
API名称 | 功能 |
---|---|
IaaVc_GetBufferSize | 获取VC算法运行需要的内存大小 |
IaaVc_Init | 初始化VC算法 |
IaaVc_SetConfig | 设置VC算法参数 |
IaaVc_GetConfig | 打印VC算法参数 |
IaaVc_GetInputSamples | 获取VC算法输入的采样点数 |
IaaVc_Run | VC算法处理 |
IaaVc_Free | 释放VC算法资源 |
IaaVc_setCallbackFunc | VC算法验证回调函数 |
2.2. IaaVc_GetBufferSize¶
-
功能
获取VC算法运行所需要的内存大小。
-
语法
int IaaVc_GetBufferSize(void);
-
形参
参数名称 描述 输入/输出 -
返回值
返回值为VC算法运行所需要的内存大小。
-
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
-
注意
该接口仅返回需要的内存大小,申请和释放内存的动作需应用来处理。
-
举例
无。
2.3. IaaVc_Init¶
-
功能
初始化VC算法需要的内存。
-
语法
VC_HANDLE IaaVc_Init(char* workBufAddress, AudioVcInit_t *vcInit);
-
形参
参数名称 描述 输入/输出 workBufAddress VC算法使用的内存地址 输入 vcInit VC算法的初始化结构体指针 输入 -
返回值
返回值 结果 handle 成功 NULL 失败 -
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
-
注意
- VC算法仅支持16bit采样位宽。
-
举例
无。
2.4. IaaVc_SetConfig¶
-
功能
设置VC算法参数。
-
语法
int IaaVc_SetConfig(VC_HANDLE handle, AudioVcConfig_t vcConfig);
-
形参
参数名称 描述 输入/输出 handle VC算法handle 输入 vcConfig VC算法参数设置结构体 输入 -
返回值
返回值 结果 0 成功 其他值 失败, 参照错误码 -
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
2.5. IaaVc_GetConfig¶
-
功能
打印VC算法参数。
-
语法
int IaaVc_GetConfig(VC_HANDLE handle);
-
形参
参数名称 描述 输入/输出 handle VC算法handle 输入 -
返回值
返回值 结果 输入长度 成功 其他值 失败, 参照错误码 -
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
2.6. IaaVc_GetInputSamples¶
-
功能
获取VC算法输入样本点数目。
-
语法
int IaaVc_GetInputSamples(VC_HANDLE handle, int *samples);
-
形参
参数名称 描述 输入/输出 handle VC算法handle 输入 samples VC算法输入样本数目 输出 -
返回值
返回值 结果 0 成功 非0 失败,参照错误码 -
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
2.7. IaaVc_Run¶
-
功能
VC算法处理函数。
-
语法
int IaaVc_Run(VC_HANDLE handle, short *data, int *length);
-
形参
参数名称 描述 输入/输出 handle 算法handle 输入 input 输入数据指针 输入/输出 length 输出长度 输出 -
返回值
返回值 结果 0 成功 非0 失败,参照错误码 -
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
-
举例
参考src目录下的demo代码VCer.c。
-
注意
- 算法处理后语音帧的长度并不固定,因此建议设立稍大的Buffer。
2.8. IaaVc_Free¶
-
功能
释放VC算法的资源。
-
语法
int IaaVc_Free(VC_HANDLE handle);
-
形参
参数名称 描述 输入/输出 handle VC算法handle 输入 -
返回值
返回值 结果 0 成功 其他值 失败,参照错误码 -
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
-
注意
- 必须先调用IaaVc_Free,再释放供VC算法所使用的内存。
2.9. IaaVc_setCallbackFunc¶
-
功能
VC算法验证的回调函数(暂不支持)。
-
语法
int IaaVc_setCallbackFunc(int(*log)(const char *szFmt, ...), int(*envSet)(char *key, char *par), int(*envGetString)(char *var, char *buf, unsigned int size), int(*envSave)(void), int(*readUuid)(unsigned long long *u64Uuid));
-
依赖
-
头文件: AudioVcProcess.h
-
库文件: libVC_LINUX.so/ libVC_LINUX.a
-
3. VC 数据类型¶
3.1. VC模块相关数据类型定义¶
数据类型 | 定义 |
---|---|
AudioVcSampleRate_e | VC算法支持的采样率类型 |
AudioVcInit_t | VC算法初始化数据结构体类型 |
AudioVcConfig_t | VC算法参数设置结构体类型 |
VC_HANDLE | VC算法句柄类型 |
3.2. AudioVcSampleRate_e¶
-
说明
定义VC算法支持的采样率类型。
-
定义
typedef enum{ IAA_VC_SAMPLE_RATE_8000 = 8000, IAA_VC_SAMPLE_RATE_16000 = 16000, IAA_VC_SAMPLE_RATE_32000 = 32000, IAA_VC_SAMPLE_RATE_48000 = 48000, }AudioVcSampleRate_e;
-
成员
成员名称 描述 IAA_VC_SAMPLE_RATE_8000 8000Hz采样率 IAA_VC_SAMPLE_RATE_16000 16000Hz采样率 IAA_VC_SAMPLE_RATE_32000 32000Hz采样率 IAA_VC_SAMPLE_RATE_48000 48000Hz采样率 -
相关数据类型及接口
3.3. AudioVcInit_t¶
-
说明
定义VC算法的配置参数结构体。
-
定义
typedef struct{ int sampleRate; int bitWidth; }AudioVcInit_t;
-
成员
成员名称 描述 sampleRate 语音采样率 bitWidth 语音采样位宽 -
注意事项
- 采样位宽只支持16bit
-
相关数据类型及接口
3.4. AudioVcConfig_t¶
-
说明
定义VC算法参数结构体。
-
定义
typedef struct{ float speedFactor; float pitchFactor; }AudioVcConfig_t;
-
成员
成员名称 描述 speedFactor 速度系数, 取值范围[0.5~2]。系数小于1表示语速变慢; 系数大于1表示语速变快。 pitchFactor 音调系数, 取值范围[0.5~2]。系数小于1表示音调变低; 系数大于1表示音调变高。 -
相关数据类型及接口
3.5. VC_HANDLE¶
-
说明
定义VC算法的句柄类型。
-
定义
typedef void* VC_HANDLE;
-
成员
成员名称 描述 -
注意事项
无。
-
相关数据类型及接口
4. 错误码¶
VC API 错误码如表下所示:
错误码 | 宏定义 | 描述 |
---|---|---|
0x00000000 | ALGO_VC_RET_SUCCESS | VC运行成功 |
0x70000401 | ALGO_VC_RET_INVALID_LICENSE | LICENSE无效 |
0x70000402 | ALGO_VC_RET_INVALID_HANDLE | HANDLE无效 |
0x70000403 | ALGO_VC_RET_INVALID_SAMPLERATE | 采样率不支持 |
0x70000404 | ALGO_VC_RET_INVALID_BITWIDTH | 采样位数不支持 |
0x70000405 | ALGO_VC_RET_INVALID_CHANNEL | 通道数不支持 |
0x70000406 | ALGO_VC_RET_INVALID_SPEEDFACTOR | 速度系数不支持 |
0x70000407 | ALGO_VC_RET_INVALID_PTICHFACTOR | 音调系数不支持 |