SPRAAK
|
Data Structures | |
struct | SprAGCInfo |
struct | SprSDFX |
struct | SprSDKD |
Enumerations | |
enum | { SPR_FB_WARP_LIN1, SPR_FB_WARP_LIN2, SPR_FB_NWARPMETHOD } |
Functions | |
int | spr_agc_connect (SprSspDesc *ssp_des, const char *agc_name, void(*func)(SprAGCInfo *), void *ext_info, int query_sz[5]) |
void | spr_aut2lpc_levinson (float spr_autocorr[], float refl_coeff[], float LPC_filter[], int order, float LPC_filter_old[]) |
void | spr_autocorr (const float in[], int nparam, float out[], int ncorr) |
void | spr_crosscorr (float in[], float in2[], int nparam, float cr[], float cl[], int ncorr) |
int spr_agc_connect | ( | SprSspDesc * | ssp_des, |
const char * | agc_name, | ||
void(*)(SprAGCInfo *) | func, | ||
void * | ext_info, | ||
int | query_sz[5] | ||
) |
Install a function func to interprete the histogram for the AGC with name agc_name. This function may update the record volume (or whatever parameter controls the range of the input data), but this must be reported back by setting the gain_adapt in the AGCinfo structure ext_info to 1.0/gain, with gain the linear gain change corresponding to the adjustment of the record volume.
If the query_sz parameter is not NULL, the following information is returned as well: query_sz = {Nsamples_per_frame, nfr_per_fragment, nfrag_per_hist, nskipa, nskips}
void spr_aut2lpc_levinson | ( | float | spr_autocorr[], |
float | refl_coeff[], | ||
float | LPC_filter[], | ||
int | order, | ||
float | LPC_filter_old[] | ||
) |
Convert autocorrelation coefficients autocorr[0..order] to reflection coefficients refl_coeff[1..order] and lpc filter coefficients LPC_filter1..order. The coefficient zero of all those vectors are filled in as follows:
void spr_autocorr | ( | const float | in[], |
int | nparam, | ||
float | out[], | ||
int | ncorr | ||
) |
Calculate the normalised autocorrelation coeffients from a time domain signal. It computes ncorr+1 autocorrelation coefficients out[0]...out[Lr] on time series in[0]...in[n-1]. Note by JD: gamma removed, adjustment for taking into account the energy scaling when placing a window, is now done in the windowing routines themselves.
void spr_crosscorr | ( | float | in[], |
float | in2[], | ||
int | nparam, | ||
float | cr[], | ||
float | cl[], | ||
int | ncorr | ||
) |
Compute ncorr+1 left and right crosscorrelation coefficients cl[0]...[ncorr] and cr[0]...[ncorr] on time series in[0]...in[nparam-1] (move in) and in2[0]...in2[nparam-1].