Laboratorio di analisi pitch / formanti usando
WaveSurfer
Per le definizioni delle grandezze (e dei fenomeni) qui citati, e per
il download del programma WaveSurfer, si veda la pagina sulla
voce
e le sue caratteristiche timbriche.
Per le prove qui suggerite occorre prima di tutto procurarsi un file
di vocali. Ad esempio, registrando se stessi mentre si pronunciano delle
vocali spaziate. Si suggerisce di registrare una versione solo
pronunciata, ed una solo cantata, magari a diverse intonazioni. Iniziare
con un file breve, sopratutto se si ha a disposizione una macchina non
potente. Una volta appreso l'utilizzo di WaveSurfer, niente vieta di
fare prove con strumenti musicali. I più indicati sono i fiati e gli
archi, per la presenza di formanti (dovuti alla cassa o alla canna o
alla campana).
WaveSurfer è multipiattaforma, e pertanto nel seguito si cercherà
di usare una terminologia multipiattaforma, o almeno valida sia per
Windows, sia per MacOS. Questo andrà ovviamente lievemente a scapito
della precisione.
Anzitutto installate WaveSurfer. Si tratta di un'installazione sui
generis, perché in realtà basta scompattare l'eseguibile dovunque si
desideri per essere pronti all'uso. Create una cartella (folder)
in un posto sensato, e piazzateci dentro l'eseguibile wavesurfer. Create
un link (collegamento, alias) all'eseguibile sul desktop, in modo da
potere lanciare WaveSurfer comodamente.
Questo è WaveSurfer appena aperto:
Tenete presente che WSRF (così abbrevieremo WaveSurfer nel futuro)
è un'applicazione configurabile, ovvero adattabile al tipo di
lavoro che si desidera fare.
Creiamo un nuovo file con il pulsante ,
oppure con il menu File->New. Oppure apriamone uno già presente con .
In tal caso è bene il file sia mono; 22060 o anche 16000 Hz di
frequenza di campionamento è più che sufficiente. In ogni caso,
comparirà una finestra nella quale si potrà scegliere tra diverse
configurazioni prestabilite (o precedentemente salvate) di WSRF:

Nel nostro
caso, scegliere "Speech analysis". WSFR sistemerà sul vostro
schermo tre pane (pannelli), dopo che gli avrete dato il tempo di
eseguire le elaborazioni necessarie se avete caricato un file già
esistente.

