ASR算法使用参考


1. 概述

1.1. 算法说明

语音识别(Automatic Speech Recognition,ASR)算法可以将人类说话内容转换成文本。

2. API 参考

2.1. 功能模块API

API名称 功能
IaaAsr_Init 初始化ASR算法
IaaAsr_SetConfig 设置ASR算法参数
IaaAsr_ResetConfig 重置ASR算法参数
IaaAsr_GetConfig 获取ASR算法运行时的参数
IaaAsr_GetInputSamples 获取ASR算法输入的采样点数
IaaAsr_Run ASR算法处理
IaaAsr_Free 释放ASR算法资源
IaaAsr_setCallbackFunc ASR算法验证回调函数

2.2. IaaAsr_Init

  • 功能

    初始化ASR算法。

  • 语法

    ASR_HANDLE IaaAsr_Init(AudioAsrInit_t *asrInit);
    
  • 形参

    参数名称 描述 输入/输出
    asrInit ASR算法的初始化结构体指针 输入
  • 返回值

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

  • 举例

2.3. IaaAsr_SetConfig

  • 功能

    设置ASR算法参数。

  • 语法

    int IaaAsr_SetConfig(ASR_HANDLE handle, AudioAsrConfig_t *asrConfig);
    
  • 形参

    参数名称 描述 输入/输出
    handle ASR算法handle 输入
    asrConfig ASR算法参数设置结构体 输入
  • 返回值

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

2.4. IaaAsr_ResetConfig

  • 功能

    重置ASR算法参数。

  • 语法

    int IaaAsr_ResetConfig(ASR_HANDLE handle, AudioAsrConfig_t *asrConfig);
    
  • 形参

    参数名称 描述 输入/输出
    handle ASR算法handle 输入
    asrConfig ASR算法参数设置结构体 输入
  • 返回值

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

2.5. IaaAsr_GetConfig

  • 功能

    获取ASR算法运行时的参数。

  • 语法

    int IaaAsr_GetConfig(ASR_HANDLE handle, AudioAsrConfig_t *asrConfig);
    
  • 形参

    参数名称 描述 输入/输出
    handle ASR算法handle 输入
    asrConfig ASR算法参数设置结构体 输入
  • 返回值

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

2.6. IaaAsr_GetInputSamples

  • 功能

    获取ASR算法输入样本点数目。

  • 语法

    int IaaAsr_GetInputSamples(ASR_HANDLE handle, int *samples);
    
  • 形参

    参数名称 描述 输入/输出
    handle ASR算法handle 输入
    samples ASR算法输入样本数目 输出
  • 返回值

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

2.7. IaaAsr_Run

  • 功能

    ASR算法处理函数。

  • 语法

    int IaaAsr_Run(ASR_HANDLE handle, short *input, char transcription[ASR_MAX_TRANSCRIPTION_LEN], int *length);
    
  • 形参

    参数名称 描述 输入/输出
    handle 算法handle 输入
    input 输入数据指针 输入
    transcription 语音转写文本内容 输出
    length 语音转写文本长度 输出
  • 返回值

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

  • 举例

    参考Demo code

2.8. IaaAsr_Free

  • 功能

    释放ASR算法的资源。

  • 语法

    int IaaAsr_Free(ASR_HANDLE);
    
  • 形参

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

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

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

2.9. IaaAsr_setCallbackFunc

  • 功能

    ASR算法验证回调函数。

  • 语法

    int IaaAsr_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));
    
  • 依赖

    • 头文件: AudioAsrProcess.h

    • 库文件: libASR_LINUX.a

3. ASR 数据类型

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

数据类型 定义
AudioAsrInit_t ASR算法初始化数据结构体类型
AudioAsrConfig_t ASR算法参数设置结构体类型

3.2. AudioAsrInit_t

  • 说明

    定义ASR算法的配置参数结构体。

  • 定义

    typedef struct{
        int sampleRate;
        int bitWidth;
        int channel;
        int ipuMaxSize;
        int createdIpuDevice;
    
        char amModelPath[ASR_MAX_FILE_NAME_LEN];
        char dictPath[ASR_MAX_FILE_NAME_LEN];
    }AudioAsrInit_t;
    
  • 成员

    成员名称 描述
    sampleRate 语音采样率
    bitWidth 语音采样位宽
    channel 语音通道数
    ipuMaxSize IPU模型最大size
    createdIpuDevice 是否create IPU设备
    amModelPath 语音识别声学模型
    dictPath 字典路径
  • 相关数据类型及接口

    IaaAsr_Init

3.3. AudioAsrConfig_t

  • 说明

    定义ASR算法参数结构体。

  • 定义

    typedef struct{
        int vadMode;
        float vadThreshold;
    }AudioAsrConfig_t;
    
  • 成员

    成员名称 描述
    vadMode VAD模式, 0:能量模式; 1: 概率模式
    vadThreshold VAD阈值,能量模式:范围[-80, 0]; 概率模式:[0, 1]
  • 相关数据类型及接口

    IaaAsr_SetConfig

    IaaAsr_ResetConfig

    IaaAsr_GetConfig

4. 错误码

ASR API 错误码如表下所示:

错误码 宏定义 描述
0x00000000 ALGO_ASR_RET_SUCCESS ASR运行成功
0x90000401 ALGO_ASR_RET_INVALID_LICENSE LICENSE无效
0x90000402 ALGO_ASR_RET_INVALID_HANDLE HANDLE无效
0x90000403 ALGO_ASR_RET_INVALID_SAMPLERATE 采样率不支持
0x90000404 ALGO_ASR_RET_INVALID_BITWIDTH 采样位数不支持
0x90000405 ALGO_ASR_RET_INVALID_CHANNEL 模型不支持
0x90000406 ALGO_ASR_RET_INVALID_VAD_MODE VAD模式不支持
0x90000407 ALGO_ASR_RET_INVALID_VAD_THRESHOLD VAD阈值不支持