--- a/cvoicecontrol/audio.c +++ b/cvoicecontrol/audio.c @@ -32,6 +32,10 @@ int is_open = 0; +int fd_audio; +char *dev_audio; +signed short rec_level, stop_level, silence_level; + /******************************************************************************** * set name of audio device ********************************************************************************/ --- a/cvoicecontrol/audio.h +++ b/cvoicecontrol/audio.h @@ -31,8 +31,8 @@ #define CONSECUTIVE_SPEECH_BLOCKS_THRESHOLD 3 #define CONSECUTIVE_NONSPEECH_BLOCKS_THRESHOLD 5 -int fd_audio; -char *dev_audio; +extern int fd_audio; +extern char *dev_audio; /******************************************************************************** * For now, microphone input level is used to start and stop recording @@ -43,7 +43,7 @@ * silence_level average micro level of silence ********************************************************************************/ -signed short rec_level, stop_level, silence_level; +extern signed short rec_level, stop_level, silence_level; typedef struct { --- a/cvoicecontrol/cvoicecontrol.c +++ b/cvoicecontrol/cvoicecontrol.c @@ -38,6 +38,8 @@ #include #endif +#include + #include "cvoicecontrol.h" #include "model.h" @@ -53,6 +55,10 @@ #include "mixer.h" #include "preprocess.h" +int adjust_window_width; +int sloppy_corner; +float float_max; + Model *model; /***** speaker model */ Queue queue1; /***** thread-safe queue used to hand data from 'recording' to 'preprocessing' */ @@ -341,7 +347,7 @@ * calculate euklidian distance of two feature vectors ********************************************************************************/ -inline float euklid_distance(float *a, float *b) +float euklid_distance(float *a, float *b) { float result = 0; /***** resulting distance */ int i; --- a/cvoicecontrol/cvoicecontrol.h +++ b/cvoicecontrol/cvoicecontrol.h @@ -66,7 +66,7 @@ * * Legend: w = adjust_window_width */ -int adjust_window_width; +extern int adjust_window_width; /* * strictly speaking, time-alignment in the DTW matrix starts @@ -87,19 +87,19 @@ * * Legend: x = distance value, o = (infinity) */ -int sloppy_corner; +extern int sloppy_corner; /***** time alignment scores must stay below this value otherwise the according samples are ignored in the further evaluation process *****/ -float score_threshold; +extern float score_threshold; /***** a (very high) float value that is considered "infinity" *****/ -float float_max; +extern float float_max; /***** these macros are used in the DTW warping function to calculate the maximum/minimum of two or three --- a/cvoicecontrol/microphone_config.c +++ b/cvoicecontrol/microphone_config.c @@ -1099,8 +1099,6 @@ free(command); } fclose(f); - - free(home); } else /***** couldn't retrieve home directory -> store results in /tmp/ */ { --- a/cvoicecontrol/mixer.c +++ b/cvoicecontrol/mixer.c @@ -30,6 +30,9 @@ char *dev_mixer = NULL; +int mic_level; +int igain_level; + /******************************************************************************** * set mixer device name ********************************************************************************/ --- a/cvoicecontrol/mixer.h +++ b/cvoicecontrol/mixer.h @@ -37,7 +37,7 @@ #define MIXER_ERR -1 #define MIXER_OK 1 -int mic_level; -int igain_level; +extern int mic_level; +extern int igain_level; #endif --- a/cvoicecontrol/preprocess.c +++ b/cvoicecontrol/preprocess.c @@ -23,6 +23,13 @@ int i,j; /***** counter variables */ +int filter_banks[17]; +float power_spec[POWER_SPEC_SIZE]; +float hamming_window[HAMMING_SIZE]; +int do_mean_sub; +float channel_mean[FEAT_VEC_SIZE]; +float score_threshold; + /******************************************************************************** * initialize preprocessing s tuff ********************************************************************************/ --- a/cvoicecontrol/preprocess.h +++ b/cvoicecontrol/preprocess.h @@ -51,12 +51,12 @@ /***** used for reduction of short-time spectrum to mel scale coefficients *****/ -int filter_banks[17]; +extern int filter_banks[17]; /***** contains the power spectrum *****/ -float power_spec[POWER_SPEC_SIZE]; +extern float power_spec[POWER_SPEC_SIZE]; /******************************************************************************** * Hamming window width = 16ms ! (256 Frames) @@ -68,15 +68,15 @@ * to reduce the number of artefacts in the power spectrum ********************************************************************************/ -float hamming_window[HAMMING_SIZE]; +extern float hamming_window[HAMMING_SIZE]; /***** The characteristics of the recording channel This is substracted from each feature vector to reduce channel effects *****/ -int do_mean_sub; -float channel_mean[FEAT_VEC_SIZE]; +extern int do_mean_sub; +extern float channel_mean[FEAT_VEC_SIZE]; int initPreprocess(); --- a/cvoicecontrol/semaphore.c +++ b/cvoicecontrol/semaphore.c @@ -26,6 +26,7 @@ ****************************************************************************/ #include "semaphore.h" +#include /******************************************************************************** * function must be called prior to semaphore use.