summarylogtreecommitdiffstats
path: root/festival-2.4-compat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'festival-2.4-compat.patch')
-rw-r--r--festival-2.4-compat.patch365
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