libsent/include/sent/adin.h

説明を見る。
00001 
00024 /*
00025  * Copyright (c) 1991-2007 Kawahara Lab., Kyoto University
00026  * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
00027  * Copyright (c) 2005-2007 Julius project team, Nagoya Institute of Technology
00028  * All rights reserved
00029  */
00030 
00031 #ifndef __SENT_ADIN__
00032 #define __SENT_ADIN__
00033 
00034 #include <sent/stddefs.h>
00035 #include <sent/speech.h>
00036 
00037 #if defined(HAVE_ALSA_ASOUNDLIB_H) || defined(HAVE_SYS_ASOUNDLIB_H)
00038 #define HAS_ALSA
00039 #endif
00040 #ifdef __linux__
00041 #if defined(HAVE_SYS_SOUNDCARD_H) || defined(HAVE_MACHINE_SOUNDCARD_H)
00042 #define HAS_OSS
00043 #endif
00044 #endif /* __linux__ */
00045 #ifdef HAVE_ESD_H
00046 #define HAS_ESD
00047 #endif
00048 
00050 enum {
00051   INPUT_WAVEFORM,
00052   INPUT_VECTOR
00053 };
00054 
00056 enum {
00057   SP_RAWFILE,                   
00058   SP_MIC,                       
00059   SP_ADINNET,                   
00060   SP_MFCFILE,                   
00061   SP_NETAUDIO,                  
00062   SP_STDIN,                     
00063   SP_MFCMODULE                  
00064 };
00065 
00067 enum {
00068   SP_INPUT_DEFAULT,
00069   SP_INPUT_ALSA,
00070   SP_INPUT_OSS,
00071   SP_INPUT_ESD,
00072 };
00073 
00075 #define DEFAULT_WSTEP 1000
00076 
00082 #ifdef HAVE_LIBSNDFILE
00083 #define SUPPORTED_WAVEFILE_FORMAT "RAW(BE),WAV,AU,SND,NIST,ADPCM and more"
00084 #else
00085 #define SUPPORTED_WAVEFILE_FORMAT "RAW(BE),WAV"
00086 #endif
00087 
00093 #define ZMEANSAMPLES 48000
00094 
00095 #define DS_RBSIZE       512     
00096 #define DS_BUFSIZE      256     
00097 #define DS_BUFSIZE_Y    512     
00098 
00102 typedef struct {
00103   int decrate;                  
00104   int intrate;                  
00105   double hdn[DS_RBSIZE+1];      
00106   int hdn_len;          
00107   int delay;            
00108   double x[DS_BUFSIZE]; 
00109   double y[DS_BUFSIZE_Y];       
00110   double rb[DS_RBSIZE]; 
00111   int indx;             
00112   int bp;               
00113   int count;            
00114 } DS_FILTER;
00119 typedef struct {
00120   DS_FILTER *fir[3]; 
00121   double *buf[4]; 
00122   int buflen; 
00123 } DS_BUFFER;
00124 
00129 typedef struct {
00130   int trigger;          
00131   int length;           
00132   int offset;           
00133   int zero_cross;               
00134   int is_trig;          
00135   int sign;                     
00136   int top;                      
00137   int valid_len;                
00138   SP16 *data;           
00139   int *is_zc;           
00140   int level;            
00141 } ZEROCROSS;
00142 
00143 #define ZC_UNDEF 2                      
00144 #define ZC_POSITIVE 1           
00145 #define ZC_NEGATIVE -1          
00146 
00147 /* adin/adin_mic_*.c */
00148 boolean adin_mic_standby(int freq, void *arg);
00149 boolean adin_mic_begin();
00150 boolean adin_mic_end();
00151 int adin_mic_read(SP16 *buf, int sampnum);
00152 /* adin/adin_mic_linux_alsa.c */
00153 boolean adin_alsa_standby(int freq, void *arg);
00154 boolean adin_alsa_begin();
00155 boolean adin_alsa_end();
00156 int adin_alsa_read(SP16 *buf, int sampnum);
00157 /* adin/adin_mic_linux_oss.c */
00158 boolean adin_oss_standby(int freq, void *arg);
00159 boolean adin_oss_begin();
00160 boolean adin_oss_end();
00161 int adin_oss_read(SP16 *buf, int sampnum);
00162 /* adin/adin_esd.c */
00163 boolean adin_esd_standby(int freq, void *arg);
00164 boolean adin_esd_begin();
00165 boolean adin_esd_end();
00166 int adin_esd_read(SP16 *buf, int sampnum);
00167 /* adin/adin_netaudio.c  and adin/adin_na.c */
00168 boolean adin_netaudio_standby(int freq, void *arg);
00169 boolean adin_netaudio_begin();
00170 boolean adin_netaudio_end();
00171 int adin_netaudio_read(SP16 *buf, int sampnum);
00172 int NA_standby(int, char *);
00173 void NA_start();
00174 void NA_stop();
00175 int NA_read(SP16 *buf, int sampnum);
00176 
00177 /* adin/adin_file.c */
00178 boolean adin_file_standby(int freq, void *arg);
00179 boolean adin_file_begin();
00180 int adin_file_read(SP16 *buf, int sampnum);
00181 boolean adin_file_end();
00182 boolean adin_stdin_standby(int freq, void *arg);
00183 boolean adin_stdin_begin();
00184 int adin_stdin_read(SP16 *buf, int sampnum);
00185 char *adin_file_get_current_filename();
00186 
00187 /* adin/adin_sndfile.c */
00188 #ifdef HAVE_LIBSNDFILE
00189 boolean adin_sndfile_standby(int freq, void *arg);
00190 boolean adin_sndfile_begin();
00191 int adin_sndfile_read(SP16 *buf, int sampnum);
00192 boolean adin_sndfile_end();
00193 char *adin_sndfile_get_current_filename();
00194 #endif
00195 
00196 /* adin/adin_tcpip.c */
00197 boolean adin_tcpip_standby(int freq, void *arg);
00198 boolean adin_tcpip_begin();
00199 boolean adin_tcpip_end();
00200 int adin_tcpip_read(SP16 *buf, int sampnum);
00201 boolean adin_tcpip_send_pause();
00202 boolean adin_tcpip_send_terminate();
00203 boolean adin_tcpip_send_resume();
00204 
00205 /* adin/zc-e.c */
00206 void init_count_zc_e(ZEROCROSS *zc, int length);
00207 void reset_count_zc_e(ZEROCROSS *zc, int c_trigger, int c_length, int c_offset);
00208 void free_count_zc_e(ZEROCROSS *zc);
00209 int count_zc_e(ZEROCROSS *zc, SP16 *buf,int step);
00210 void zc_copy_buffer(ZEROCROSS *zc, SP16 *newbuf, int *len);
00211 
00212 /* adin/zmean.c */
00213 void zmean_reset();
00214 void sub_zmean(SP16 *speech, int samplenum);
00215 
00216 /* adin/ds48to16.c */
00217 DS_BUFFER *ds48to16_new();
00218 void ds48to16_free(DS_BUFFER *ds);
00219 int ds48to16(SP16 *dst, SP16 *src, int srclen, int maxdstlen, DS_BUFFER *ds);
00220 
00221 #endif /* __SENT_ADIN__ */

Juliusに対してThu Jul 23 12:16:23 2009に生成されました。  doxygen 1.5.1