[zxspectrum] Re: ZX ItaSpeak 1.2

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxx>
  • To: "zxspectrum@xxxxxxxxxxxxx" <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sat, 12 Nov 2016 21:08:21 +0100

Il giorno 12 novembre 2016 10:50, Luca Alimandi <luca.alimandi62@xxxxxxxxxxx

ha scritto:


Ho già lavorato un sacco su questo aspetto, soprattutto sulle parti
iniziali e finali di ogni fonema.
Ho applicato quasi a tutti un fade-in e un fade-out, in modo che la
congiuntura con i fonemi "confinanti" fosse il più possibile dolce e
lineare.
Forse si può fare ancora qualcosa, ma se si esagera, poi si creano altri
problemi.
In particolare si rischia di avere un eccessivo stacco temporale tra i
fonemi che non migliora le cose.

Di fatto, volendo fare le cose come si deve, si dovrebbero usare i difoni,
che in pratica sono una gamma più completa di fonemi già "accoppiati" ,
perché nella voce umana i fonemi sono in parte sovrapposti più che
perfettamente contigui. In altre parole la transizione dalla "L" alla "A"
della sillaba "la" non è uguale alla transizione dalla "L" alla "E" della
sillaba "le", ecc.

Infatti mi era venuta un'idea: fare in modo che invece di una transizione
secca da un fonema al successivo, ci fosse una specie di fade incrociato,
una dissolvenza, ma implica una serie di fattori che non so bene come
implementare e quanto sarebbero realmente utili.
In primo luogo dovrei probabilmente utilizzare campioni in formato
"signed". In questo modo potrei effettuare la somma tra gli ultimi campioni
del fonema "uscente" e i primi campioni del fonema "entrante". Poi dovrei
organizzare una sorta di predizione e stabilire con un certo anticipo (ad
esempio 10 o 20 campioni) quando iniziare a sommare prima di mandare in
output il valore risultante. Non so se effettuando una somma (seppure
algebrica) la forma d'onda risultante potrebbe venire distorta, e dovrei in
ogni caso gestire l'overflow (clipping), per cui aumentano i tempi di
elaborazione e probabilmente l'effetto finale non sarebbe poi così
diverso...


Azz... rinnovo i miei complimenti, comunque! :-D

Max

Other related posts: