cspeech.h
上传用户:zhaopin
上传日期:2007-01-07
资源大小:79k
文件大小:5k
源码类别:

语音合成与识别

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        cspeech.h
  3. // Purpose: Text to speech class
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 07/02/98
  7. // RCS-ID: $Id$
  8. // Copyright: (c) Julian Smart
  9. // Licence: wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11. /*
  12.  * TODO:
  13.  * - Plain Windows sample.
  14.  * - Documentation.
  15.  * - Perhaps make CSpeechImpl pluggable so we can plug in non-SAPI engines.
  16.  */
  17. #ifndef __CSPEECH_H__
  18. #define __CSPEECH_H__
  19. // Set your framework - if all are undefined, we're using native Windows.
  20. #define __MFC__
  21. // #define __WXWIN__
  22. #ifdef __MFC__
  23. #include <afx.h>
  24. #elif defined(__WXWIN__)
  25. #include <wx.h>
  26. #include <wxstring.h>
  27. #else
  28. #include <windows.h>
  29. #endif
  30. #ifndef u_int8_t
  31. #  define u_int8_t unsigned char
  32. #  define u_int16_t unsigned short
  33. #  define u_int32_t unsigned int
  34. #  define u_int64_t unsigned __int64
  35. #  define int8_t char
  36. #  define int16_t short
  37. #  define int32_t int
  38. #  define int64_t __int64
  39. #endif
  40. #define timestamp_t u_int64_t
  41. // Stands in for HWND
  42. typedef void* window_t;
  43. #ifdef __MFC__
  44. // Nothing
  45. #elif defined(__WXWIN__)
  46. #define CString wxString
  47. #define BOOL Bool
  48. #else
  49. #define CString char*
  50. #endif
  51. /////////////////////////////////////////////////////////////////////////////
  52. class CSpeechImpl;
  53. class CSpeechMouth
  54. {
  55. public:
  56. int m_mouthHeight;
  57. int m_mouthWidth;
  58. int m_mouthUpturn;
  59. int m_jawOpen;
  60. int m_teethUpperVisible;
  61. int m_teethLowerVisible;
  62. int m_tonguePosn;
  63. int m_lipTension;
  64. };
  65. class CSpeech: public
  66. #ifdef wx_msw
  67.  wxObject
  68. #else
  69.  CObject
  70. #endif
  71. {
  72. // Construction
  73. public:
  74. CSpeech();
  75. ~CSpeech();
  76. // Accessors
  77. // Get the mode name by index
  78. CString GetModeName(int mode) const ;
  79. // Get the mode features by index
  80. long GetModeFeatures(int mode) const ;
  81. // Get the number of modes
  82. int GetModeCount(void) const ;
  83. // Set the current mode
  84. BOOL SetMode(int mode) ;
  85. // Find a mode by name
  86. int FindMode(const CString modeName);
  87. // Operations
  88. // Initialize and enumerate modes
  89. BOOL Init();
  90. // Cleanup TTS
  91. BOOL Terminate();
  92. // Pause
  93. BOOL Pause(BOOL pause);
  94. // Say the text
  95. BOOL Say(const CString& text, BOOL tagged = FALSE);
  96. // Resets TTS
  97. BOOL Reset();
  98. // Injects rst
  99. BOOL Default();
  100. // Inject a tag
  101. BOOL Inject(const CString& text);
  102. // Set the pitch
  103. BOOL SetPitch(int pitch);
  104. // Get the pitch
  105. int GetPitch(void) const;
  106. // Get the min pitch
  107. int GetMinPitch(void) const;
  108. // Get the max pitch
  109. int GetMaxPitch(void) const;
  110. // Set the speed
  111. BOOL SetSpeed(long speed);
  112. // Get the speed
  113. long GetSpeed(void) const;
  114. // Get the min speed
  115. long GetMinSpeed(void) const;
  116. // Get the max speed
  117. long GetMaxSpeed(void) const;
  118. // Set the volume
  119. BOOL SetVolume(long volume);
  120. // Get the volume
  121. long GetVolume(void) const;
  122. // Get the min volume
  123. long GetMinVolume(void) const;
  124. // Get the max volume
  125. long GetMaxVolume(void) const;
  126. // Find all possible modes (voices). Called in Init but you may wish
  127. // to call it again if an engine has been installed/removed
  128.     BOOL EnumerateModes(void);
  129. // Shows an engine-specific About dialog.
  130. // Returns FALSE if not supported or there is some other error.
  131. BOOL AboutDialog(window_t parentWindow, const CString& title = "");
  132. // Shows an engine-specific general settings dialog.
  133. // Returns FALSE if not supported or there is some other error.
  134. BOOL GeneralDialog(window_t parentWindow, const CString& title = "");
  135. // Shows an engine-specific lexicon dialog.
  136. // Returns FALSE if not supported or there is some other error.
  137. BOOL LexiconDialog(window_t parentWindow, const CString& title = "");
  138. // Shows an engine-specific translation dialog.
  139. // Returns FALSE if not supported or there is some other error.
  140. BOOL TranslateDialog(window_t parentWindow, const CString& title = "");
  141. // Overridables
  142. // ITTSNotifySink
  143. virtual BOOL OnAttribChanged(long attribId);
  144. virtual BOOL OnAudioStart(timestamp_t timeStamp);
  145. virtual BOOL OnAudioStop(timestamp_t timeStamp);
  146. virtual BOOL OnVisual(timestamp_t timeStamp, char cIPAPhoneme,
  147. char cEnginePhoneme, long dwHints, const CSpeechMouth& mouth);
  148. // ITTSBufNotifySink
  149. virtual BOOL OnBookMark(timestamp_t qTimeStamp, long dwMarkNum);
  150. virtual BOOL OnTextDataStarted (timestamp_t qTimeStamp);
  151. virtual BOOL OnTextDataDone (timestamp_t qTimeStamp, long dwFlags);
  152. virtual BOOL OnWordPosition (timestamp_t qTimeStamp, long dwByteOffset);
  153. // Implementation
  154. public:
  155. inline CSpeechImpl* GetSpeechImpl() const { return m_speechImpl; }
  156. protected:
  157. // Implementation object, so this header file eliminates speech/OLE-specific
  158. // includes.
  159. CSpeechImpl* m_speechImpl;
  160. };
  161. #endif