www.pudn.com > 语音合成软件,含Freephone和Mbrora两个模块.zip > freephone.h


///////////////////////////////////////////////////////////////////////////// 
// Name:        freephone.h 
// Purpose:     wxFreePhone class, for driving FreePhone 
// Author:      Julian Smart 
// Modified by: 
// Created:     10/6/98 
// Copyright:   Julian Smart 
// Licence: 
///////////////////////////////////////////////////////////////////////////// 
 
#ifndef _FREEPHONE_H_ 
#define _FREEPHONE_H_ 
 
#ifdef _AFXDLL 
#  define __FP_MFC__ 
#else 
// Set your framework (here or in the makefile). If all are undefined, we're 
// using native Windows or Unix. 
// #define __FP_MFC__ 
// #define __FP_WXWIN__ 
#endif 
 
#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXMOTIF__) 
#ifndef __FP_WXWIN__ 
#define __FP_WXWIN__ 
#endif 
#endif 
 
#ifdef __FP_MFC__ 
#include  
#elif defined(__FP_WXWIN__) 
#include  
#include  
#endif 
 
#ifdef __FP_MFC__ 
#   ifndef CStringRef 
#       define CStringRef CString& 
#   endif 
#   ifndef Bool 
#       define Bool bool 
#   endif 
#elif defined(__FP_WXWIN__) 
#   ifndef CString 
#       define CString wxString 
#       define CStringRef wxString& 
#   endif 
#   ifndef Bool 
#       define Bool bool 
#   endif 
#else 
#   ifndef CString 
#       define CString char* 
#       define CStringRef char* 
#   endif 
#   ifndef Bool 
#       define Bool bool 
#   endif 
#   ifndef TRUE 
#       define TRUE 1 
#       define FALSE 0 
#   endif 
#endif 
 
#if !defined(__FP_MFC__) && !defined(__FP_WXWIN__) 
#define FP_STRING_ASSIGN(a, b) delete[] a; a = copystring(b) 
#define FP_STRING_DELETE(a) delete[] a 
#define FP_STRING_ISEMPTY(a) (a == NULL) 
#else 
#define FP_STRING_ASSIGN(a, b) a = b 
#define FP_STRING_DELETE(a) 
#define FP_STRING_ISEMPTY(a) (a == "") 
#endif 
 
class tsFreePhoneImplementation; 
class wxFreePhone 
{ 
public: 
    wxFreePhone(const CStringRef dictionaryPath = ""); 
    ~wxFreePhone(); 
 
    // Public interface 
public: 
 
    // Initialises dictionary etc. 
    Bool Init(); 
 
    // Cleans up dictionary etc. 
    Bool CleanUp(); 
 
#if defined(__FP_MFC__) || defined(__FP_WXWIN__) 
    Bool TextToPhoneme(const CStringRef text, CStringRef phonemes); 
#else 
    Bool TextToPhoneme(const CStringRef text, char** phonemes); 
#endif 
 
    Bool TextToPhonemeFile(const CStringRef text, const CStringRef phonemeFile); 
 
protected: 
    // Implementation 
    Bool WriteToFile(const CStringRef filename, const CStringRef text); 
 
#if defined(__FP_MFC__) || defined(__FP_WXWIN__) 
    Bool ReadFromFile(const CStringRef filename, CStringRef text); 
#else 
    Bool ReadFromFile(const CStringRef filename, char** text); 
#endif 
 
    CString GetTempFilename() const ; 
    Bool FileExists (const char *filename) const ; 
    static char *copystring (const char *s); 
 
protected: 
    tsFreePhoneImplementation* m_implementation; 
    CString             m_dictionaryPath; // E.g. "thing/english" 
    CString             m_dictionaryFile; // .dct 
    CString             m_keywordFile;    // .key 
    CString             m_indexFile;      // .idx 
}; 
 
#endif