worldParameters.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef __worldParameters_h__
  2. #define __worldParameters_h__
  3. /// <summary>
  4. /// WORLD の分析パラメータの一部を保持します.
  5. /// </summary>
  6. class worldParameters
  7. {
  8. public:
  9. worldParameters();
  10. ~worldParameters();
  11. /// <summary>
  12. /// 与えられた波形から WORLD の分析パラメータを抽出します.
  13. /// </summary>
  14. /// <param name="wave">波形を格納した配列.</param>
  15. /// <param name="waveLength">配列長.</param>
  16. /// <param name="fs">標本化周波数.</param>
  17. /// <param name="framePeriod">フレーム単位時間.</param>
  18. /// <returns>成功したときは true,失敗したときは false を返します.</returns>
  19. bool computeWave(double *wave, int waveLength, int fs, double framePeriod);
  20. /// <summary>
  21. /// 保持している分析済みパラメータをファイルに書き出します.
  22. /// </summary>
  23. /// <param name="path">書き込むファイルパス.</param>
  24. /// <returns>成功したときは true,失敗したときは false を返します.</returns>
  25. bool writeParameters(const char *path);
  26. /// <summary>
  27. /// 分析済みパラメータを読み込みます.
  28. /// </summary>
  29. /// <param name="path">読み込むファイルパス.</param>
  30. /// <returns>成功したときは true,失敗したときは false を返します.</returns>
  31. bool readParameters(const char *path);
  32. /// <summary>
  33. /// 分析済みパラメータの該当箇所を読み出します.
  34. /// </summary>
  35. /// <param name="f0">F0 列を書き込む配列.</param>
  36. /// <param name="t">時間軸を書き込む配列.</param>
  37. /// <param name="pulseLocation">フレーム時刻毎のパルス位置を書き込む配列.</param>
  38. /// <param name="fs">標本化周波数.</param>
  39. /// <param name="beginTime">開始時刻[s].</param>
  40. /// <param name="timeLength">配列長.</param>
  41. /// <param name="framePeriod">フレーム単位時間.</param>
  42. /// <returns>成功したときは true,失敗したときは false を返します.</returns>
  43. bool getParameters(float *f0, float *t, int *pulseLocations, int fs, double beginTime, int timeLength, double framePeriod);
  44. private:
  45. void destroy();
  46. float *f0;
  47. float *t;
  48. int *pulseLocations;
  49. int tLen;
  50. float framePeriod;
  51. };
  52. #endif