📄 dat_file_access.h
字号:
// DAT_File_Access.h:
// Interface for the DAT_File_Access Module.
//
// Created 2001/08, By DongMing, MDSR.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DAT_FILE_ACCESS_H__A8BF1D4D_BB55_4102_B427_19AEC6262356__INCLUDED_)
#define AFX_DAT_FILE_ACCESS_H__A8BF1D4D_BB55_4102_B427_19AEC6262356__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define DAT_FILE_VERSION 20010801L
// 定义sSampleType所用到数据类型
#define SAMPLE_DATA_TYPE_CHAR 1
#define SAMPLE_DATA_TYPE_SHORT 2
#define SAMPLE_DATA_TYPE_LONG 3
#define SAMPLE_DATA_TYPE_FLOAT 4
#define SAMPLE_DATA_TYPE_DOUBLE 5
// 定义.DAT格式的特征文件文件头
typedef struct tag_FEATURE_FILE_HEAD
{
long lVersion; // 版本号,本次为 20010801
char szName[15]; // 姓名
char szSex[4]; // 性别
char szAge[15]; // 年龄
char szHomeTown[30]; // 方言类型,例如"上海普通话"
char szDate[24]; // 日期
char szGroup[10]; // 00 组别
short sSentenceNum; // 句子数
long lSampleRate; // 采样率
char szParameterType[10]; // 参数类型(MFCC)
short sSampleType; // 数据类型(1=char;2=short;3=long;4=float;5=double)
short sFeatureOrder; // 特征维数
char szReservation[76]; // 保留位
short sSentenceNum2; // 198-199, Sentence Number
} FEATURE_FILE_HEAD;
// 定义.DAT格式的码书文件文件头
typedef struct tag_CODE_BOOK_FILE_HEAD
{
long lVersion; // 版本号 本次为20010801
char szName[15]; // 姓名 固定填写"CodeBook"
char szSex[4]; // 性别 (未用域)
char szAge[15]; // 年龄 (未用域)
char szHomeTown[30]; // 方言类型 (未用域)
char szDate[24]; // 日期 (未用域)
char szGroup[10]; // 00 组别 (未用域)
short sCodeBookNum; // 码书本数 该文件中存储码书的本数
long lSampleRate; // 采样率 (未用域)
char szParameterType[10]; // 参数类型 固定填写"CodeBook"
short sSampleType; // 数据类型 (1=char;2=short;3=long;4=float;5=double)
short sFeatureOrder; // 特征维数 比如24
short sCodeBookSize; // 码书大小 码书中的码字个数,比如128
char szReservation[74]; // 保留位 填补空缺,使得文件头定长200字节
short sCodeBookNum2; // 198-199 = sCodeBookNum, 码书的本数
} CODE_BOOK_FILE_HEAD;
// 定义.DAT格式的DHMM模型文件文件头
typedef struct tag_DHMM_MODEL_FILE_HEAD
{
long lVersion; // 版本号 本次为 20010801
char szName[15]; // 姓名 固定填写"DHMM_Model"
char szSex[4]; // 性别 (未用域)
char szAge[15]; // 年龄 (未用域)
char szHomeTown[30]; // 方言类型 (未用域)
char szDate[24]; // 日期 (未用域)
char szGroup[10]; // 00 组别 (未用域)
short sDHMM_Model_Num; // 模型个数 与词数对应,比如11
long lSampleRate; // 采样率 (未用域)
char szParameterType[10]; // 参数类型 固定填写"DHMM_Model"
short sSampleType; // 数据类型 (1=char;2=short;3=long;4=float;5=double)
short sModelStateNum; // 模型状态数 比如6
short sCodeBookSize; // 码书大小 码书中的码字个数,比如128
char szReservation[74]; // 保留位 填补空缺,使得文件头定长200字节
short sDHMM_Model_Num2; // 198-199 = sDHMM_Model_Num, 与词数对应
} DHMM_MODEL_FILE_HEAD;
// 定义句子索引块
typedef struct tag_SENTENCE_INDEX_BLOCK {
long Offset; // 词条距离文件开始处的偏移
long FrameAmount; // 词条所包含总的帧数
} SENTENCE_INDEX_BLOCK;
// 函数功能:从.DAT格式的Feature文件读入文件头信息
int dfa_Feature_Get_File_Info(char * sz_Feature_File_Name, FEATURE_FILE_HEAD * pu_Feature_File_Head);
// 函数功能:读出.DAT格式的Feature文件中的前若干句子的总帧数
int dfa_Feature_Get_File_Total_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Num);
// 函数功能:读出.DAT格式的Feature文件中的指定若干句子的总帧数
int dfa_Feature_Get_File_Total_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Num, int n_Sentence_Start_Index);
// 函数功能:读出.DAT格式的Silence文件中的指定若干静音的总帧数
int dfa_Feature_Get_Silence_Total_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Num, int n_Sentence_Start_Index);
// 函数功能:读出.DAT格式的Feature文件中的某个句子的帧数
int dfa_Feature_Get_Sentence_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Index);
// 函数功能:读出.DAT格式的Feature文件中的某个Silence的帧数
int dfa_Feature_Get_Silence_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Index);
// 函数功能:读出.DAT格式的Feature文件中的某个句子的特征
int dfa_Feature_Read_A_Sentence(char * sz_Feature_File_Name, int n_Sentence_Index, int n_Feature_Dim, DYNA_2DIM_DOUBLE_ARRAY d2dda);
// 函数功能:读出.DAT格式的Feature文件中的某个句子的静音部分特征
int dfa_Feature_Read_A_Silence(char * sz_Feature_File_Name, int n_Sentence_Index, int n_Feature_Dim, DYNA_2DIM_DOUBLE_ARRAY d2dda);
#endif // !defined(AFX_DAT_FILE_ACCESS_H__A8BF1D4D_BB55_4102_B427_19AEC6262356__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -