tecniche di codifica del segnale vocale

Transcript

tecniche di codifica del segnale vocale
TECNICHE DI CODIFICA DEL
SEGNALE VOCALE
Ing. Francesco BERITELLI
Vers. 0.1 del 10 Novembre 2000
Dipartimento di Ingegneria Informatica e delle Telecomunicazioni
Facoltà di Ingegneria - Università di CATANIA
INTRODUZIONE
Nonostante l’Information Technology ci porta a considerare congiuntamente diverse
forme di comunicazioni quali voce, immagini e testi, la comunicazione vocale riveste
ancora un’importanza prioritaria. Il passaggio tecnologico dal mondo analogico a quello
digitale, l’esigenza di comprimere più informazioni vocali su un generico canale di
trasmissione numerica ha determinato lo sviluppo di tecniche di codifica con velocità di
trasmissione sempre più ridotta.
In un sistema di telecomunicazione reale, la trasmissione numerica rispetto a quella
analogica reca dei vantaggi quali: una minore sensibilità al rumore nel canale, la
possibilità di proteggere l’informazione, una predisposizione all’elaborazione numerica, il
trattamento contemporaneo di voce e dati, la memorizzazione di fonemi per banche dati
nella sintesi della parola. L’unico svantaggio consiste nella richiesta di una larghezza di
banda considerevolmente superiore a quella del segnale analogico. Ciò implica l’esigenza
di tecniche di codifica a bit-rate ridotto.
Il processo di Codifica di sorgente effettua una compressione del bit-stream in uscita
al codificatore A/D al fine di ottimizzare la capacità trasmissiva del canale di
comunicazione. La sequenza in uscita al Codificatore di sorgente viene integrata con bit di
ridondanza che non introducono alcun contenuto informativo, ma garantiscono protezione
per quest’ultimo, nel processo di Codifica del canale. La Codifica di canale è necessaria
per far fronte alla degradazione del messaggio trasmissivo e quindi per la protezione del
contenuto informativo. Per esempio, il sistema radiomobile europeo GSM, che impiega un
canale critico come quello radio, effettua una codifica di sorgente che comprime il
messaggio vocale da 64 kbit/s a 13 kbit/s ed una codifica di canale di 9.8 kbit/s che porta il
bit-rate totale di una singola conversazione one-way a 22.8 kbit/s.
Con la codifica di sorgente, pertanto, a parità di capacità trasmissiva del canale, in
termini di larghezza di banda, è possibile far confluire contemporaneamente un numero
maggiore di flussi di traffico (cioè più utenti) su un unico supporto fisico, attraverso l’utilizzo
di apparati di multiplazione e demultiplazione. I sistemi di comunicazione via satellite, il cui
costo del canale è molto elevato, i sistemi radiomobili, il cui numero di utenti cresce
esponenzialmente, nonché i sistemi multimediali, il cui contenuto informativo richiede
un’occupazione notevole di memoria di massa, sono tutte applicazioni per le quali è
necessario introdurre processi di codifica della voce.
In passato, le tecniche di codifica del segnale vocale sono state implementate ed
ottimizzate per reti “dedicate” al traffico telefonico; ma l’esigenza crescente di integrazione
tra telefonia e dati comporterà lo studio di nuovi standard che offriranno, ad esempio,
servizi “voce” su protocollo IP (Internet Protocol), quindi su rete dati, che riescano a
garantire livelli di qualità paragonabili a quelli offerti della vecchia rete telefonica. Faremo
cenno anche a questo tipo di scenario applicativo.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
2
1 – CODIFICA DEL SEGNALE VOCALE NUMERICO
Come è ben noto, il segnale vocale può essere convertito da analogico a digitale
attraverso due operazioni: un primo processo di discretizzazione dell’asse dei tempi
(campionamento) e successivamente un processo di discretizzazione delle ampiezze dei
campioni (quantizzazione). L’ operazione di campionamento è regolata dal teorema di
Shannon in base al quale occorre scegliere una frequenza di campionamento Fs almeno
pari al doppio della banda del segnale analogico da digitalizzare. L’ITU-T per le
applicazioni telefoniche ha standardizzato una banda lorda di 4 kHz per il segnale vocale
e quindi in genere si sceglie Fs=8 kHz. Se si considerano 256 livelli di discretizzazione
dell’asse delle ampiezze occorrono b=8 bit per la codifica di un singolo campione PCM. Il
bit-rate richiesto per la trasmissione in forma numerica del segnale vocale pertanto è
Br=b·Fs = 8·8000= 64.000 bit/s.
Un segnale telefonico numerico a 64 kbit/s (Standard PCM) può essere compresso
utilizzando un algoritmo di codifica fino ad ottenere un flusso a bit-rate più basso, ad
esempio 8 kbit/s (ultimo standard ITU-T G.729), che, inviato al canale, sarà ricostruito in
ricezione attraverso un processo di decodifica. In tal modo è possibile convogliare 8
conversazioni telefoniche in un vecchio canale a 64 kbit/s.
Il sistema costituito dall’insieme degli algoritmi di codifica e decodifica è definito
codec.
CANALE
x(n)
CODIFICATORE
64 kbit/s
y(n)
DECODIFICATORE
8 kbit/s
64 kbit/s
CODEC
Parlando di algoritmi di codifica, si fa riferimento a particolari procedure di calcolo
opportunamente implementate su dispositivi di tipo DSP (Digital Signal Processor),
microprocessori con set di istruzioni ed architetture specializzate per l’elaborazione
numerica dei segnali.
Gli scenari applicativi, per quel che concerne le tecniche di codifica del segnale
vocale, riguardano:
ü collegamenti via satellite – un aumento dei canali comporterebbe un abbattimento
dei costi
ü sistemi radiomobili – garanzia di un miglior servizio di copertura soprattutto per
quelle zone ad alta densità di utenza (località turistiche)
ü sistemi per rete fissa – un utilizzo più efficiente dei canali di comunicazione
ü “voce” su IP - integrazione voce/dati sulle rete dati
ü sistemi per archivi vocali – riduzione dei costi dei dispositivi di memoria di massa
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
3
Nell’ipotesi che il canale sia ideale e che non introduca errori, è possibile definire
sistemi di compressione senza perdita per i quali il segnale d’uscita è perfettamente
identico al segnale d’ingresso e sistemi di compressione con perdita per i quali il segnale
d’uscita è, generalmente, diverso dal segnale d’ingresso.
Schematicamente:
y(n) = x(n)
y(n ) ≠ x(n)
∀n ∈ N
⇒ senza perdita
⇒ con perdita
Nelle tecniche di codifica del segnale vocale, i sistemi di compressione utilizzati sono
tutti con perdita, in quanto, questi ultimi, permettono una maggiore compressione del
segnale in termini di rapporto di compressione FC (rapporto tra il bit-rate d’ingresso al
codificatore ed il bit-rate d’uscita al codificatore) ed una qualità di segnale simile a quella
del segnale inviato.
A tal proposito sono necessarie misure di qualità per testare un codec.
2 –
METODOLOGIE E PARAMETRI DI VALUTAZIONE DELLA
QUALITA’ DEL SEGNALE VOCALE COMPRESSO
Esistono due metodologie di valutazione della qualità del segnale vocale che ha
subito un processo di compressione.
W
Metodi di tipo Soggettivo – sono i metodi più significativi e affidabili, ma anche molto
costosi e richiedono tempi di sviluppo dei test elevati. Il parametro più utilizzato è il
MOS (Mean Opinion Score) che rappresenta i giudizi medi di opinione di un gruppo
di ascoltatori. In particolare:
R MOS
– si inviano delle sequenze test (cioè particolari frasi registrate in
diverse
condizioni) al codificatore, si riuniscono un certo numero di
ascoltatori (40 c.ca) per esprimere un giudizio da 1 a 5 (1=pessimo,
2=mediocre, 3=buono, 4=ottimo, 5=eccellente) sul segnale decodificato
confrontando il segnale originale e quello sintetizzato su una serie di parametri
(impressione globale, sforzo di ascolto, articolazione, pronuncia, ecc.). Queste
sequenze vengono ripetute per ogni ascoltatore e successivamente si effettua
una media dei valori sia sui parametri che sugli ascoltatori. Quindi si ottiene un
numero tra 1 e 5 che esprime il valore medio di opinione relativo alla qualità
del codec.
W
Metodi di tipo Oggettivo – sono i metodi utilizzati nella fase iniziale di progetto di un
codec
R Si impiegano delle misure analitiche della qualità. Il più importante è il rapporto
segnale-rumore (di codifica, introdotto dal codec) SNR tra la potenza del
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
4
segnale d’ingresso e la potenza dell’errore di codifica. Se con x(n) indichiamo
il segnale vocale originario e con y(n) quello ricostruito si ha :
N s −1