Pannello Wafeform (forma
d'onda): E' la classica forma d'onda come si vede in tutti gli
applicativi di trattamento audio. Questo pannello mostra però, a
differenza dell'ultimo, e in sincrono con i seguenti due, il tratto di
forma d'onda sul quale si è effettuato lo zoom.
Pannello Spettrogramma
e formanti: In sincrono con il "pannello waveform",
mostra lo spettrogramma (in toni di grigio: più scuro significa più
intenso) con sovrapposto il grafico delle prime quattro formanti.
Rispettivamente Rosso per F1, Verde per F2, Blu per F3 e Giallo per F4
(colori configurabili nelle preferenze ...).
Pannello Pitch: Qui
il grafico del pitch (intonazione), dove è possibile determinarlo.
Attenzione, si tratta del pitch, non della fondamentale. Anche
se la fondamentale è mancante, il pitch viene determinato lo stesso
in modo corretto dalla spaziatura delle parziali (armoniche).
Pannello Waveform
generale: Qui è sempre visibile la forma d'onda completa, di
tutto il file. La porzione su cui si è eseguito lo zoom ha uno sfondo
in rilievo. Questo sfondo rilevato si comporta come un pulsante, che
potete trascinare per visualizzare una diversa porzione del file.
Come registrare un file,
se non se ne è aperto uno già esistente:
Controllare in
File->Preferences ... che tutti i parametri siano a posto. In
particolare, che siano corrette le selezioni degli ingressi / uscite
audio. Poi premete il tasto rosso e parlate (o suonate). Alla file,
tasto quadrato nero (come si farebbe in un comune registratore reale o
virtuale).
Come selezionare una
porzione della forma d'onda visibile nei tre pannelli superiori:
Fare click sul punto
scelto a sinistra. Fare Maiuscolo-click sul punto a destra.
Oppure trascinate il mouse con il pulsante (sinistro) premuto. La zona
selezionata assumerà uno sfondo giallino
Come fare uno zoom della
selezione:
Menu View->Zoom to
selection.
Come aggiustare la
visibilità dello spettrogramma.
Ci sono due fattori che
influenzano la buona visibilità dello spettrogramma: la lunghezza
della frame sulla quale viene effettuato, e il contrasto
dell'immagine. Quanto alla lunghezza della frame, è evidente che se
essa è un multiplo esatto delle frequenze presenti nel segnale,
queste capiteranno proprio in punti discreti esistenti nella
trasformata di Fourier discreta, e quindi "brilleranno in tutto
il loro splendore". Il peggio che possa capitare è che le
frequenze presenti capitino esattamente a metà tra un punto e l'altro
del set discreto di frequenze. In questo caso sui due punti adiacenti
capiterà una "coda" della sync (sampling) centrata sulla
esatta frequenza. Se la frequenza è molto "fissa" durante
la frame (la sync è stretta), può addirittura quasi scomparire.
Più lunga è la frame, più alta la risoluzione in frequenza, e
quindi più difficile che alcune frequenze "sfuggano", nel
senso appena descritto.
Per modificare lunghezza
della frame e contrasto, fate click con il destro (Apple-click su
MacIntosh, si suppone) nell'area spettrogramma. Comparirà un
interessante menu di due colonne:

A
sinistra:
Spectrum
Section: apre una finestra con lo spettro di potenza del segnale,
con tutte le opzioni del caso.
LTAS:
apre una finestra con il Long Term Average Spectrum, con tutte le
opzioni del caso.
Spectrogram
Controls ... Fa apparire questa finestrella:

Il cursore inferiore
modifica la lunghezza della frame di analisi: Potete osservarne gli
effetti in tempo reale nella finestra spettrogramma e scoprire che vi
sono, come si diceva sopra, lunghezze privilegiate, e che le cose
migliroano ingenerale aumentando la window. Trascinando il puntino
quadrato, potete spostare la visualizzazione in un altro punto
luminosità / contrasto. Anche qui, l'effetto è in tempo reale.
A destra:
Create Pane, Delete
Pane: potete aggiungere e togliere pannelli (ce ne sono di diverso
tipo) alla finestra corrente di WSRF.
Apply configuration /
Save configuration: Si può modificare la configurazione (rispetto
a quella scelta al momento di aprire il file), oppure salvare quella
corrente (ottenuta magari aggiungendo e cancellando pannelli) dandogli
un nome, per poterla successivamente applicare con il comando "Apply
Configuration".
Properties: Tutti
i parametri di funzionamento del Panello sul quale avete fatto click..
Nel pannello Formanti, ad esempio, si possono scegliere diverse cose,
compreso l'ordine e il tipo di algoritmo LPC per la loro
determinazione, oltre al numero di formanti calcolate. Nel pannello
Pitch si può scegliere il tipo di algoritmo di inseguimento del
pitch, e vari altri parametri.
Open Data File: Il
file dati da visualizzare nel pannello corrente.
Save Data File: Salva
i dati in un file. Le formanti in un file dal suffisso frm, il pitch
in un file di suffisso f0. Sono file di testo ASCII, con valori
leggibili, una riga per ogni frame.
Formati dei file:
Sia nei file delle
formanti, che in quello del pitch, il separatore di colonna può essere
scelto nelle Properties del Pane: Properties->Data Plot->Column
delimiter
File del pitch
(.f0):
Ogni
riga corrisponde ad una frame (per default 10 msec. Il valore
è comunque modificabile nelle Properties del Pane,
finestra Pitch Contour->Frame
interval).
Se il metodo di
inseguimento è ESPS (quello di default), ogni riga, corrispondente ad
una frame come sopra descritto e contiene quattro colonne (campi):
Pitch in Hz, probabilità che sia una sonorizzazione (voicing:
non un puro transitorio, come una vocale, una consonante sonora,
e comunque non silenzio), errore medio quadratica locale, e il valore
di picco normalizzato della correlazione incrociata che è stato
trovato nella determinazione del pitch.
File delle formanti
(.frm):
Ogni riga corrisponde ad
una frame (per default 10 msec. Il
valore è comunque modificabile nelle Properties del Pane,
finestra Formants->Frame interval).
Note
critiche:
WSRF, nella determinazione
delle formanti, si limita all'individuazione delle frequenze delle
stesse. Questo è probabilmente tutto quello che serve, dal punto di
vista linguistico. Dal punto di vista timbrico, sappiamo però che ci
sono altri parametri importanti, legati alle formanti: oltre alla
frequenza, il livello di picco (per stabilire le potenze relative di una
formante rispetto all'altra), il Q (per stabilire la selettività della
formante, e per affrontare la questione della nasalità), e infine
bisognerebbe individuare anche le antirisonanze, non solo per la
nasalità, ma anche per altro. A quest'ultimo proposito, è noto che le
casse degli strumenti a corda (archi in particolare) sono dotati di una
coppia risonanza - antirisonanza alle basse frequenze (relativamente
alla tessitura propria dello strumento) che sono generalmente imputate
al volume della cassa stessa. E' un comportamento simile a quello di un
quarzo in elettronica, o se si vuole di un circuito risonante LRC, che
le usuali analisi LPC non sono in grado di rappresentare.
Osservate infine questa
analisi delle vocali italiane /a/ /e/ /i/ /o/ /u/ pronunciate dal
sottoscritto (la prima sequenza non intonate: "vNI" nel pane
delle annotazioni. La seconda intonate: "vI"). Osservate la
vocale /o/ in entrambe le versioni. E' evidente una formante
"debole" (tra la seconda e la terza), che però non viene
riconosciuta. e la seconda formante in questo caso finisce in
prossimità della prima (in modo simile a quanto accade per la /u/.
Attenzione! dato che il riconoscitore automatico può
essere ingannato, WSRF permette di correggere "a mano" le
formanti. basta disegnare con il mouse nel posto giusto.
Osservate anche
l'involontaria (o se volete "istintiva") coloratura (pitch
ascendente all'inizio) nelle vocali intonate.

|