diff options
Diffstat (limited to 'festival-2.4-compat.patch')
-rw-r--r-- | festival-2.4-compat.patch | 365 |
1 files changed, 365 insertions, 0 deletions
diff --git a/festival-2.4-compat.patch b/festival-2.4-compat.patch new file mode 100644 index 000000000000..17f9093d5290 --- /dev/null +++ b/festival-2.4-compat.patch @@ -0,0 +1,365 @@ +diff -Naur festival.orig/src/modules/clustergen/HTS_vocoder_me.cc festival/src/modules/clustergen/HTS_vocoder_me.cc +--- festival.orig/src/modules/clustergen/HTS_vocoder_me.cc 2013-02-18 16:10:50.000000000 +0100 ++++ festival/src/modules/clustergen/HTS_vocoder_me.cc 2015-07-28 18:25:52.846670680 +0200 +@@ -90,8 +90,9 @@ + + HTS_VOCODER_ME_C_START; + ++#include <math.h> + #include "./HTS_vocoder_me.h" +-#include "../hts_engine/HTS_vocoder.c" ++#include "../hts_engine/HTS_vocoder.h" + + /* HTS_Vocoder_initialize_me: initialize vocoder (mixed excitation) */ + void HTS_Vocoder_initialize_me(HTS_Vocoder_ME * v_me, +diff -Naur festival.orig/src/modules/hts_engine/HTS_vocoder.c festival/src/modules/hts_engine/HTS_vocoder.c +--- festival.orig/src/modules/hts_engine/HTS_vocoder.c 2013-02-18 16:10:52.000000000 +0100 ++++ festival/src/modules/hts_engine/HTS_vocoder.c 2015-07-28 18:26:22.680173336 +0200 +@@ -57,10 +57,12 @@ + + #include <math.h> /* for sqrt(),log(),exp(),pow(),cos() */ + ++//#include "HTS_vocoder.h" ++ + /* hts_engine libraries */ + #include "HTS_hidden.h" + +-static const double HTS_pade[21] = { ++const double HTS_pade[21] = { + 1.00000000000, + 1.00000000000, + 0.00000000000, +@@ -85,7 +87,7 @@ + }; + + /* HTS_movem: move memory */ +-static void HTS_movem(double *a, double *b, const int nitem) ++void HTS_movem(double *a, double *b, const int nitem) + { + long i = (long) nitem; + +@@ -101,7 +103,7 @@ + } + + /* HTS_mlsafir: sub functions for MLSA filter */ +-static double HTS_mlsafir(const double x, const double *b, const int m, const double a, const double aa, double *d) ++double HTS_mlsafir(const double x, const double *b, const int m, const double a, const double aa, double *d) + { + double y = 0.0; + int i; +@@ -122,7 +124,7 @@ + } + + /* HTS_mlsadf1: sub functions for MLSA filter */ +-static double HTS_mlsadf1(double x, const double *b, const int m, const double a, const double aa, const int pd, double *d, const double *ppade) ++double HTS_mlsadf1(double x, const double *b, const int m, const double a, const double aa, const int pd, double *d, const double *ppade) + { + double v, out = 0.0, *pt; + int i; +@@ -144,7 +146,7 @@ + } + + /* HTS_mlsadf2: sub functions for MLSA filter */ +-static double HTS_mlsadf2(double x, const double *b, const int m, const double a, const double aa, const int pd, double *d, const double *ppade) ++double HTS_mlsadf2(double x, const double *b, const int m, const double a, const double aa, const int pd, double *d, const double *ppade) + { + double v, out = 0.0, *pt; + int i; +@@ -166,7 +168,7 @@ + } + + /* HTS_mlsadf: functions for MLSA filter */ +-static double HTS_mlsadf(double x, const double *b, const int m, const double a, const int pd, double *d) ++double HTS_mlsadf(double x, const double *b, const int m, const double a, const int pd, double *d) + { + const double aa = 1 - a * a; + const double *ppade = &(HTS_pade[pd * (pd + 1) / 2]); +@@ -178,7 +180,7 @@ + } + + /* HTS_rnd: functions for random noise generation */ +-static double HTS_rnd(unsigned long *next) ++double HTS_rnd(unsigned long *next) + { + double r; + +@@ -189,7 +191,7 @@ + } + + /* HTS_nrandom: functions for gaussian random noise generation */ +-static double HTS_nrandom(HTS_Vocoder * v) ++double HTS_nrandom(HTS_Vocoder * v) + { + if (v->sw == 0) { + v->sw = 1; +@@ -207,7 +209,7 @@ + } + + /* HTS_mceq: function for M-sequence random noise generation */ +-static int HTS_mseq(HTS_Vocoder * v) ++int HTS_mseq(HTS_Vocoder * v) + { + int x0, x28; + +@@ -229,7 +231,7 @@ + } + + /* HTS_mc2b: transform mel-cepstrum to MLSA digital fillter coefficients */ +-static void HTS_mc2b(double *mc, double *b, int m, const double a) ++void HTS_mc2b(double *mc, double *b, int m, const double a) + { + if (mc != b) { + if (a != 0.0) { +@@ -244,7 +246,7 @@ + } + + /* HTS_b2bc: transform MLSA digital filter coefficients to mel-cepstrum */ +-static void HTS_b2mc(const double *b, double *mc, int m, const double a) ++void HTS_b2mc(const double *b, double *mc, int m, const double a) + { + double d, o; + +@@ -257,7 +259,7 @@ + } + + /* HTS_freqt: frequency transformation */ +-static void HTS_freqt(HTS_Vocoder * v, const double *c1, const int m1, double *c2, const int m2, const double a) ++void HTS_freqt(HTS_Vocoder * v, const double *c1, const int m1, double *c2, const int m2, const double a) + { + int i, j; + const double b = 1 - a * a; +@@ -287,7 +289,7 @@ + } + + /* HTS_c2ir: The minimum phase impulse response is evaluated from the minimum phase cepstrum */ +-static void HTS_c2ir(const double *c, const int nc, double *h, const int leng) ++void HTS_c2ir(const double *c, const int nc, double *h, const int leng) + { + int n, k, upl; + double d; +@@ -303,7 +305,7 @@ + } + + /* HTS_b2en: calculate frame energy */ +-static double HTS_b2en(HTS_Vocoder * v, const double *b, const int m, const double a) ++double HTS_b2en(HTS_Vocoder * v, const double *b, const int m, const double a) + { + int i; + double en = 0.0; +@@ -330,7 +332,7 @@ + } + + /* HTS_ignorm: inverse gain normalization */ +-static void HTS_ignorm(double *c1, double *c2, int m, const double g) ++void HTS_ignorm(double *c1, double *c2, int m, const double g) + { + double k; + if (g != 0.0) { +@@ -345,7 +347,7 @@ + } + + /* HTS_gnorm: gain normalization */ +-static void HTS_gnorm(double *c1, double *c2, int m, const double g) ++void HTS_gnorm(double *c1, double *c2, int m, const double g) + { + double k; + if (g != 0.0) { +@@ -360,7 +362,7 @@ + } + + /* HTS_lsp2lpc: transform LSP to LPC */ +-static void HTS_lsp2lpc(HTS_Vocoder * v, double *lsp, double *a, const int m) ++void HTS_lsp2lpc(HTS_Vocoder * v, double *lsp, double *a, const int m) + { + int i, k, mh1, mh2, flag_odd; + double xx, xf, xff; +@@ -451,7 +453,7 @@ + } + + /* HTS_gc2gc: generalized cepstral transformation */ +-static void HTS_gc2gc(HTS_Vocoder * v, double *c1, const int m1, const double g1, double *c2, const int m2, const double g2) ++void HTS_gc2gc(HTS_Vocoder * v, double *c1, const int m1, const double g1, double *c2, const int m2, const double g2) + { + int i, min, k, mk; + double ss1, ss2, cc; +@@ -484,7 +486,7 @@ + } + + /* HTS_mgc2mgc: frequency and generalized cepstral transformation */ +-static void HTS_mgc2mgc(HTS_Vocoder * v, double *c1, const int m1, const double a1, const double g1, double *c2, const int m2, const double a2, const double g2) ++void HTS_mgc2mgc(HTS_Vocoder * v, double *c1, const int m1, const double a1, const double g1, double *c2, const int m2, const double a2, const double g2) + { + double a; + +@@ -502,7 +504,7 @@ + } + + /* HTS_lsp2mgc: transform LSP to MGC */ +-static void HTS_lsp2mgc(HTS_Vocoder * v, double *lsp, double *mgc, const int m, const double alpha) ++void HTS_lsp2mgc(HTS_Vocoder * v, double *lsp, double *mgc, const int m, const double alpha) + { + int i; + /* lsp2lpc */ +@@ -531,7 +533,7 @@ + } + + /* HTS_mglsadff: sub functions for MGLSA filter */ +-static double HTS_mglsadff(double x, const double *b, const int m, const double a, double *d) ++double HTS_mglsadff(double x, const double *b, const int m, const double a, double *d) + { + int i; + +@@ -550,7 +552,7 @@ + } + + /* HTS_mglsadf: sub functions for MGLSA filter */ +-static double HTS_mglsadf(double x, const double *b, const int m, const double a, const int n, double *d) ++double HTS_mglsadf(double x, const double *b, const int m, const double a, const int n, double *d) + { + int i; + +@@ -561,7 +563,7 @@ + } + + /* THS_check_lsp_stability: check LSP stability */ +-static void HTS_check_lsp_stability(double *lsp, size_t m) ++void HTS_check_lsp_stability(double *lsp, size_t m) + { + size_t i, j; + double tmp; +@@ -595,7 +597,7 @@ + } + + /* HTS_lsp2en: calculate frame energy */ +-static double HTS_lsp2en(HTS_Vocoder * v, double *lsp, size_t m, double alpha) ++double HTS_lsp2en(HTS_Vocoder * v, double *lsp, size_t m, double alpha) + { + size_t i; + double en = 0.0; +@@ -632,7 +634,7 @@ + } + + /* HTS_white_noise: return white noise */ +-static double HTS_white_noise(HTS_Vocoder * v) ++double HTS_white_noise(HTS_Vocoder * v) + { + if (v->gauss) + return (double) HTS_nrandom(v); +@@ -641,7 +643,7 @@ + } + + /* HTS_ping_pulse: ping pulse using low-pass filter */ +-static void HTS_ping_pulse(HTS_Vocoder * v, const int ping_place, const double p, const int nlpf, const double *lpf) ++void HTS_ping_pulse(HTS_Vocoder * v, const int ping_place, const double p, const int nlpf, const double *lpf) + { + int i, j; + const double power = sqrt(p); +@@ -652,7 +654,7 @@ + } + + /* HTS_ping_noise: ping noise using low-pass filter */ +-static void HTS_ping_noise(HTS_Vocoder * v, const int ping_place, const int nlpf, const double *lpf) ++void HTS_ping_noise(HTS_Vocoder * v, const int ping_place, const int nlpf, const double *lpf) + { + int i, j; + const double power = HTS_white_noise(v); +@@ -667,7 +669,7 @@ + } + + /* HTS_Vocoder_initialize_excitation: initialize excitation */ +-static void HTS_Vocoder_initialize_excitation(HTS_Vocoder * v, size_t nlpf) ++void HTS_Vocoder_initialize_excitation(HTS_Vocoder * v, size_t nlpf) + { + size_t i; + +@@ -684,7 +686,7 @@ + } + + /* HTS_Vocoder_start_excitation: start excitation of each frame */ +-static void HTS_Vocoder_start_excitation(HTS_Vocoder * v, const double pitch, const int nlpf) ++void HTS_Vocoder_start_excitation(HTS_Vocoder * v, const double pitch, const int nlpf) + { + if (v->p1 != 0.0 && pitch != 0.0) + v->inc = (pitch - v->p1) * IPERIOD / v->fprd; +@@ -699,7 +701,7 @@ + } + + /* HTS_Vocoder_get_excitation: get excitation of each sample */ +-static double HTS_Vocoder_get_excitation(HTS_Vocoder * v, const int fprd_index, const int iprd_index, const int nlpf, const double *lpf) ++double HTS_Vocoder_get_excitation(HTS_Vocoder * v, const int fprd_index, const int iprd_index, const int nlpf, const double *lpf) + { + double x; + int i, j; +@@ -755,7 +757,7 @@ + } + + /* HTS_Vocoder_end_excitation: end excitation of each frame */ +-static void HTS_Vocoder_end_excitation(HTS_Vocoder * v, const int nlpf) ++void HTS_Vocoder_end_excitation(HTS_Vocoder * v, const int nlpf) + { + int i; + +@@ -771,7 +773,7 @@ + } + + /* HTS_Vocoder_postfilter_mcp: postfilter for MCP */ +-static void HTS_Vocoder_postfilter_mcp(HTS_Vocoder * v, double *mcp, const int m, double alpha, double beta) ++void HTS_Vocoder_postfilter_mcp(HTS_Vocoder * v, double *mcp, const int m, double alpha, double beta) + { + double e1, e2; + int k; +@@ -797,7 +799,7 @@ + } + + /* HTS_Vocoder_postfilter_lsp: postfilter for LSP */ +-static void HTS_Vocoder_postfilter_lsp(HTS_Vocoder * v, double *lsp, size_t m, double alpha, double beta) ++void HTS_Vocoder_postfilter_lsp(HTS_Vocoder * v, double *lsp, size_t m, double alpha, double beta) + { + double e1, e2; + size_t i; +diff -Naur festival.orig/src/modules/hts_engine/HTS_vocoder.h festival/src/modules/hts_engine/HTS_vocoder.h +--- festival.orig/src/modules/hts_engine/HTS_vocoder.h 1970-01-01 01:00:00.000000000 +0100 ++++ festival/src/modules/hts_engine/HTS_vocoder.h 2015-07-28 18:21:15.431802892 +0200 +@@ -0,0 +1,42 @@ ++#ifndef HTS_VOCODER_H ++#define HTS_VOCODER_H ++ ++/* hts_engine libraries */ ++#include "HTS_hidden.h" ++ ++void HTS_Vocoder_clear(HTS_Vocoder *v); ++void HTS_Vocoder_synthesize(HTS_Vocoder *v,size_t m,double lf0,double *spectrum,size_t nlpf,double *lpf,double alpha,double beta,double volume,double *rawdata,HTS_Audio *audio); ++void HTS_Vocoder_initialize(HTS_Vocoder *v,size_t m,size_t stage,HTS_Boolean use_log_gain,size_t rate,size_t fperiod); ++void HTS_Vocoder_postfilter_lsp(HTS_Vocoder *v,double *lsp,size_t m,double alpha,double beta); ++void HTS_Vocoder_postfilter_mcp(HTS_Vocoder *v,double *mcp,const int m,double alpha,double beta); ++void HTS_Vocoder_end_excitation(HTS_Vocoder *v,const int nlpf); ++double HTS_Vocoder_get_excitation(HTS_Vocoder *v,const int fprd_index,const int iprd_index,const int nlpf,const double *lpf); ++void HTS_Vocoder_start_excitation(HTS_Vocoder *v,const double pitch,const int nlpf); ++void HTS_Vocoder_initialize_excitation(HTS_Vocoder *v,size_t nlpf); ++void HTS_ping_noise(HTS_Vocoder *v,const int ping_place,const int nlpf,const double *lpf); ++void HTS_ping_pulse(HTS_Vocoder *v,const int ping_place,const double p,const int nlpf,const double *lpf); ++double HTS_white_noise(HTS_Vocoder *v); ++double HTS_lsp2en(HTS_Vocoder *v,double *lsp,size_t m,double alpha); ++void HTS_check_lsp_stability(double *lsp,size_t m); ++double HTS_mglsadf(double x,const double *b,const int m,const double a,const int n,double *d); ++double HTS_mglsadff(double x,const double *b,const int m,const double a,double *d); ++void HTS_lsp2mgc(HTS_Vocoder *v,double *lsp,double *mgc,const int m,const double alpha); ++void HTS_mgc2mgc(HTS_Vocoder *v,double *c1,const int m1,const double a1,const double g1,double *c2,const int m2,const double a2,const double g2); ++void HTS_gc2gc(HTS_Vocoder *v,double *c1,const int m1,const double g1,double *c2,const int m2,const double g2); ++void HTS_lsp2lpc(HTS_Vocoder *v,double *lsp,double *a,const int m); ++void HTS_gnorm(double *c1,double *c2,int m,const double g); ++void HTS_ignorm(double *c1,double *c2,int m,const double g); ++double HTS_b2en(HTS_Vocoder *v,const double *b,const int m,const double a); ++void HTS_c2ir(const double *c,const int nc,double *h,const int leng); ++void HTS_freqt(HTS_Vocoder *v,const double *c1,const int m1,double *c2,const int m2,const double a); ++void HTS_b2mc(const double *b,double *mc,int m,const double a); ++void HTS_mc2b(double *mc,double *b,int m,const double a); ++int HTS_mseq(HTS_Vocoder *v); ++double HTS_nrandom(HTS_Vocoder *v); ++double HTS_rnd(unsigned long *next); ++double HTS_mlsadf(double x,const double *b,const int m,const double a,const int pd,double *d); ++double HTS_mlsadf2(double x,const double *b,const int m,const double a,const double aa,const int pd,double *d,const double *ppade); ++double HTS_mlsadf1(double x,const double *b,const int m,const double a,const double aa,const int pd,double *d,const double *ppade); ++double HTS_mlsafir(const double x,const double *b,const int m,const double a,const double aa,double *d); ++void HTS_movem(double *a,double *b,const int nitem); ++#endif |