x 2 (n )
∑

= 10 log 10  N s − 1 n = 0

2
 ∑ [x ( n ) − y ( n ) ]
 n=0
[
SNR
( dB )
]






R Se con Ns indichiamo i campioni della sola trama di analisi, ricaviamo un SNR
per ogni trama (di durata circa 20 ms) la cui media aritmetica definisce il
cosiddetto rapporto segnale-rumore segmentale (SNRseg) che è più vicino
alle valutazioni di tipo soggettive.
SNRseg
( dB )
=
1
Nt
Nt
∑
SNR
i =1
( dB )
i
Nt rappresenta il numero totale di trame contenute nella fase di prova ed
SNRi(dB) il rapporto segnale/rumore misurato in dB nella i-esima trama.
Per i sistemi di codifica di ultima generazione, che utilizzano sistemi molto complessi
di ricostruzione della forma d’onda, tale metodo non è adatto in quanto tali tecniche hanno
l’obiettivo di ottenere una forma d’onda ricostruita percettivamente simile all’originale, ma
molto distante da un punto di vista analitico. Dunque i metodi migliori per valutare la
qualità rimangono quelli di tipo soggettivo.
Nella valutazione delle prestazioni di un codificatore è necessario tener conto di altri
parametri.
♦ Complessità
•
•
•
•
numero di operazioni aritmetiche e logiche nell’unità di tempo
% di utilizzo della CPU di un DSP di riferimento
memoria richiesta
consumo di potenza
Dalla complessità dell’algoritmo di compressione deriva il costo del DSP
impiegato (MIPS, milioni di istruzioni per secondo) e, quindi, il consumo dell’apparato
in termini di potenza.
Oggi le valutazioni sulla complessità riguardano proprio il consumo di potenza
dato che, nei sistemi radiomobile, un algoritmo di complessità ridotta sui nostro
telefoni cellulari, comporta consumi energetici piuttosto contenuti.
♦ Trasparenza ai segnali non vocali
• dati modem in banda fonica (si pensi ad un fax collegato ad una linea telefonica)
• toni di segnalazione, cioè segnali sinusoidali che viaggiano in un sistema di
telecomunicazioni.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
5
Sullo stesso canale telefonico si inviano anche segnali relativi a dei messaggi
(segnali dati con caratteristiche diverse da quelle del segnale vocale): si pensi ad un
modem dati oppure ad un fax collegato con la linea telefonica. In genere i codificatori
di ultima generazione utilizzano algoritmi di codifica pensati specificatamente per
sfruttare le caratteristiche del segnale vocale e quindi possono entrare in crisi
quando si trovano a codificare segnali dati con caratteristiche ben diverse dalla voce
(onde sinusoidali tipicamente modulate in fase). Dunque un altro parametro di
valutazione consiste nella trasparenza ai segnali non vocali, ove per trasparenza si
intende la capacità di far passare dati e toni di segnalazione dal sistema di
trasmissione a quello di ricezione attraverso il codec.
♦ Ritardo di codifica
E’ definito come l’intervallo di tempo tra l’istante in cui il campione vocale arriva
all’ingresso del codificatore e l’istante in cui lo stesso campione si trova all’uscita del
decodificatore, meno qualche ritardo aggiuntivo dovuto alle apparecchiature di
comunicazione, come i modem tra la coppia codificatore/decodificatore e il ritardo di
propagazione che dipende dalla distanza.
RITARDO DI ACQUISIZIONE TRAMA +
RITARDO DI PROCESSAMENTO
+
RITARDO DI TRASMISSIONE
=
RITARDO DI CODIFICA ≈ 3 x TEMPO DI TRAMA (10-20 ms)
I sistemi di codifica trattano la voce su trame vocali (tratti di forma d’onda)
tipicamente della durata di 10-20 ms (80-160 campioni PCM, campionando a 8 kHz)
acquisite su un buffer posto in ingresso al codec. I campioni vengono processati e
trasmessi sul canale di comunicazione.
BUFFER
CODIF.
C
DECOD.
CANALE
♦ Prestazioni con BER (Bit Error Rate) ≠ 0
Questo parametro misura la “robustezza” del decodificatore agli errori nel
canale. Il bit-stream compresso, attraversando un canale reale, può subire infatti
delle alterazioni (qualche bit passa da 0 ad 1 e viceversa) o di perdita, soprattutto
quando il canale di comunicazione è un canale radio, sensibile a questo tipo di
inconvenienti.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
6
3 – ATTUALI STANDARD DI CODIFICA VOCALE
Standard di
codifica vocale
G. 711 ITU
G. 721 ITU
G. 728 ITU
G. 729 ITU
G. 723.1 ITU
G. ? ITU
G. ? ITU
Tecnica di
codifica
Log PCM
ADPCM
LD-CELP
CELP
Multimpulso
?
?
ETSI GSM
Full Rate (FR)
ETSI GSM
Half Rate (HR)
ETSI GSM
Enhanced Full
Rate (EFR)
UMTS
Multimedia
Rete fissa
GSM
Bit rate
(kbit/s)
64
32
16
8
5.3 e 6.3
4
2
Frame
(ms)
0
0
2
10
30
?
?
Anno
1971
1984
1992
1995
1994
?
?
MOS
(BER=0)
4.5
4.4
4.2
3.9
3.6
?
?
RPE
13
20
1989
3.5
CELP
6.5
20
1995
3.5
CELP
13
20
1997
3.9
ETSI GSM
Adaptive MultiRate (AMR)
CELP
4.75÷12.2
20
1999
3.3÷3.9
ISO/MPEG-1
MUSICAM
32-448
1992
ISO/MPEG-2
ISO/MPEG-4
MUSICAM
128
1994
Object64
1998
Oriented
Standard di codifica vocale ed audio ITU, ETSI, ISO
Si opera una distinzione tra gli standard relativi alla rete fissa proposti dall’ITU
(International Telecommunication Union), quelli relativi alla rete radiomobile europea
emessi dall’ETSI (European Telecommunication Standardization Institute), quelli relativi
alle applicazioni multimediali emessi dall’ISO (International Standard Organization).
Rete Fissa (Standard ITU-T)
Il primo standard risale al 1971 ed è rappresentato dalla raccomandazione G.711
nella quale si standardizza il PCM a 64 kbit/s in cui si utilizza una quantizzazione non
uniforme per la discretizzazione delle ampiezze a 8 bit per campione.
Nel 1984 con la tecnica ADPCM si è potuto dimezzare il bit-rate a 32 kbit/s pur
mantenendo la stessa qualità di codifica. Lo standard è la G.721.
Nel 1988 si è usato un codificatore non più nella banda 0-4 kHz ma nella banda
vocale 0-7 kHz ; in questo caso è necessario campionare più a 16 kHz, per cui, dato che è
raddoppiata la frequenza di campionamento si dovrebbe raddoppiare la bit-rate a 128
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
7
kbit/s per il PCM standard. La scelta fu quella di utilizzare due codificatori ADPCM a 32
kbit/s, uno nella banda 0-4 kHz e l’altro nella banda 4-7 Hz, standardizzando la G.722 a 64
kbit/s. Questo standard è stato pensato per la codifica della voce in applicazioni di
videoconferenze in cui la qualità deve essere più elevata di quella relativa ad un sistema
telefonico.
Nel 1992 è stato standardizzato uno degli algoritmi di codifica più complessi sotto il
nome di LD-CELP (Low Delay – Codebook Excited Linear Prediction) nella G.728 che
dimezza ulteriormente il bit-rate a 16 kbit/s, mentre nel 1995 è stato standardizzato un
codificatore a 8 kbit/s nella G.729 che si basa ancora su tecnica CELP.
Recentemente i gruppi di studio ITU-T stanno lavorando alla standardizzazione di un
nuovo algoritmo per la codifica a 4 kbit/s. Si pensa che la gara di standardizzazione che
selezionerà l’algoritmo di codifica migliore si concluderà nei primi mesi del 2001. Il
succcessivo target sarà lo studio e la relativa standardizzazione dell’algoritmo di
compressione a 2 kbit/s con il quale si trasmetteranno ben 32 conversazioni in un vecchio
canale a 64 kbit/s. Tutti questi standards garantiscono una qualità del segnale ricostruito
paragonabile allo standard di riferimento G.711 a 64 kbit/s; ciò significa che, durante una
conversazione telefonica, l’utente non si accorge delle degradazioni introdotte dal
processo di codifica/decodifica sulla voce del suo interlocutore.
Uno standard più recente per la voce è la G.723.1 che prevede due velocità di
esercizio: una a 6.3 kbit/s e l’altra a 5.3 kbit/s. Questa tecnica di codifica è importante
perché viene utilizzata insieme alla codifica G.729 per applicazioni di voce su IP (Internet
Protocol) e cioè per quelle applicazioni che utilizzeranno la rete dati per la trasmissione di
servizi telefonici in forma numerica.
Rete Radiomobile Europea (Standard ETSI)
Nel 1989 l’ETSI ha standardizzato l’algoritmo di codifica vocale per il sistema di
comunicazione mobile numerico GSM (Global System for Mobile Communications),
attivato in Italia nel 1992. Per il sistema GSM l’ETSI ha proposto uno standard di codifica
della voce a 13 kbit/s detto “Full Rate”, basato sulla tecnica RPE (Regular Pulse
Excitation) che sarà esaminata in seguito.
Per fare fronte alla crescita esponenziale degli utenti, è sIato standardizzato, nel
1995 un sistema GSM HF (Half Rate) basato su una tecnica più innovativa ma complessa
(la tecnica di codifica CELP) che comprimendo il bit-rate d’uscita al codificatore a 6.5
kbit/s, di fatto, raddoppia l’utenza in termini di capacità del canale di comunicazione.
Nel 1997 è nato lo standard GSM EFR (Enhanced Full-Rate) che utilizza lo stesso
bit-rate a 13 kbit/s migliorando la qualità con l’impiego di un nuovo tipo di algoritmo basato
su tecnica CELP che triplica, però, la complessità (15 MIPS) rispetto alla tecnica RPE.
Nel 1999 viene concepita una nuova rete radiomobile con copertura globale
chiamata UMTS (Universal Mobile Telecommunication System) per la quale l’ETSI ha
proposto un nuovo standard di codifica denominato AMR (Adaptive Multi-Rate) in quanto
utilizza un codificatore adattativo che genera flussi di traffico con 8 velocità diverse (da
12.2 kbit/s a 4.75 kbit/s) in funzione delle condizioni del canale radio. Esso ancora una
volta si basa su tecnica di codifica CELP.
Applicazioni Multimediali (Standard ISO)
Finora si è fatto riferimento alle tecniche di codifica del segnale vocale, cioè di un
segnale nella banda telefonica 0÷4000 Hz. Più in generale, i segnali acustici possono
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
8
essere raggruppati, in base alle varie aree applicative, secondo le frequenze che li
riguardano. La tabella 3.1 riassume i tipici valori dei parametri di base che caratterizzano
le singole classi: banda di frequenza, frequenza di campionamento, numero di bit per
campione PCM e bit-rate.
Banda di
Frequenza di
frequenza campionamento Bit/Sample Bit Rate bit/s
(Hz)
(Hz)
Audio professionale (DAT) 20 ÷24000
48000
16
2*768000
Audio ad alta fedeltà (CD) 20 ÷20000
44100
16
2*705600
Radio FM
32000
16
2*512000
20 ÷15.000
Teleconferenza
16000
8
128000
50 ÷7000
Telefonia
8000
8
64000
300 ÷3400
Area applicativa
Tabella 3.1 - Frequenze di campionamento e quantizzazione per segnali audio
MPEG (Moving Picture Experts Group) è un gruppo di standardizzazione operante in
ambito ISO (International Standards Organization) e IEC (International Electrotechnical
Commission) il cui obiettivo è la definizione di algoritmi di compressione per segnali audio
e video per applicazioni multimediali e videoconferenza.
Nel 1988 sono stati approvati gli standard ISO/IEC 11172 e ISO/IEC 13813, meglio
conosciuti come MPEG-1 e MPEG-2, rispettivamente.
Originariamente era stato pianificato anche uno standard MPEG-3 che doveva
rispondere ai requisiti della televisione ad alta definizione (HDTV). Durante la sviluppo
dell’MPEG-2, si trovò un ampliamento che veniva incontro, adeguatamente, ai requisiti
della TV ad alta definizione e di bit-rate molto basso per quanto concerne il segnale audio,
conseguentemente MPEG-3 è stato abbandonato.
Nel 1993, invece, si è costituito un nuovo gruppo di lavoro per la realizzazione di un
nuovo standard MPEG-4 il cui obiettivo è il raggiungimento di un più alto grado di
interazione multimediale, all’interno di una scena, tra audio e video e di un fattore di
compressione molto spinto.
4 – PRINCIPALI METODI DI CODIFICA (CBR)
Una sorgente analogica viene prefiltrata mediante un filtro passa basso in modo tale
da garantire che il segnale vocale sia all’interno della banda 0÷4 kHz. Esso viene,
successivamente, campionato a frequenza doppia della banda massima (8 kHz) in
accordo al teorema di Shannon, in tal modo si ottiene una sequenza x(n); si è operata,
quindi, una discretizzazione dell’asse dei tempi. Occorre anche operare una
discretizzazione dell’asse delle ampiezze, cioè un processo di quantizzazione, e ad ogni
livello occorrerà poi associare una sequenza binaria.
Analog
Source
x(t)
Prefilter
Sampler x(n)
Waveform
Encoder
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
9
Trasmitter
La quantizzazione è un procedimento irreversibile nel senso che si perde qualcosa
dal punto di vista dell’informazione (errore di quantizzazione).
Analizzando il flusso numerico di un segnale digitale, si evince come l’informazione
in esso contenuta risulta essere estremamente ridondante e quindi comprimibile. Per
qualsiasi segnale che non sia un rumore bianco, infatti, i campioni non risultano
indipendenti per il fatto di essere frutto della stessa sorgente e quindi frutto di qualche
legge di generazione (ridondanza). Inoltre, non si fa alcuna analisi sulla “utilità” dei
campioni stessi (irrilevanza). In particolare, le principali cause di ridondanza possono
essere ricondotte a:
ü disuniformità della distribuzione delle ampiezze – è possibile ridurre la risoluzione
del quantizzatore (ridurre il numero di livelli) per gli intervalli di minore interesse
ü variabilità della distribuzione delle ampiezze – è conveniente utilizzare estremi di
quantizzazione che non siano costanti ma che si adattino alla dinamica corrente
ü correlazione fra i campioni – non è conveniente codificare i campioni isolatamente
ü disuniformità della distribuzione dell’energia in frequenza – è possibile adottare
caratteristiche di quantizzazione differenti per ciascuna porzione dello spettro
ü fenomeni di mascheramento dell’udito – è possibile adottare tecniche di
quantizzazione che permettano di mascherare, tramite il segnale, il rumore di
quantizzazione.
Le tecniche di codifica in grado di eliminare tali ridondanze si possono classificare in
tre gruppi a seconda delle informazioni utilizzate per comprimere il segnale:
♦ Codifica di forma d’onda
♦ Codifica parametrica (o per modelli)
♦ Codifica di analisi per sintesi
La codifica di forma d’onda sfrutta solamente alcune caratteristiche statistiche del
segnale da codificare e pertanto presenta il vantaggio di poter essere applicata per la
compressione di un qualunque tipo di segnale che gode di certe caratteristiche statistiche.
In questo tipo di codifica si ottiene una buona qualità del segnale ricostruito introducendo
un basso ritardo. Lo svantaggio di questa tecnica è che al di sotto di un certo bit-rate (24
kbit/s per la voce) non garantisce più una buona qualità del segnale.
La codifica parametrica non è relativa ai campioni del segnale, ma ai parametri di un
modello della sorgente che li ha generati (nel caso della voce il modello analitico è quello
del sistema fonatorio umano). Questo tipo di codifica ha il vantaggio di avere un alto
fattore di compressione (fino a 2 kbit/s), al prezzo di una qualità scadente e di un alto
ritardo (dovuto all’impiego di buffer per l’analisi a trame).
La codifica per analisi e sintesi sfrutta i vantaggi delle due tecniche precedenti
raggiungendo un buon compromesso tra la riduzione del bit-rate della codifica parametrica
e la qualità della codifica di forma d’onda.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
10
4.1 – CODIFICA DI FORMA D’ONDA
4.1.1 – CARATTERISTICHE DEL SEGNALE VOCALE
Sia {x(n)} una sequenza di campioni vocali con n=0,1, …., N-1.
♦ Caratteristiche non stazionarie
In generale vale:
σ 2 = χ X2 − µ X2
Ma il segnale vocale può essere considerato a media nulla (µx=0), pertanto
la varianza sarà pari al valore quadratico medio (σ2x=χ2x).
Analizzando la forma d’onda del segnale vocale su trame abbastanza
limitate (tipicamente 10÷30 ms) e su l’intera sequenza in termini di energia si
evince come l’energia a breve termine (locale) differisce dal valore di energia a
lungo termine; da ciò si deduce che il segnale vocale è non stazionario.
X 1 (t )
1 Segnale più correlato
X 2 (t )
2 Segnale meno correlato
R XX (τ )
1
2
Fig. – Funzione di Autocorrelazione per segnali più o meno correlati
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
11
♦ Correlazione
La figura mostra la funzione di autocorrelazione per segnali più o meno
correlati.
E’ possibile normalizzare il valore della funzione di autocorrelazione
rispetto al valore assunto in zero; dunque, il valore della funzione di
autocorrelazione normalizzata è
R XX (0 ) =
1
N
N −1
∑ X (n ) =
2
χ X2 ⇒ (per il segnale vocale)
n=0
R XX (0 ) = σ
2
X
 ρ XX = 1 ⇒ Perfetta correlazione positiva
