mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[1.29.10] Change the harmonic for formants 6,7,8 only at cycle quiet points, not every 64 cycles. This reduces noise clicks.
Fix agc, not applied correctly when echo is set. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@91 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
@@ -2710,6 +2710,7 @@
|
||||
ie (ntal I'E
|
||||
g) ie (n i:
|
||||
_sc) ie (n aI@
|
||||
?8 _sc) ie (n aIa2
|
||||
ie (nCiA I2'E
|
||||
fr) ie (nd E
|
||||
f) ie (nd i:
|
||||
|
||||
+3
-1
@@ -27,12 +27,12 @@
|
||||
hierar) ch (i C
|
||||
me) ch (a C
|
||||
te) ch (n C
|
||||
_pe) ch C
|
||||
pszi) ch C
|
||||
pszy) ch C
|
||||
mün) ch (en C
|
||||
maso) ch (istA C
|
||||
monar) ch (i C
|
||||
_pe) ch C
|
||||
szé) ch tS
|
||||
_zi) ch (y tS
|
||||
|
||||
@@ -224,6 +224,7 @@ _munká) s S
|
||||
_nyílá) s S
|
||||
_o) slo slo:
|
||||
_o) sló slo:
|
||||
tojá) s S
|
||||
|
||||
sz (öld Sz
|
||||
va) s (zabl S||
|
||||
@@ -299,6 +300,7 @@ vörösmar) ty ti
|
||||
má) zc (sz z
|
||||
mé) zc (sz z
|
||||
nehé) z (sé z
|
||||
pén) z z
|
||||
szá) z (sz z
|
||||
tű) z (sz z
|
||||
ví) z (sz z
|
||||
|
||||
@@ -276,6 +276,7 @@
|
||||
3 vdiph/0i_2 en_sc no en_wi
|
||||
3 vdiph2/e@ en_sc en_wi
|
||||
1 vdiph2/ea ro
|
||||
1 vdiph2/ei_3 en_wm
|
||||
1 vdiph2/eo ro
|
||||
1 vdiph2/e[u ro
|
||||
1 vdiph2/i@ en_n
|
||||
@@ -414,8 +415,8 @@
|
||||
1 vowel/@- base
|
||||
4 vowel/& en_rp fi hi sv
|
||||
4 vowel/0 base2 en hi pt
|
||||
4 vowel/0_2 en_n en_wm pt_pt sw
|
||||
4 vowel/0_3 en_us en_sc en_rp hu
|
||||
3 vowel/0_2 en_n pt_pt sw
|
||||
5 vowel/0_3 en_us en_sc en_rp en_wm hu
|
||||
2 vowel/@_2 fr
|
||||
2 vowel/&_2 en_us
|
||||
6 vowel/@_3 en_sc de hi
|
||||
@@ -444,14 +445,14 @@
|
||||
2 vowel/aa_8 en_us
|
||||
3 vowel/a_en en fr
|
||||
1 vowel/@_bck hi
|
||||
16 vowel/e base2 en en_n af cy eo fr hr it la pt pt_pt ++
|
||||
17 vowel/e base2 en en_n en_wm af cy eo fr hr it la pt ++
|
||||
2 vowel/e# en_sc
|
||||
7 vowel/e_2 en_sc de hi it sv no
|
||||
1 vowel/e_3 hu
|
||||
1 vowel/e_5 en_sc
|
||||
3 vowel/ee fr pl sv
|
||||
2 vowel/e_e en_sc is
|
||||
9 vowel/ee_1 base2 en en_n en_wm pl la sv no zhy
|
||||
8 vowel/ee_1 base2 en en_n pl la sv no zhy
|
||||
4 vowel/ee_2 en en_us cy nl
|
||||
1 vowel/ee#_2 sv
|
||||
4 vowel/ee_3 af pt vi
|
||||
@@ -567,7 +568,6 @@
|
||||
1 vwl_en_us/oor en_us
|
||||
3 vwl_en_us/or en_us en_sc
|
||||
1 vwl_en_us/ur en_us
|
||||
1 vwl_en_wm/i en_wm
|
||||
3 vwl_fr/@R fr pt_pt
|
||||
1 vwl_fr/@R2 fr_ca
|
||||
1 vwl_hi/A hi
|
||||
@@ -618,7 +618,7 @@
|
||||
1 w/wa base
|
||||
1 w/we base
|
||||
3 w/wi base vi zhy
|
||||
12 w/wi2 en en_n en_us en_sc en_rp en_wm de nl la sv no
|
||||
11 w/wi2 en en_n en_us en_sc en_rp de nl la sv no
|
||||
1 w/wo base
|
||||
1 w/wu base
|
||||
5 w/xw base
|
||||
|
||||
@@ -124,7 +124,7 @@ endphoneme
|
||||
|
||||
phoneme i:
|
||||
vowel starttype (i) endtype (i)
|
||||
length 175
|
||||
length 190
|
||||
formants vowel/i_fnt
|
||||
linkout ;
|
||||
endphoneme
|
||||
|
||||
@@ -26,7 +26,8 @@ endphoneme
|
||||
phoneme E
|
||||
vowel starttype (e) endtype (e)
|
||||
length 150
|
||||
formants vowel/ee_1
|
||||
formants vowel/e
|
||||
// formants vowel/ee_1
|
||||
reduceto I 0
|
||||
endphoneme
|
||||
|
||||
@@ -61,7 +62,7 @@ endphoneme
|
||||
phoneme 0
|
||||
vowel starttype (o) endtype (o)
|
||||
length 140
|
||||
formants vowel/0_2
|
||||
formants vowel/0_3
|
||||
reduceto @ 0
|
||||
endphoneme
|
||||
|
||||
@@ -125,10 +126,10 @@ endphoneme
|
||||
|
||||
|
||||
phoneme i:
|
||||
vowel starttype (i) endtype (i)
|
||||
vowel starttype (e) endtype (i)
|
||||
length 220
|
||||
formants vwl_en_wm/i
|
||||
after w w/wi2
|
||||
formants vdiph2/ei_3
|
||||
// after w w/wi2
|
||||
linkout ;
|
||||
endphoneme
|
||||
|
||||
@@ -162,7 +163,6 @@ phoneme u:
|
||||
vowel starttype (u) endtype (u)
|
||||
length 200
|
||||
formants vdiph/@u
|
||||
// before l/ vwl_en/u:L2-40+L/uL
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 37 KiB |
Binary file not shown.
Binary file not shown.
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.29.07 17.Sep.07";
|
||||
const char *version_string = "1.29.10 16.Oct.07";
|
||||
const int version_phdata = 0x012901;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+22
-4
@@ -824,10 +824,12 @@ static void WavegenSetEcho(void)
|
||||
echo_head = (delay * samplerate)/1000;
|
||||
echo_length = echo_head; // ensure completion of echo at the end of speech
|
||||
// echo_length = echo_head * 2; // perhaps allow 2 echo periods at the end of speech ?
|
||||
|
||||
// echo_amp units are 1/256ths of the amplitude of the original sound.
|
||||
echo_amp = amp;
|
||||
// compensate (partially) for increase in amplitude due to echo
|
||||
general_amplitude = GetAmplitude();
|
||||
general_amplitude = ((general_amplitude * (512-amp))/512);
|
||||
general_amplitude = ((general_amplitude * (500-amp))/500);
|
||||
} // end of WavegenSetEcho
|
||||
|
||||
|
||||
@@ -837,6 +839,8 @@ int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control)
|
||||
// Calculate the amplitude of each harmonics from the formants
|
||||
// Only for formants 0 to 5
|
||||
|
||||
// control 0=initial call, 1=every 64 cycles
|
||||
|
||||
// pitch and freqs are Hz<<16
|
||||
|
||||
int f;
|
||||
@@ -897,10 +901,15 @@ int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control)
|
||||
// find the nearest harmonic for HF peaks where we don't use shape
|
||||
for(; pk<N_PEAKS; pk++)
|
||||
{
|
||||
peak_harmonic[pk] = peaks[pk].freq / pitch;
|
||||
x = peaks[pk].height >> 14;
|
||||
peak_height[pk] = (x * x * 5)/2;
|
||||
|
||||
// find the nearest harmonic for HF peaks where we don't use shape
|
||||
if(control == 0)
|
||||
{
|
||||
// set this initially, but make changes only at the quiet point
|
||||
peak_harmonic[pk] = peaks[pk].freq / pitch;
|
||||
}
|
||||
// only use harmonics up to half the samplerate
|
||||
if(peak_harmonic[pk] >= hmax_samplerate)
|
||||
peak_height[pk] = 0;
|
||||
@@ -1110,6 +1119,7 @@ static int Wavegen()
|
||||
int h;
|
||||
int ix;
|
||||
int z, z1, z2;
|
||||
int echo;
|
||||
int ov;
|
||||
static int maxh, maxh2;
|
||||
int pk;
|
||||
@@ -1186,6 +1196,12 @@ static int Wavegen()
|
||||
|
||||
cycle_count++;
|
||||
|
||||
for(pk=wvoice->n_harmonic_peaks+1; pk<N_PEAKS; pk++)
|
||||
{
|
||||
// find the nearest harmonic for HF peaks where we don't use shape
|
||||
peak_harmonic[pk] = peaks[pk].freq / (pitch*16);
|
||||
}
|
||||
|
||||
// adjust amplitude to compensate for fewer harmonics at higher pitch
|
||||
amplitude2 = (amplitude * pitch)/(100 << 11);
|
||||
|
||||
@@ -1326,12 +1342,14 @@ static int Wavegen()
|
||||
}
|
||||
|
||||
z1 = z2 + (((total>>7) * amplitude2) >> 14);
|
||||
z = (z1 * agc) >> 8;
|
||||
|
||||
z += ((echo_buf[echo_tail++] * echo_amp) >> 8);
|
||||
echo = (echo_buf[echo_tail++] * echo_amp);
|
||||
z1 += echo >> 8;
|
||||
if(echo_tail >= N_ECHO_BUF)
|
||||
echo_tail=0;
|
||||
|
||||
z = (z1 * agc) >> 8;
|
||||
|
||||
// check for overflow, 16bit signed samples
|
||||
if(z >= 32768)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user