DAT_File_Access.h
上传用户:avbj512
上传日期:2013-09-18
资源大小:6239k
文件大小:5k
源码类别:

DSP编程

开发平台:

Visual C++

  1. // DAT_File_Access.h:
  2. // Interface for the DAT_File_Access Module.
  3. //
  4. // Created 2001/08, By DongMing, MDSR.
  5. //
  6. //////////////////////////////////////////////////////////////////////
  7. #if !defined(AFX_DAT_FILE_ACCESS_H__A8BF1D4D_BB55_4102_B427_19AEC6262356__INCLUDED_)
  8. #define AFX_DAT_FILE_ACCESS_H__A8BF1D4D_BB55_4102_B427_19AEC6262356__INCLUDED_
  9. #if _MSC_VER > 1000
  10. #pragma once
  11. #endif // _MSC_VER > 1000
  12. #define DAT_FILE_VERSION 20010801L
  13. // 定义sSampleType所用到数据类型
  14. #define SAMPLE_DATA_TYPE_CHAR 1
  15. #define SAMPLE_DATA_TYPE_SHORT 2
  16. #define SAMPLE_DATA_TYPE_LONG 3
  17. #define SAMPLE_DATA_TYPE_FLOAT 4
  18. #define SAMPLE_DATA_TYPE_DOUBLE 5
  19. // 定义.DAT格式的特征文件文件头
  20. typedef struct tag_FEATURE_FILE_HEAD
  21. {
  22. long lVersion; // 版本号,本次为 20010801
  23. char szName[15];        // 姓名
  24. char szSex[4];          // 性别
  25. char szAge[15]; // 年龄
  26. char  szHomeTown[30];   // 方言类型,例如"上海普通话"
  27. char szDate[24];  // 日期
  28. char szGroup[10]; // 00 组别 
  29. short sSentenceNum; // 句子数
  30. long lSampleRate; // 采样率
  31. char szParameterType[10]; // 参数类型(MFCC)
  32. short sSampleType; // 数据类型(1=char;2=short;3=long;4=float;5=double) 
  33. short sFeatureOrder; // 特征维数
  34. char szReservation[76]; // 保留位
  35. short sSentenceNum2; // 198-199, Sentence Number
  36. } FEATURE_FILE_HEAD;
  37. // 定义.DAT格式的码书文件文件头
  38. typedef struct tag_CODE_BOOK_FILE_HEAD
  39. {
  40. long lVersion; // 版本号 本次为20010801
  41. char szName[15];        // 姓名 固定填写"CodeBook"
  42. char szSex[4];          // 性别 (未用域)
  43. char szAge[15]; // 年龄 (未用域)
  44. char  szHomeTown[30];   // 方言类型 (未用域)
  45. char szDate[24];  // 日期 (未用域)
  46. char szGroup[10]; // 00 组别 (未用域)
  47. short sCodeBookNum; // 码书本数 该文件中存储码书的本数
  48. long lSampleRate; // 采样率 (未用域)
  49. char szParameterType[10]; // 参数类型 固定填写"CodeBook"
  50. short sSampleType; // 数据类型 (1=char;2=short;3=long;4=float;5=double) 
  51. short sFeatureOrder; // 特征维数 比如24
  52. short sCodeBookSize; // 码书大小 码书中的码字个数,比如128
  53. char szReservation[74]; // 保留位 填补空缺,使得文件头定长200字节
  54. short sCodeBookNum2; // 198-199 = sCodeBookNum, 码书的本数
  55. } CODE_BOOK_FILE_HEAD;
  56. // 定义.DAT格式的DHMM模型文件文件头
  57. typedef struct tag_DHMM_MODEL_FILE_HEAD
  58. {
  59. long lVersion; // 版本号 本次为 20010801
  60. char szName[15];        // 姓名 固定填写"DHMM_Model"
  61. char szSex[4];          // 性别 (未用域)
  62. char szAge[15]; // 年龄 (未用域)
  63. char  szHomeTown[30];   // 方言类型 (未用域)
  64. char szDate[24];  // 日期 (未用域)
  65. char szGroup[10]; // 00 组别 (未用域)
  66. short sDHMM_Model_Num; // 模型个数 与词数对应,比如11
  67. long lSampleRate; // 采样率 (未用域)
  68. char szParameterType[10]; // 参数类型 固定填写"DHMM_Model"
  69. short sSampleType; // 数据类型 (1=char;2=short;3=long;4=float;5=double) 
  70. short sModelStateNum; // 模型状态数 比如6
  71. short sCodeBookSize; // 码书大小 码书中的码字个数,比如128
  72. char szReservation[74]; // 保留位 填补空缺,使得文件头定长200字节
  73. short sDHMM_Model_Num2; // 198-199 = sDHMM_Model_Num, 与词数对应
  74. } DHMM_MODEL_FILE_HEAD;
  75. // 定义句子索引块
  76. typedef struct tag_SENTENCE_INDEX_BLOCK {
  77. long Offset; // 词条距离文件开始处的偏移
  78. long FrameAmount; // 词条所包含总的帧数
  79. } SENTENCE_INDEX_BLOCK;
  80. // 函数功能:从.DAT格式的Feature文件读入文件头信息
  81. int dfa_Feature_Get_File_Info(char * sz_Feature_File_Name, FEATURE_FILE_HEAD * pu_Feature_File_Head);
  82. // 函数功能:读出.DAT格式的Feature文件中的前若干句子的总帧数
  83. int dfa_Feature_Get_File_Total_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Num);
  84. // 函数功能:读出.DAT格式的Feature文件中的指定若干句子的总帧数
  85. int dfa_Feature_Get_File_Total_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Num, int n_Sentence_Start_Index);
  86. // 函数功能:读出.DAT格式的Silence文件中的指定若干静音的总帧数
  87. int dfa_Feature_Get_Silence_Total_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Num, int n_Sentence_Start_Index);
  88. // 函数功能:读出.DAT格式的Feature文件中的某个句子的帧数
  89. int dfa_Feature_Get_Sentence_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Index);
  90. // 函数功能:读出.DAT格式的Feature文件中的某个Silence的帧数
  91. int dfa_Feature_Get_Silence_Frame_Num(char * sz_Feature_File_Name, int n_Sentence_Index);
  92. // 函数功能:读出.DAT格式的Feature文件中的某个句子的特征
  93. int dfa_Feature_Read_A_Sentence(char * sz_Feature_File_Name, int n_Sentence_Index, int n_Feature_Dim, DYNA_2DIM_DOUBLE_ARRAY d2dda);
  94. // 函数功能:读出.DAT格式的Feature文件中的某个句子的静音部分特征
  95. int dfa_Feature_Read_A_Silence(char * sz_Feature_File_Name, int n_Sentence_Index, int n_Feature_Dim, DYNA_2DIM_DOUBLE_ARRAY d2dda);
  96. #endif // !defined(AFX_DAT_FILE_ACCESS_H__A8BF1D4D_BB55_4102_B427_19AEC6262356__INCLUDED_)