You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
615 lines
24 KiB
C
615 lines
24 KiB
C
#ifndef LVCSR_API_H
|
|
#define LVCSR_API_H
|
|
|
|
#ifdef WIN32
|
|
#define LVCSR_LIBRARY_API __declspec(dllexport)
|
|
#define snprintf sprintf_s
|
|
#else
|
|
#define LVCSR_LIBRARY_API
|
|
#endif
|
|
|
|
#define MAX_CHANNEL 5000
|
|
#define MAX_NAME_SIZE 128
|
|
|
|
/** module */
|
|
#define MODULE_USE_ENGINE_GENERAL 0X0001 // 1
|
|
#define MODULE_USE_ENGINE_SPACING 0X0002 // 2
|
|
|
|
#define MODULE_USE_PLUGIN_KWD 0x0010 // 16
|
|
#define MODULE_USE_PLUGIN_ADDR 0x0020 // 32
|
|
#define MODULE_USE_PLUGIN_PHONICS 0x0030 // 48
|
|
#define MODULE_USE_PLUGIN_ITN 0x0040 // 64
|
|
|
|
#define MODULE_USE_ENGINE_GENERAL_PLUGIN_NONE 0X0001 // 1
|
|
#define MODULE_USE_ENGINE_GENERAL_PLUGIN_KWD 0X0011 // 17
|
|
#define MODULE_USE_ENGINE_GENERAL_PLUGIN_ADDR 0X0021 // 33
|
|
#define MODULE_USE_ENGINE_GENERAL_PLUGIN_PHONICS 0X0031 // 49
|
|
#define MODULE_USE_ENGINE_GENERAL_PLUGIN_ITN 0X0041 // 65
|
|
|
|
#define MODULE_USE_ENGINE_SPACING_PLUGIN_NONE 0X0002 // 2
|
|
#define MODULE_USE_ENGINE_SPACING_PLUGIN_KWD 0X0012 // 18
|
|
#define MODULE_USE_ENGINE_SPACING_PLUGIN_ADDR 0X0022 // 34
|
|
#define MODULE_USE_ENGINE_SPACING_PLUGIN_PHONICS 0X0032 // 50
|
|
#define MODULE_USE_ENGINE_SPACING_PLUGIN_ITN 0X0042 // 66
|
|
|
|
|
|
typedef enum _LVCSR_RESULT
|
|
{
|
|
LVCSR_SUCCESS = 0, // 성공
|
|
LVCSR_FAIL = -1, // 실패
|
|
LVCSR_TIMEOUT = -2, // 시간초과
|
|
} LVCSR_RESULT;
|
|
|
|
typedef enum _LVCSR_EPD_INFO
|
|
{
|
|
RECEIV_OK = 0, // 전송 성공 - 보내준 압축음성을 받고 계속 보내라는 메시지
|
|
RECEIV_OK_SPEECH = 1, // Start Point Detect - 보내준 압축음성을 받고 계속 보내라는 메시지 이며 "음성이라고 판단된 시점부터 나온다.
|
|
EPD_FOUND = 2, // 음성의 끝 검출 - 음성인식 서버에서 음성 끝점을 검출하여 녹음 종료하라는 메시지
|
|
START_TIME_OVER = 3, // 첫음 검출 실패 - 정해진 시간동안 음성이 없어 첫음 검출 실패에 대한 메시지
|
|
DURATION_TIME_OVER = 4, // 끝점 검출 실패 - 정해진 시간동안 끝점 검출 실패에 대한 메시지
|
|
SECTION_FOUND = 5, // 구간 음성검출 완료(엔진 EPD 활성화시 리턴). 계속 데이터 전송 요청.
|
|
EPD_ERROR = 9, // EPD 오류 발생
|
|
} LVCSR_EPD_INFO;
|
|
|
|
typedef enum _LVCSR_TYPE_CODEC
|
|
{
|
|
CODEC_RAW_8K = 0, // 8KHz 오디오 포맷(미압축)
|
|
CODEC_RAW_16K = 1, // 16KHz 오디오 포맷(미압축) - 16K 엔진인 경우 사용 가능
|
|
CODEC_ULAW_8K = 2, // G.711 코덱을 이용한 압축 방법으로 유럽에서 표준 채택 사용
|
|
CODEC_ALAW_8K = 3, // G.711 코덱을 이용한 압축 방법으로 북아메리카 및 일본 등에서 표준 채택 사용
|
|
CODEC_SPEEX_16K = 4, // 음성을 위해 개발된 무특허 오디오 압축 포맷
|
|
} LVCSR_TYPE_CODEC;
|
|
|
|
typedef enum _LVCSR_SET_CHAR
|
|
{
|
|
CHAR_SET_EUCKR = 0, // EUC-KR
|
|
CHAR_SET_UTF8 = 1, // UTF-8
|
|
} LVCSR_SET_CHARSET;
|
|
|
|
typedef enum _LVCSR_USED_EPD
|
|
{
|
|
EPD_USED_OFF = 0, // EPD 모듈 미사용
|
|
SERVER_EPD_USED_ON = 1, // SERVER EPD ON(LVCSR_RECOG_MID_RESULT 상세결과 미 제공)
|
|
ENGINE_EPD_USED_WITH_DETECTOR_MID_RESULT = 2, // ENGINE EPD ON(LVCSR_RECOG_MID_RESULT 상세결과 제공 - ENGINE EPD 검출)
|
|
ENGINE_EPD_USED_WITH_CONTINUE_MID_RESULT = 3, // ENGINE EPD ON(LVCSR_RECOG_MID_RESULT 상세결과 제공 - ENGINE EPD 무관<계속>)
|
|
|
|
} LVCSR_USED_EPD;
|
|
|
|
typedef enum _LVCSR_USED_SCORE
|
|
{
|
|
SCORE_USED_OFF = 0, // 점수 미사용
|
|
SCORE_USED_ON = 1, // 점수 사용
|
|
} LVCSR_USED_SCORE;
|
|
|
|
typedef enum _LVCSR_USED_WORD
|
|
{
|
|
WORD_USED_OFF = 0, // 음절 인식률 사용(단어 인식률 미사용)
|
|
WORD_USED_ON = 1, // 단어 인식률 사용
|
|
} LVCSR_USED_WORD;
|
|
|
|
typedef enum _LVCSR_TYPE_ADDR
|
|
{
|
|
TYPE_NONE = 0, // 값 없음
|
|
JIBUN_ADDR = 1, // 지번주소(법정동/행정동 주소체계이며 지번 없는 경우 또는 POI)
|
|
JIBUN_ADDR_KEY = 2, // 지번주소(법정동/행정동 주소체계이며 지번이 있는 경우)
|
|
ROAD_ADDR = 3, // 도로명주소(건물번호가 없는 경우 또는 POI)
|
|
ROAD_ADDR_KEY = 4, // 도로명주소(건물번호가 있는 경우)
|
|
} LVCSR_TYPE_ADDR;
|
|
|
|
typedef enum _LVCSR_TYPE_CHANNEL
|
|
{
|
|
ASR_STAT_IDLE = 0, // 유휴상태
|
|
ASR_STAT_WAIT = 1, // 대기상태
|
|
ASR_STAT_WORK = 2, // 인식상태
|
|
ASR_STAT_FAIL = 3, // 오류상태
|
|
} LVCSR_TYPE_CHANNEL;
|
|
|
|
typedef enum _LVCSR_USED_SSL {
|
|
SSL_USED_OFF = 0, // SSL 미사용
|
|
SSL_USED_ON = 1, // SSL 사용
|
|
} LVCSR_USED_SSL;
|
|
|
|
typedef enum _LVCSR_SSL_RESULT {
|
|
SSL_SUCCESS = 1, // SSL 성공
|
|
SSL_FAIL = -1, // SSL 실패
|
|
SSL_NOT_FOUND_CRT = -2, // 인증서 실패
|
|
} LVCSR_SSL_RESULT;
|
|
|
|
typedef enum _LVCSR_USED_CRT_CHECK {
|
|
CRT_CHECK_OFF = 0, // 인증서 미체크
|
|
CRT_CHECK_ON = 1, // 인증서 체크
|
|
} LVCSR_USED_CRT_CHECK;
|
|
|
|
typedef enum _LVCSR_RESULT_CODE
|
|
{
|
|
STT_WARNING = -1, // STT 모듈 경고
|
|
STT_FAILED = 0, // STT 모듈 실패
|
|
STT_SUCCESS = 1, // STT 모듈 성공
|
|
} LVCSR_RESULT_CODE;
|
|
|
|
typedef enum _LVCSR_RESULT_TYPE
|
|
{
|
|
STT_TYPE = 0, // STT 모듈 STT 타입
|
|
PHONICS_TYPE = 1, // STT 모듈 PHONICS 타입
|
|
} LVCSR_RESULT_TYPE;
|
|
|
|
typedef struct _LVCSR_DATA_PHONEME
|
|
{
|
|
long long nPhTokenLen; // 음소 인식 결과 길이
|
|
char* pPhToken; // 음소 인식 결과
|
|
long long nDuration; // 재생 시작 정보( ms )
|
|
double dScore; // 음소 점수
|
|
} LVCSR_DATA_PHONEME;
|
|
|
|
typedef struct _LVCSR_DATA_RESULT
|
|
{
|
|
long long nTokenLen; // 단어 결과 길이
|
|
char* pTokenStr; // 단어 결과
|
|
long long nStart; // 구간 시작 정보( ms )
|
|
long long nEnd; // 구간 종료 정보( ms )
|
|
double dScore; // 단어 점수
|
|
long long nResultPhCnt; // 음소 정보 구조체 개수
|
|
LVCSR_DATA_PHONEME* pResultPhoneme; // 음소 정보 구조체
|
|
} LVCSR_DATA_RESULT;
|
|
|
|
typedef struct _LVCSR_DATA_EPD
|
|
{
|
|
long long nStart; // EPD 시작 정보( ms )
|
|
long long nEnd; // EPD 종료 정보( ms )
|
|
} LVCSR_DATA_EPD;
|
|
|
|
typedef struct _LVCSR_DATA_CHAR_TIME
|
|
{
|
|
long long nCharSec; // 발성 구분 시간( Sec )
|
|
} LVCSR_DATA_CHAR_TIME;
|
|
|
|
typedef struct _LVCSR_DATA_WAVE_FORM
|
|
{
|
|
long long nWaveFormSize; // 파형 크기 정보
|
|
} LVCSR_DATA_WAVE_FORM;
|
|
|
|
typedef struct _LVCSR_DATA_CHAR_INFO
|
|
{
|
|
long long nCharacterSecSum; // 초당 인식 결과 글자 개수
|
|
double dCharacterPerSec; // 초당 단어 발성 속도
|
|
} LVCSR_DATA_CHAR_INFO;
|
|
|
|
typedef struct _LVCSR_RECOG_ADD_INFO
|
|
{
|
|
long long nCharacterSum; // 인식 결과 글자 개수
|
|
long long nEpsTime; // 묵음 총 시간
|
|
long long nNoiseTime; // 발성 총 시간
|
|
long long nTotalTime; // 전체 시간
|
|
double dCharacterTotPerSec; // 초당 발성 속도
|
|
long long nCount; // 파형 구조체 개수
|
|
LVCSR_DATA_WAVE_FORM* pDataWaveForm; // 파형 상세내용 구조체
|
|
long long nCharCount; // 초당 발성 속도 구조체 개수
|
|
LVCSR_DATA_CHAR_INFO* pDataCharInfo; // 초당 발성 속도 상세내용 구조체
|
|
} LVCSR_RECOG_ADD_INFO;
|
|
|
|
typedef struct _LVCSR_DATA_NBEST_RESULT
|
|
{
|
|
long long nResultLen; // 인식결과 길이
|
|
char* pResult; // 인식 결과
|
|
double dConfidScore; // 인식 확률값
|
|
long long nCount; // 인식결과 상세내용 구조체 개수
|
|
LVCSR_DATA_RESULT* pDataResult; // 인식결과 상세내용 구조체
|
|
} LVCSR_DATA_NBEST_RESULT;
|
|
|
|
typedef struct _LVCSR_RECOG_NBEST_RESULT
|
|
{
|
|
long long nCount; // 인식결과 NBEST 구조체 개수
|
|
LVCSR_DATA_NBEST_RESULT* pDataNbestResult; // 인식결과 NBEST 구조체
|
|
LVCSR_DATA_EPD* pResultEPD; // EPD 구조체
|
|
} LVCSR_RECOG_NBEST_RESULT;
|
|
|
|
|
|
// PHONICS 추가
|
|
typedef struct _LVCSR_DATA_PHONICS
|
|
{
|
|
long long nPhonicsLen; // Phonics 텍스트 길이
|
|
char* pPhonicsStr; // Phonics 텍스트
|
|
} LVCSR_DATA_PHONICS;
|
|
|
|
typedef struct _LVCSR_RECOG_PHONICS_RESULT
|
|
{
|
|
long long nResultLen; // 인식결과 길이
|
|
char* pResult; // 인식 결과
|
|
long long nJsonLen; // Json 길이
|
|
char* pJson; // Json 결과
|
|
double dConfidScore; // 인식 확률값
|
|
long long nDataCnt; // 인식결과 상세내용 구조체 개수
|
|
LVCSR_DATA_RESULT* pDataResult; // 인식결과 상세내용 구조체
|
|
LVCSR_DATA_EPD* pResultEPD; // EPD 구조체
|
|
} LVCSR_RECOG_PHONICS_RESULT;
|
|
|
|
typedef struct _LVCSR_DATA_SEP_ADDR
|
|
{
|
|
long long nSidoLen; // 시/도 길이
|
|
char* pSidoStr; // 시/도
|
|
long long nSigunguMainLen; // 시/군/구 main 길이
|
|
char* pSigunguMainStr; // 시/군/구 main
|
|
long long nSigunguSubLen; // 시/군/구 sub 길이
|
|
char* pSigunguSubStr; // 시/군/구 sub
|
|
long long nDongLen; // 읍/면/동 길이
|
|
char* pDongStr; // 읍/면/동
|
|
long long nLiLen; // 리 길이
|
|
char* pLiStr; // 리
|
|
long long nJibunLen; // 지번 길이
|
|
char* pJibunStr; // 지번
|
|
long long nRoadNameLen; // 도로명 길이
|
|
char* pRoadNameStr; // 도로명
|
|
long long nBldgNoLen; // 건물번호 길이
|
|
char* pBldgNoStr; // 건물번호
|
|
long long nPoiNameLen; // POI명 길이
|
|
char* pPoiNameStr; // POI명
|
|
} LVCSR_DATA_SEP_ADDR;
|
|
|
|
typedef struct _LVCSR_DATA_ADDR
|
|
{
|
|
LVCSR_TYPE_ADDR nCorrectType; // 보정 유형
|
|
long long nZipcodeLen; // 우편번호 길이
|
|
char* pZipcodeStr; // 우편번호
|
|
long long nMainAddressLen; // 기본주소 길이
|
|
char* pMainAddressStr; // 기본주소
|
|
long long nAuxAddressLen; // 상세주소 길이
|
|
char* pAuxAddressStr; // 상세주소
|
|
long long nAdditionalSpeechLen; // 미정제주소 길이(추가발성주소)
|
|
char* pAdditionalSpeechStr; // 미정제주소
|
|
LVCSR_DATA_SEP_ADDR pSepAddr; // 분리된 결과 주소 구조체
|
|
} LVCSR_DATA_ADDR;
|
|
|
|
typedef struct _LVCSR_DATA_KWD
|
|
{
|
|
long long nTokenLen; // 단어 결과 길이
|
|
char* pTokenStr; // 단어 결과
|
|
long long nSymbolLen; // 심볼 결과 길이
|
|
char* pSymbolStr; // 심볼 결과
|
|
long long nStart; // 구간 시작 정보( ms )
|
|
long long nEnd; // 구간 종료 정보( ms )
|
|
double dScore; // 단어 점수
|
|
} LVCSR_DATA_KWD;
|
|
|
|
typedef struct _LVCSR_DATA_SMI
|
|
{
|
|
long long nSmiLen; // 자막 결과 길이
|
|
char* pSmiStr; // 자막 결과
|
|
} LVCSR_DATA_SMI;
|
|
|
|
typedef struct _LVCSR_RECOG_RESULT
|
|
{
|
|
long long nResultLen; // 인식결과 길이
|
|
char* pResult; // 인식 결과
|
|
double dConfidScore; // 인식 확률값
|
|
long long nCount; // 인식결과 상세내용 구조체 개수
|
|
LVCSR_DATA_RESULT* pDataResult; // 인식결과 상세내용 구조체
|
|
long long nSentCount; // 문장결과 상세내용 구조체 개수
|
|
LVCSR_DATA_RESULT* pDataSentResult; // 문장결과 상세내용 구조체
|
|
LVCSR_DATA_EPD* pResultEPD; // EPD 구조체
|
|
long long nAddrUsed; // ADDR Used
|
|
LVCSR_DATA_ADDR* pResultADDR; // ADDR 구조체
|
|
long long nKWDCount; // KWD 구조체 개수
|
|
LVCSR_DATA_KWD* pResultKWD; // KWD 구조체
|
|
long long nSMIUsed; // SMI 사용여부
|
|
LVCSR_DATA_SMI* pResultSMI; // SMI 구조체
|
|
} LVCSR_RECOG_RESULT;
|
|
|
|
typedef struct _LVCSR_RECOG_MID_RESULT
|
|
{
|
|
long long nResultLen; // 중간 인식결과 길이
|
|
char* pResult; // 중간 인식결과
|
|
int bEngineDetectionFlag; // Engine EPD Flag
|
|
long long nCount; // 인식결과 상세내용 구조체 개수
|
|
LVCSR_DATA_RESULT* pDataResult; // 인식결과 상세내용 구조체
|
|
} LVCSR_RECOG_MID_RESULT;
|
|
|
|
typedef struct _LVCSR_DATA_TIMEOUT
|
|
{
|
|
long long nStartTimeout; // 설정된 시간 동안 음성이 입력되지 않을 경우 발생
|
|
long long nDurationTimeout; // 설정된 시간을 넘겨 음성이 계속 들어올 경우 발생
|
|
} LVCSR_DATA_TIMEOUT;
|
|
|
|
typedef struct _LVCSR_DATA_MARGIN
|
|
{
|
|
float fEpdMargin; // 끝점 검출 최대 시간
|
|
} LVCSR_DATA_MARGIN;
|
|
|
|
typedef struct _LVCSR_DATA_TRANSACTION
|
|
{
|
|
long long nTransactionIdLen; // TransactionId 길이
|
|
char* pTransactionId; // TransactionId 정보
|
|
} LVCSR_DATA_TRANSACTION;
|
|
|
|
typedef struct _LVCSR_DATA_SERVERTIMEOUT
|
|
{
|
|
long long nASRTimeOut; // 서비스 TimeOut 정보
|
|
long long nMGRTimeOut; // 모니터링 TimeOut 정보
|
|
} LVCSR_DATA_SERVERTIMEOUT;
|
|
|
|
typedef struct _LVCSR_DATA_AUTHENTICATION
|
|
{
|
|
long long nAuthenticationLen; // 인증정보 길이
|
|
char* pAuthentication; // 인증정보
|
|
} LVCSR_DATA_AUTHENTICATION;
|
|
|
|
typedef struct _LVCSR_DATA_READTIMEOUT
|
|
{
|
|
long long nReadTimeOut; // ReadTimeOut 정보
|
|
} LVCSR_DATA_READTIMEOUT;
|
|
|
|
typedef struct _LVCSR_DATA_INFO
|
|
{
|
|
long long nModelId; // 모델 ID
|
|
long long nKwdId; // KWD모델 ID
|
|
LVCSR_TYPE_CODEC nCodecType; // CODEC 타입
|
|
LVCSR_SET_CHARSET nCharSet; // 캐릭터 셋
|
|
LVCSR_USED_EPD bEpdUsed; // EPD 사용여부
|
|
LVCSR_USED_SCORE bScoreUsed; // SCORE 사용 여부
|
|
} LVCSR_DATA_INFO;
|
|
|
|
typedef struct _LVCSR_DATA_RESOURCE
|
|
{
|
|
double dNetworkUsage; // Network 사용량
|
|
int nCPUUsage; // CPU 사용율
|
|
int nGPUUsage; // GPU 사용율
|
|
int nMemUsage; // MEM 사용율
|
|
int nDiskUsage; // DISK 사용율
|
|
} LVCSR_DATA_RESOURCE;
|
|
|
|
typedef struct _LVCSR_CHANNEL_LIST
|
|
{
|
|
long long nChannelID; // 채널 ID
|
|
LVCSR_TYPE_CHANNEL nChannelStat; // 채널 상태
|
|
} LVCSR_CHANNEL_LIST;
|
|
|
|
typedef struct _LVCSR_DATA_CHANNEL
|
|
{
|
|
long long nChannelCnt; // 전체 채널 수
|
|
long long nUsedCnt; // 사용 채널 수
|
|
LVCSR_CHANNEL_LIST* pChannelInfo; // 채널 상태 정보
|
|
} LVCSR_DATA_CHANNEL;
|
|
|
|
typedef struct _LVCSR_KWD_LIST
|
|
{
|
|
long long nKwdID; // KWD모델 ID
|
|
long long nKwdNameLen; // KWD모델 이름 길이
|
|
char* pKwdName; // KWD모델 이름
|
|
} LVCSR_KWD_LIST;
|
|
|
|
typedef struct _LVCSR_MODEL_LIST
|
|
{
|
|
long long nModelID; // 인식모델 ID
|
|
long long nModelNameLen; // 인식모델 이름 길이
|
|
char* pModelName; // 인식모델 이름
|
|
long long nModelType; // 인식모델 타입(지원 기능)
|
|
long long nSamplingRate; // 인식모델 SampleRate
|
|
float fAcousticScale; // 음향가중치 정보
|
|
long long nKwdCnt; // KWD 모델 개수
|
|
LVCSR_KWD_LIST* pKwdInfo; // KWD 모델 정보
|
|
} LVCSR_MODEL_LIST;
|
|
|
|
typedef struct _LVCSR_DATA_MODEL
|
|
{
|
|
long long nModelCnt; // 모델 수
|
|
LVCSR_MODEL_LIST* pModelInfo; // 모델 정보
|
|
} LVCSR_DATA_MODEL;
|
|
|
|
typedef struct _LVCSR_DATA_DATETERM
|
|
{
|
|
long long nStartDate; // 시작일자
|
|
long long nEndDate; // 종료일자
|
|
} LVCSR_DATA_DATETERM;
|
|
|
|
typedef struct _LVCSR_STATDATE_LIST
|
|
{
|
|
long long nStatTime; // 기록 시각
|
|
unsigned int nTotalSuccess; // 총 성공 건수
|
|
unsigned int nTotalFail; // 총 실패 건수
|
|
unsigned int nMaxClientFail; // 총 실패 건수(max client error)
|
|
unsigned int nEtcFail; // 총 실패 건수(max client error를 제외한 에러)
|
|
unsigned long nTotalBytes; // 총 음성 크기 (Bytes)
|
|
float fTotalElapsedTime; // 총 인식결과 소요시간
|
|
float fMaxElapsedTime; // 최대 인식결과 소요 시간
|
|
unsigned int nMaxElapsedBytes; // 최대 인식결과 소요 시간 당시 음성 크기 (Bytes)
|
|
unsigned int nMaxBytesSize; // 최대 음성 크기 (Bytes)
|
|
float fMaxBytesElapsed; // 최대 음성 크기 당시 인식결과 소요 시간
|
|
} LVCSR_STATDATE_LIST;
|
|
|
|
typedef struct _LVCSR_DATA_STATDATE
|
|
{
|
|
long long nStatDateCnt; // 통계 수
|
|
LVCSR_STATDATE_LIST* pStatDateInfo; // 통계 정보
|
|
} LVCSR_DATA_STATDATE;
|
|
|
|
typedef struct _LVCSR_DATA_KWD_RESULT
|
|
{
|
|
char szToken[MAX_NAME_SIZE]; // 단어 인식결과
|
|
char szSymbol[MAX_NAME_SIZE]; // 심볼 인식결과
|
|
} LVCSR_DATA_KWD_RESULT;
|
|
|
|
typedef struct _LVCSR_DATA_WORD
|
|
{
|
|
long long nModelId; // 인식모델 ID
|
|
long long nKWDNameLen; // KWD모델 이름 길이
|
|
char* pKWDName; // KWD모델 이름
|
|
long long nKWDResultCnt; // KWD 구조체 개수
|
|
LVCSR_DATA_KWD_RESULT* pKWDResult; // KWD 구조체
|
|
} LVCSR_DATA_WORD;
|
|
|
|
typedef struct _LVCSR_DATA_WORD_KWD
|
|
{
|
|
long long nModelId; // 인식모델 ID
|
|
long long nKWDNameLen; // KWD모델 이름 길이
|
|
char* pKWDName; // KWD모델 이름
|
|
} LVCSR_DATA_WORD_KWD;
|
|
|
|
typedef struct _LVCSR_DATA_LSTM
|
|
{
|
|
long long nRefLen; // 정답 결과 길이
|
|
char* pRefStr; // 정답 결과
|
|
long long nHypLen; // 인식 결과 길이
|
|
char* pHypStr; // 인식 결과
|
|
LVCSR_SET_CHARSET nCharSet; // 캐릭터 셋
|
|
LVCSR_USED_WORD bWordUsed; // 단어 인식률 사용 여부
|
|
} LVCSR_DATA_LSTM;
|
|
|
|
typedef struct _LVCSR_LSTM_SUMMARY
|
|
{
|
|
long long nTotal; // 전체 개수
|
|
long long nInsert; // 삽입 개수
|
|
long long nDelete; // 삭제 개수
|
|
long long nSubstitute; // 대치 개수
|
|
long long nMatch; // 일치 개수
|
|
double dErrorRate; // 오류률
|
|
double dRecgRate; // 인식률
|
|
long long nDistance; // 오류 개수
|
|
} LVCSR_LSTM_SUMMARY;
|
|
|
|
typedef struct _LVCSR_DATA_ALIGN
|
|
{
|
|
char pTokenStr; // Align 결과
|
|
} LVCSR_DATA_ALIGN;
|
|
|
|
typedef struct _LVCSR_DATA_VECTOR
|
|
{
|
|
long long nTokenLen; // 단어 결과 길이
|
|
char* pTokenStr; // 단어 결과
|
|
} LVCSR_DATA_VECTOR;
|
|
|
|
typedef struct _LVCSR_LSTM_MATCH
|
|
{
|
|
long long pMatchCnt; // 구조체 개수
|
|
long long nAlignLen; // Align 문자열길이
|
|
char* pAlignStr; // Align 문자열
|
|
LVCSR_DATA_ALIGN* pDataAlign; // Align 구조체
|
|
long long nRefLen; // Ref 문자열 길이
|
|
char* pRefStr; // Ref 문자열
|
|
LVCSR_DATA_VECTOR* pRefResult; // Ref 구조체
|
|
long long nHypLen; // Hyp 문자열 길이
|
|
char* pHypStr; // Hyp 문자열
|
|
LVCSR_DATA_VECTOR* pHypResult; // Hyp 구조체
|
|
} LVCSR_LSTM_MATCH;
|
|
|
|
typedef struct _LVCSR_LSTM_RESULT
|
|
{
|
|
LVCSR_LSTM_SUMMARY pLstmSummary; // Levenshtein 요약 정보
|
|
LVCSR_LSTM_MATCH pLstmMatch; // Levenshtein 정렬 정보
|
|
} LVCSR_LSTM_RESULT;
|
|
|
|
typedef struct _CASR_HEAD_PACK
|
|
{
|
|
char CHID[6];
|
|
char RVD1;
|
|
char TYPE;
|
|
char RVD2;
|
|
char LENG[10];
|
|
char RVD3;
|
|
} CASR_HEAD_PACK;
|
|
|
|
typedef struct _CRES_HEAD_PACK
|
|
{
|
|
char CHID[6]; //socket
|
|
char RVD1; //공백
|
|
char TYPE; //S
|
|
char RVD2; //공백
|
|
char KIND; //종류
|
|
char RVD3; //공백
|
|
char USED[2]; //성공여부
|
|
char RVD4; //공백
|
|
char LENG[10]; //문자
|
|
char RVD5;
|
|
} CRES_HEAD_PACK;
|
|
|
|
typedef struct ssl_st SSL;
|
|
typedef struct ssl_ctx_st SSL_CTX;
|
|
|
|
typedef struct _LVCSR_SOCK_TIMEOUT
|
|
{
|
|
long long nConnTIMEOUT; // Connection TimeOut(Sec)
|
|
long long nReadTIMEOUT; // Read TimeOut(Sec)
|
|
} LVCSR_SOCK_TIMEOUT;
|
|
|
|
typedef struct _LVCSR_SOCK_HEAD
|
|
{
|
|
long uSock; // 소켓 ID
|
|
SSL* pSSL; // SSL 정보 // SSL 미사용시 NULL값
|
|
SSL_CTX* pContext; // SSL Context 정보 // SSL 미사용시 NULL값
|
|
LVCSR_USED_SSL nFlag; // SSL 사용 유무
|
|
LVCSR_USED_CRT_CHECK nCheck; // 인증서 체크 유무
|
|
LVCSR_SOCK_TIMEOUT pTimeOut; // 소켓 타임아웃
|
|
long nError; // SSL 에러 정보 // SSL 미사용시 0값
|
|
} LVCSR_SOCK_HEAD;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_VERSION();
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_SSL(char* pCRT, char* pKEY, char* pCA, char* pPASS, LVCSR_SOCK_HEAD* pHEAD);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_OPEN(char* cHOST, long nPORT, long nConnTIMEOUT, long nReadTIMEOUT, LVCSR_SOCK_HEAD* pHEAD);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_CLOS(LVCSR_SOCK_HEAD* pHEAD);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_OPEN(LVCSR_SOCK_HEAD* pHEAD);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_CLOS(LVCSR_SOCK_HEAD* pHEAD);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_DATA(LVCSR_SOCK_HEAD* pHEAD, char* cBUFF, long nLENG, long bEND, LVCSR_EPD_INFO* pEpdInfo);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_STR_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_WORD_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SENT_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_ADDR_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_KWD_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SMI_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_RESULT* pRecgResult);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_ADD_INFO(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_CHAR_TIME* pCharTime, LVCSR_RECOG_ADD_INFO* pRecgAddInfo);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_ADD_INFO_FREE(LVCSR_DATA_CHAR_TIME* pCharTime, LVCSR_RECOG_ADD_INFO* pRecgAddInfo);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SET_PHONICS_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_PHONICS* pDataPhonics, LVCSR_RECOG_MID_RESULT* pRecgMidResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SET_PHONICS_PROC_FREE(LVCSR_DATA_PHONICS* pDataPhonics, LVCSR_RECOG_MID_RESULT* pRecgMidResult);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_NBEST_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_NBEST_RESULT* pRecgNbestResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_PHONICS_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_PHONICS_RESULT* pRecgPhonicsResult);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_LIST_VIEW(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_MODEL* pDataModel);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_MID_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_MID_RESULT* pRecgMidResult);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_MID_PHONICS_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_MID_RESULT* pRecgMidResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_DET_PHONICS_PROC(LVCSR_SOCK_HEAD* pHEAD, LVCSR_RECOG_PHONICS_RESULT* pRecgPhonicsResult);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_SET_AUTH(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_AUTHENTICATION* pDataAuthentication);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_SET_READTIME(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_READTIMEOUT* pDataReadtimeout);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_SET_TRANS(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_TRANSACTION* pDataTransaction);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SET_LIST(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_INFO* pDataInfo);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SET_EPD_TIMEOUT(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_TIMEOUT* pDataTimeOut);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SET_EPD_MARGIN(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_MARGIN* pDataMargin);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_SET_PHONICS(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_PHONICS* pDataPhonics);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RESOURCE(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_RESOURCE* pDataResource);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_CHANNEL(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_CHANNEL* pDataChannel);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_MODEL(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_MODEL* pDataModel);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_TIMEOUT(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_SERVERTIMEOUT* pDataServertimeout);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_STAT(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_DATETERM* pDataTerm, LVCSR_DATA_STATDATE* pDataStatDate);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_CREATE_WORD(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_WORD* pDataWord);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_DELETE_WORD(LVCSR_SOCK_HEAD* pHEAD, LVCSR_DATA_WORD_KWD* pDataWordKwd);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_CHANNEL_FREE(LVCSR_DATA_CHANNEL* pDataChannel);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_MODEL_FREE(LVCSR_DATA_MODEL* pDataModel);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_STAT_FREE(LVCSR_DATA_DATETERM* pDataTerm, LVCSR_DATA_STATDATE* pDataStatDate);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_LIST_VIEW_FREE(LVCSR_DATA_MODEL* pDataModel);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_MID_PROC_FREE(LVCSR_RECOG_MID_RESULT* pRecgMidResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_PROC_FREE(LVCSR_RECOG_RESULT* pRecgResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_NBEST_PROC_FREE(LVCSR_RECOG_NBEST_RESULT* pRecgNbestResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_RECG_PHONICS_PROC_FREE(LVCSR_RECOG_PHONICS_RESULT* pRecgPhonicsResult);
|
|
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_LSTM(LVCSR_DATA_LSTM* pDataLstm, LVCSR_LSTM_RESULT* pDataLstmResult);
|
|
LVCSR_RESULT LVCSR_LIBRARY_API ASR_SVC_LSTM_FREE(LVCSR_DATA_LSTM* pDataLstm, LVCSR_LSTM_RESULT* pDataLstmResult);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif
|