RXX (κ ) RXX (κ )

ρ XX (κ ) =
=
⇒ − 1 ≤ ρ XX ≤ 1 ⇒  ρ XX = −1 ⇒ Perfetta correlazione nagativa
2
RXX (0 )
σX
 ρ = 0 ⇒ Totalmente scorrelato
 XX
Nella figura allegata si distinguono due strisce: una misurata su un segnale
vocale che è stato filtrato con un filtro passa-basso (LPF) e l’altra filtrata con un
filtro passa-banda (BPF) che ha eliminato le componenti di frequenza al di sotto
di 300 Hz. In tal modo, sono state eliminate quelle componenti che a bassa
frequenza assicurano una dinamica più regolare della forma d’onda e che,
quindi, contribuiscono ad una maggiore correlazione.
La più comune tecnica di codifica del segnale vocale è la codifica a modulazione di
impulsi PCM (Pulse Code Modulation) che consiste nel campionamento e quantizzazione
del segnale analogico. La frequenza di cifra e la intellegibilità sono legati fra loro dal
cosiddetto effetto della quantizzazione. Più piccolo è l’intervallo di quantizzazione, minore
è il rumore che si somma al segnale originario, maggiore è, dunque, l’intelligibilità del
segnale. Alla diminuzione dell’ampiezza dell’intervallo di quantizzazione corrisponde un
aumento del numero di bit necessari a rappresentare ogni singolo campione. La frequenza
di cifra è, in pratica, pari alla frequenza di campionamento per il numero di bit per ogni
campione.
Il rapporto segnale/rumore di quantizzazione è definito come il rapporto tra la
potenza del segnale d’ingresso e la potenza del rumore di quantizzazione. Dato che, per
un segnale a media nulla, come nel caso del segnale vocale, le potenze equivalgono alla
varianza, è possibile definire tale rapporto come segue:
SNRQ =
σ χ2
σ e2
.
4.1.2 - CODIFICA PCM LINEARE
Nel caso in cui si utilizza un quantizzatore lineare ed il numero di livelli di
quantizzazione è abbastanza elevato, il segnale rumore di quantizzazione, definito come il
segnale differenza e(n)=x(n)-x^(n) tra la forma d’onda originale ed il segnale quantizzato,
presenta una distribuzione uniforme tra –Ä/2 e Ä/2, ove Ä è il passo di quantizzazione. Per
cercare di ridurre l’errore di quantizzazione o, a parità di errore di quantizzazione, il bitrate, si cerca di rendere il campo di variazione del quantizzatore allineato con quello delle
ampiezze del segnale d’ingresso. Due tecniche per ottenere questo obiettivo possono
essere la quantizzazione non uniforme e la quantizzazione adattativa.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
12
4.1.3 – CODIFICA PCM LOGARITMICA
Le caratteristiche statistiche della distribuzione non uniforme dei campioni del
segnale vocale è stata sfruttata per passare da un PCM Lineare a un PCM logaritmico. La
quantizzazione non uniforme, che è universalmente adottata nei sistemi di trasmissione
PCM, trae vantaggio dalla conoscenza della distribuzione probabilistica dell’ampiezza dei
campioni del segnale, la quale è riconducibile ad una distribuzione di tipo Gamma.
Pertanto, il quantizzatore non uniforme per la voce è caratterizzato da un passo più fine
per i livelli più bassi (più probabili) e più grossolano per i livelli più elevati.
In pratica, i sistemi PCM utilizzano un quantizzatore uniforme che opera sul segnale
d’ingresso compresso con legge logaritmica (Log-PCM) ottenendo con 8 bit per campione
gli stessi livelli di qualità di una rappresentazione lineare con 13 bit per campione. Il
vantaggio sta, ovviamente, nella riduzione del bit-rate senza diminuzione della
intellegibilità.
4.1.4 - CODIFICA PCM CON QUANTIZZAZIONE ADATTATIVA
Nella quantizzazione uniforme precedentemente descritta, il passo di quantizzazione
utilizzato rimane fisso nel tempo ed opera sui singoli campioni senza tener conto
dell’andamento del segnale.
L’ampiezza degli intervalli di quantizzazione deriva dai limiti di saturazione del
quantizzatore dimensionati per la massima dinamica del segnale. Ma, a causa della non
stazionarietà del segnale vocale, la sua dinamica potrebbe rimanere a lungo ben al di
sotto del suo valore massimo.
Una codifica con quantizzazione adattativa (AQ) può ricavare un limite di saturazione
adeguato alla dinamica del segnale; l’informazione relativa alla caratteristica utilizzata
viene trasmessa insieme alla quantizzazione del segmento vocale sul quale si effettua la
stima. In particolare, si effettua una quantizzazione adattativa variando l’ampiezza del
quanto nel quantizzatore in funzione del segnale in arrivo al codificatore (adattamento in
avanti), oppure in funzione del segnale in uscita dal codificatore verso la linea
(adattamento a retroazione); essa, quindi, può basarsi sull’ampiezza di uno o pochi
campioni e prende allora il nome di adattamento istantaneo, oppure su un numero di
campioni e prende il nome di adattamento sillabico.
Per un quantizzatore lineare:
σ e2 =
∆2
⇒
12
SNR Q =
σ X2
∆2
12
⇒
SNR Q =
σ X2
.
∆2
La figura riporta un segmento di forma d’onda vocale in cui si notano le
caratteristiche non stazionarie della voce che presenta tratti ad alta energia e tratti a bassa
energia. Per l’equazione sopra riportata, il rapporto segnale-rumore di quantizzazione
SNRQ dipende dal passo di quantizzazione ∆. Poiché ∆, sia in un quantizzatore uniforme
che non uniforme, è costante nel tempo, considerando una trama vocale in cui l’energia è
bassa, si avrà un corrispondente abbassamento del valore del SNRQ, e, viceversa, ad un
alto valore di energia corrisponderà un alto valore del SNRQ. e ciò che varia è proprio la
varianza σX2.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
13
Pertanto, adattando opportunamente il passo di quantizzazione alla dinamica del
segnale, stimando l’energia su una trama di un certo numero di campioni, si ottiene una
discretizzazione migliore della forma d’onda e, quindi, una migliore qualità percepita.
TRAMA DI N CAMPIONI
∆
n
n+N
Fig. – Quantizzazione adattativa
Vediamo come adattare il passo di quantizzazione. Il quantizzatore adattativo riceve
in ingresso i campioni non quantizzati; ad esso va fornito, inoltre, il valore del passo di
quantizzazione che dipende da una variabile temporale in quanto si aggiorna
dinamicamente. La legge di adattamento del passo di quantizzazione è del tipo:
∆(κ ) = ∆ 0 ⋅ σ X (κ ) ⇒ ∆ 0 > passo di quantizzazione per deviazionestandardunitaria
Quindi il passo di quantizzazione si adatta linearmente con la deviazione standard
σX(k) misurata nella k-esima finestra di osservazione di N campioni.
Con questa legge si garantisce un SNRQ costante per tutte le trame vocali, infatti:
SNR
Q = 12 ⋅
∆ 2 (κ )
1
⋅ 2
2
∆0
∆ (κ
)
=
12
.
∆ 20
Secondo come viene effettuata la stima di σX si distinguono due metodi:
ü Quantizzazione adattativa in avanti (Forward) – la stima della σX viene effettuata
a partire dai campioni x(n) in ingresso al quantizzatore;
ü Quantizzazione all’indietro (Backward) - la stima della σX viene effettuata a partire
dai campioni x^(n) già quantizzati
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
14
x(n)
x^(n)
Quantizzatore
Adattativo
∆(k)
AQ in avanti
AQ a retroazione
Stima di σx
Fig. – Adattamento in avanti e all’indietro del passo di quantizzazione
Quantizzazione adattativa in avanti
Nella AQF (Adaptive Quantization Forward) la relazione che consente il calcolo di
è la seguente:
1 N −1 2
σ X2 (k ) =
∑ x (n + m ) .
N m =0
σX2(k)
Un’ipotetica forma d’onda viene osservata in trame vocali ad esempio di durata pari a
20 ms (ovvero contenente 160 campioni PCM), i quali vengono memorizzati in un buffer
posto in ingresso al codec. Naturalmente questi campioni sono stati già precedentemente
quantizzati con risoluzione molto fine (tipicamente 16 bit per campione). L’obiettivo della
AQ è quello di una successiva quantizzazione con un numero di livelli ridotto. Un AQ può
essere costituito da un Q fisso con a monte un guadagno adattivo:
AQ
≡
G(k)
Q
X G(n) =G(k) · X(n)
Il segnale in ingresso viene moltiplicato per il guadagno G(k) ed il risultato, cioè la
sequenza XG(n)=G(k)X(n), viene introdotta in un Q fisso per determinare il segnale
quantizzato XG^(n). Il guadagno G(k) è dato da:
G
G (k ) = o ⇒ dove Go è il guadagno per varianza unitaria
σX
Il blocco a monte del quantizzatore fisso ha lo scopo di amplificare il segnale, quando
la sua dinamica è piuttosto ridotta, e di attenuarlo quando la dinamica è troppo elevata. Il
guadagno adattativo ha il compito di fornire al quantizzatore fisso un segnale quanto più
stazionario possibile. Ovviamente, occorre fornire in ingresso all’AQ il ∆(k) che serve per
adattare il valore del guadagno.
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
15
In ricezione si otterrà XG^(n) attraverso un processo inverso di decodifica. Occorre
inserire un guadagno inverso che utilizza l’informazione del passo di quantizzazione ∆(k).
In tal modo si ottiene X^(n) in uscita.
Ecco lo schema completo:
X(n)
CONV.
A/D
Q
16 BIT
BUFFER
N
STIMA
σx(k)
QA
∆(k)
COD.
DEC.
COD.
DEC.
X^(n)
G-1(k)
∆^(k)
Se volessimo stimare il bit-rate di questo sistema è necessario considerare, oltre i bit
per i campioni, anche quelli (in genere 5 o 6) assegnati per la codifica del passo di
quantizzazione che si adatta nel tempo trama per trama. Per cui si ha:
B F
B 

