[zxspectrum] R: Re: ZX Spectrum ItaSpeak 1.0 - Demo WAV

  • From: "Simone Voltolini" <simone.voltolini@xxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 25 Sep 2016 17:09:11 +0200

Stupendo!!!!!!!!!!!!!!!!!!!!!!!!!







Kora Sistemi Informatici
Via Cavour 1, 46030 San Giorgio di Mantova MN
Tel/Fax +39 0376 371059
P. IVA: 02048930206





-----Messaggio originale-----
Da: zxspectrum-bounce@xxxxxxxxxxxxx [mailto:zxspectrum-bounce@xxxxxxxxxxxxx]
Per conto di Luca Alimandi
Inviato: domenica 25 settembre 2016 16:48
A: zxspectrum@xxxxxxxxxxxxx
Oggetto: [zxspectrum] Re: ZX Spectrum ItaSpeak 1.0 - Demo WAV

Il 25/09/2016 10:25, Enrico Maria Giordano ha scritto:



Il 25/09/2016 01:55, Luca Alimandi ha scritto:

Mi farà piacere ricevere le vostre opinioni, ed eventuali idee in 
merito! ;-)

Ecco il file:
https://drive.google.com/file/d/0B2gTtPKDTuD_cFBscEVTWHNDVk0/view?usp
=sharing



P.S. Un premio per chi riesce a capire e trascrivere tutta la frase!

Uhm... secondo me è molto migliorabile. Come prima cosa mi sembra che 
alcuni dei fonemi producano dei click o toc molto fastidiosi che 
confondono completamente il risultato. Inoltre forse ci sono dei 
fonemi troppo simili che causano una specie di eco altrettanto 
deleterio per la comprensione. Vedi tu se da questi due suggerimenti 
puoi trarre qualcosa.

Detto questo... complimenti!!! :-)

EMG

Grazie!
Giuste osservazioni. Infatti da mesi sto proprio cercando di migliorare
anche i fonemi e li ho cambiati parecchio da quando ho iniziato. I risultati
sono buoni, ma non ancora del tutto soddisfacenti, come si nota. :-(

Vuol dire che cercherò di migliorarli ancora, anche se ultimamente mi sono
dedicato di più alla simulazione della prosodia (la modulazione del tono
lungo una frase), ossia cerco di fornire una intonazione variabile durante
l'arco di una frase in modo da diminuire l'effetto "cantilena", dare "corpo"
alle parole, rendere un tono diverso alle pause, alla punteggiatura, alle
domande e alle esclamazioni... Tutte cose che, nel complesso, migliorano la
comprensione, e qualche buon risultato l'ho già ottenuto, credo... Però
ancora non basta. In teoria si dovrebbe analizzare a priori un'intera frase,
individuarne alcune caratteristiche (lunghezza, pause già insite o da
applicare secondo determinate logiche,
ecc.) e decidere che tipo di prosodia applicare. In genere tutto ciòviene
fatto con tecniche molto complesse (trasformate e diavolerie matematiche
simili), troppo onerose per stare nei tempi accettabili per una sintesi "al
volo" come quella che sto cercando di ottenere sullo Spectrum.

C'è poi un limite non superabile con la semplice tecnica della
"concatenazione" dei fonemi. Infatti le sintesi professionali usano difoni
al posto dei singoli fonemi, il che migliora di molto la qualità del
parlato, ma aumenta enormemente il numero e la lunghezza dei campioni da
acquisire, per cui, anche rimanendo sugli 8 bit campionati alla frequenza di
4 KHz (quella che ho adottato io) dovrei passare da un insieme di 30-35
fonemi per circa 12 K (che è già tantino per lo
Spectrum!) ad un insieme di almeno 200-400 difoni per un totale di circa
300 K; senza considerare il tempo enormemente più lungo per ricampionare i
difoni.

Tanto per intenderci, mentre con i fonemi mi limito a campionare i singoli
suoni "l", "m", "a", "e", ecc, per campionare i difoni devo considerare
tutte  le combinazioni utili; per esempio: "la", "le", "li", "lo",
"lu","ma", "me", ecc., più molti suoni complessi, come le doppie "lla",
"lle", ecc. o i vari "gli", "gno", "qui", "scia", "sgu", ecc. 
ecc.!!! Un lavoro improponibile senza strumenti adeguati e sofisticati. 
Ecco perché in genere le sintesi sono frutto di anni di lavoro di equipe in
laboratori attrezzatissimi! :-$

E poi anche sugli altri fronti (prosodia, preanalisi del testo, ecc.) sto
percorrendo strade "alternative", poco ortodosse, ma che mi permettono di
ottenere qualche risultato interessante senza impegnare eccessive risorse e
tempi di elaborazione.  Ma i risultati ne risentono!...

Fortunatamente l'italiano è una lingua abbastanza semplice da trasformare
dallo scritto al parlato! :-D Ad esempio in molte lingue la stessa sequenza
di lettere ha suoni diversi all'interno di parole diverse, come la doppia
"oo" in inglese, che può essere pronunciata come "oo" in alcune parole (da
esempio "door"), ma anche "u" in altre (come in "book"); e questo complica
l'elaborazione. Già l'inglese da questo punto di vista è abbastanza
complesso, ma credo che ci siano lingue in questo diventa ancora più
complesso (forse quelle orientali...).

Comunque anche in italiano abbiamo qualche situazione di questo tipo (come
la "z" dolce di "zanzara" o dura di "pezzo"). Sembra non ci siano delle
regole certe, e quelle indicate nei libri di fonetica sono alquanto
arzigogolate Alla fine la cosa più facile sarebbe avere un vocabolario,
magari delle parole più comuni, con associata la pronuncia da usare.
La cosa si complica considerando che le regole di pronuncia possono variare
da regione a regione!

Al momento non ho implementato un algoritmo per decidere se la "z" in una
parola è dolce o dura, per cui uso sempre la stassa "z" (anche se il fonema
è un po' una via di mezzo tra la dolce e la dura). Ma questo crea effetti
buffi, ad esempio nelle parole "grazie" e "realizzazione", che con il fonema
adottato sembra pronunciato da un pugliese! Infatti nella frase di test
credo che non le abbia colte nessuno! :-D

Comunque non demordo, e finché ho anche la minima possibilità di
miglioramento, cercherò di ottenerla. La sfida (e il divertimento) sta
proprio in questo! ;-)


-- 

|_ /-\



Other related posts:

  • » [zxspectrum] R: Re: ZX Spectrum ItaSpeak 1.0 - Demo WAV - Simone Voltolini