SSU_FE算法使用参考


REVISION HISTORY

Revision No.
Description
Date
1.0.0
  • Initial release
  • 12/13/2022

    1. 概述

    1.1. 算法说明

    特征提取(Feature Extractor, FE)是对输入语音处理,并提取指定特征的算法库

    1.2. 特征列表

    算法库目前支持以下特征

    • Kaldi Fbank

    注: 如果设备支持NEON,本算法库部分操作会使用NEON指令集进行计算

    2. API 参考

    2.1. 功能模块API

    API名称 功能
    IaaFe_Init 初始化FE算法
    IaaFe_Run FE算法处理
    IaaFe_Free 释放FE算法资源

    2.2. IaaFe_Init

    • 功能

      初始化FE算法需要的内存。

    • 语法

      FBANK_HANDLE IaaFe_Init(FbankConfig_t *fbankConfig);
      
    • 形参

      参数名称 描述 输入/输出
      fbankConfig Fbank参数设置结构体 输入
    • 返回值

      返回值 结果
      handle 成功
      NULL 失败
    • 依赖

      • 头文件: AudioFeProcess.h

      • 库文件: libFE_LINUX.so/ libFE_LINUX.a

    2.3. IaaFe_Run

    • 功能

      FE算法处理函数。

    • 语法

      int IaaFe_Run(FBANK_HANDLE handle, short *input, std::vector<std::vector<float>>* feats);
      
    • 形参

      参数名称 描述 输入/输出
      handle 算法handle 输入
      input 输入数据指针 输入
      feats Fbank特征 输出
    • 返回值

      返回值 结果
      0 成功
      其他值 失败,参照错误码
    • 依赖

      • 头文件: AudioFeProcess.h

      • 库文件: libFE_LINUX.so/ libFE_LINUX.a

    • 举例

      参考Demo code

    2.4. IaaFe_Free

    • 功能

      释放FE算法的资源。

    • 语法

      int IaaFe_Free(FE_HANDLE handle);
      
    • 形参

      参数名称 描述 输入/输出
      handle SE算法handle 输入
    • 返回值

      返回值 结果
      0 成功
      其他值 失败,参照错误码
    • 依赖

      • 头文件: AudioFeProcess.h

      • 库文件: libFE_LINUX.so/ libFE_LINUX.a

    • 注意

      • 必须先调用IaaFe_Free,再释放供FE算法所使用的内存。

    3. FE 数据类型

    3.1. FE模块相关数据类型定义

    数据类型 定义
    FbankConfig_t Fbank参数设置结构体类型
    FE_HANDLE FE算法句柄类型

    3.2. FbankConfig_t

    • 说明

      定义Fbank参数结构体。

    • 定义

      typedef struct{
          int sample_rate;
          int bit_width;
          int input_length;
      
          int frame_length;
          int frame_shift;
          int num_bins;
      }FbankConfig_t;
      
    • 成员

      成员名称 描述
      sample_rate 语音采样率
      bit_width 语音采样位宽
      input_length 算法处理输入长度
      frame_length 帧长
      frame_shift 帧移
      num_bins Fbank 数目

    3.3. FE_HANDLE

    • 说明

      定义FE算法的句柄类型。

    • 定义

      typedef void* FE_HANDLE;
      
    • 成员

      成员名称 描述
    • 注意事项

      无。

    • 相关数据类型及接口

      IaaFe_Init

      IaaFe_Run

      IaaFe_Free

    4. 错误码

    SE API 错误码如表下所示:

    错误码 宏定义 描述
    0x00000000 ALGO_FE_RET_SUCCESS FE运行成功
    0xB0000401 ALGO_FE_RET_INVALID_LICENSE 授权码错误/试用时间结束
    0xB0000402 ALGO_FE_RET_INVALID_HANDLE HANDLE无效
    0xB0000403 ALGO_FE_RET_INVALID_SAMPLERATE 采样率不支持
    0xB0000404 ALGO_FE_RET_INVALID_BITWIDTH 采样位数不支持