B r (PCM − AQF ) =  B + ∆  ⋅ FC = BFC + ∆ C = B r (PCM ) + B r ( AQF ) ⇒
N 
N

B > è il numero di bit occorrenti per la discretizz azione dei campioni del segnale
FC > è la frequenza di campioname nto
B ∆ > è il numero di bit utilizzati per codificare il passo di quantizzaz ione
N > è il numero di campioni nella finestra di osservazio ne
Dunque Br(AQF) è la quantità di informazione da trasmettere in più a causa della
trasmissione del passo ∆(k).
Lo svantaggio maggiore di uno schema adattativo in avanti è dato dalla presenza del
buffer che inevitabilmente introduce un ritardo di 20 ms necessari per raccogliere i 160
campioni su cui effettuare la stima della varianza.
Quantizzazione adattativa all’indietro
Lo schema di quantizzazione adattativa all’indietro siglato AQB risolve il problema
del ritardo della AQF stimando il passo di quantizzazione ∆ a partire da campioni già
trasmessi e, quindi, già quantizzati; pertanto, questa volta, poiché il buffer si trova all’uscita
del quantizzatore non introduce ritardo ed inoltre il passo di quantizzazione può essere
adattato campione per campione. La finestra temporale di osservazione in questo caso si
sposta in avanti di un campione alla volta.
La stima della varianza si effettua sugli N campioni precedenti a quello da
quantizzare. In trasmissione vengono prelevati i campioni quantizzati XG^(n) e sottoposti al
guadagno inverso G-1(k) per ottenere la sequenza X^(n). Adesso il buffer è collocato
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
16
all’uscita del blocco G-1, e contiene i campioni già quantizzati e trasmessi, pertanto, non
comporta ritardo.
In ricezione non occorre l’informazione sul passo di quantizzazione . I campioni X^(n)
vengono raccolti nel buffer ed utilizzati dallo stimatore di σX per determinare ∆(k) che, a
sua volta, servirà ad aggiornare G-1(k) per la stima del campione X^(n) successivo.
Non trasmettendo il passo di quantizzazione, il bit-rate nel caso di codifica PCM con
quantizzazione adattativa all’indietro sarà:
Br = (PCM − AQB) = Br (PCM ) = BFC
Confronto tra AQF e AQB
La AQB risolve il problema dell’introduzione del ritardo della AQF; di contro, con la
AQB si effettua una stima di σX sui campioni già trasmessi e non su quelli che
effettivamente si andranno a quantizzare. Quindi l’adattamento del passo di
quantizzazione è meno preciso rispetto alla AQF.
Un problema importante riguarda la scelta del valore N in uno schema AQB.
Scegliere un valore di N piuttosto basso significa operare una stima basandosi su
campioni più vicini, cioè più correlati (in termini di energia), al campione che si dovrà
quantizzare. Ma questa scelta comporta che l’alterazione del livello di uno dei campioni,
all’interno della finestra di osservazione su cui si stima il passo di quantizzazione,
allorquando il canale di comunicazione non è ideale, può introdurre qualche errore proprio
sul passo di quantizzazione. Pertanto, N dovrà essere tale che un eventuale errore peserà
poco sulla stima e che quest’ultima venga effettuata su campioni abbastanza correlati (non
molto lontani) al campione da quantizzare. In genere, si moltiplica la finestra di
osservazione per una finestra esponenziale che consente di andare a pesare
maggiormente i valori più vicini e ridurre il peso dei campioni più lontani.
In pratica si utilizza una relazione euristica, funzione del peso α, che permette di
calcolare un’ampiezza finita della finestra di osservazione:
Vediamo due casi:
N≅
§
§
1+α
1−α
Adattamento sillabico (si utilizza in presenza di canali rumorosi)
α = 0.99, N = 200, ≈25 ms
Adattamento istantaneo (si utlizza in presenza di canali poco rumorosi)
α = 0.90, N = 19, ≈2.5 ms
Ing. F. BERITELLI - Tecniche di codifica del segnale vocale
17