Codificación de la voz

Transcripción

Codificación de la voz
TECNOLOGÍA DEL HABLA. CURSO 2009/10
TEMA 4: CODIFICACIÓN DE LA VOZ.
Frecuencia de muestreo: criterio de Nyquist. Convertir analógica en digital. Fs = 8 KHz
c(n)
(n)
x(n)
CODIFICADOR
CUANTIFICADOR
Ejemplo:
x(n) = 1.21343
(n) = 1.21350, anterior 1.21325, posterior 1.21375
c(n) = 00010101
4.1. Modulación por Impulsos Codificados (PCM / MIC).
4.1.1. Cuantificador uniforme.
│C
7/2Δ┼
┌─── 011
┼
│
5/2Δ┼
┌───┘010
┼
│
3/2Δ┼
┌───┘ 001
┼
│
1/2Δ├───┘ 000
───┼───┼───┼───┼───┼───┼───┼───┼───┼───> x(t)
-4Δ -3Δ
100┌───┤ -1/2Δ
3Δ 4Δ
│
┼
101┌───┘
┼ -3/2Δ
│
┼
110┌───┘
┼ -5/2Δ
│
┼
111────┘
┼ -7/2Δ
│
<-- Margen de entrada = 2 Vmáx ---->
Error o ruido de cuantificación: e(n) = x(n) x(n) secuencia medida.
c(n) secuencia cuantificada
- Δ /2 e(n)
Δ /2
Cuanto mayor sea N, mayor
resolución, menor Δ.
Cuantificación uniforme.
Si 0<x<Δ,
Si -Δ<x<0
C = Δ/2
c = -Δ/2
Este dibujo está hecho con
B = 3.
Nº niveles = 2B
B: nº de bits
Otra posible:
Si -Δ/2 < x <
Si
Δ/2 < x <
Si -3Δ/2 < x <
Δ/2,
3Δ/2,
-Δ/2,
C = 0
C = Δ
C = -Δ
(n)
Δ = Margen de entrada / 2B
Relación S/N: Σ x2(n) / Σ e2(n) o bien 10 log (S/N) en dB.
Si el ruido es aleatorio y de unas ciertas características, entonces
SNR(dB) = 6B - 7,2, siendo B en nº de bits. Aumentar 1 bit gana 6 dB, siempre que no se sature.
Si se satura, S/N se degrada, al aumentar e(n).
Tema 4: Codificación de la voz
1
TECNOLOGÍA DEL HABLA. CURSO 2009/10
Ejemplo de cálculo de relación S/N con cuantificador uniforme.
Entrada
-2,29
-1,75
-0,64
-0,33
0,45
0,98
2,34
3,22
2,21
1,03
TOTAL
Entrada
-4,29
-1,75
-0,64
-0,33
0,45
0,98
2,34
3,22
2,21
1,03
TOTAL
Entrada
Cuadrado entrada Aproximación Error
5,2441
3,0625
0,4096
0,1089
0,2025
0,9604
5,4756
10,3684
4,8841
1,0609
-2,5
-1,5
-0,5
-0,5
0,5
0,5
2,5
3,5
2,5
1,5
0,21
-0,25
-0,14
0,17
-0,05
0,48
-0,16
-0,28
-0,29
-0,47
31,777
-3,5
-1,5
-0,5
-0,5
0,5
0,5
2,5
3,5
2,5
1,5
0,79
-0,25
-0,14
0,17
-0,05
0,48
-0,16
-0,28
-0,29
-0,47
44,937
-4,58
-3,5
-1,28
-0,66
0,9
1,96
4,68
6,44
4,42
2,06
20,9764
12,25
1,6384
0,4356
0,81
3,8416
21,9024
41,4736
19,5364
4,2436
TOTAL
127,108
-3,5
-3,5
-1,5
-0,5
0,5
1,5
3,5
3,5
3,5
2,5
-1,08
0
0,22
-0,16
0,4
0,46
1,18
2,94
0,92
-0,44
S/N
39,871
Cuadrado error
S/N (dB)
16,0
Relación
Señal/Ruido
0,6241
0,0625
0,0196
0,0289
0,0025
0,2304
0,0256
0,0784
0,0841
0,2209
1,377
Cuadrado entrada Aproximación Error
Relación
Señal/Ruido
0,0441
0,0625
0,0196
0,0289
0,0025
0,2304
0,0256
0,0784
0,0841
0,2209
0,797
Cuadrado entrada Aproximación Error
18,404
3,0625
0,4096
0,1089
0,2025
0,9604
5,4756
10,3684
4,8841
1,0609
Cuadrado error
S/N
32,634
S/N (dB)
15,15
S/N
10,018
S/N (dB)
10,0
Cuadrado
error
1,1664
0
0,0484
0,0256
0,16
0,2116
1,3924
8,6436
0,8464
0,1936
12,688
Tema 4: Codificación de la voz
2
TECNOLOGÍA DEL HABLA. CURSO 2009/10
4.1.2. Cuantificador no uniforme.
El cuantificador uniforme no es adecuado para señales de poca amplitud.
Solución: Hacer el escalón pequeño para señales de poca amplitud y grande para señales de gran
amplitud.
La conversión es logarítmica según
1º segmento de 0 a 1/128, conversión lineal de 0 a 15, que equivale a una resolución lineal de 12 bits.
2º segmento de 1/128 a 1/64, conversión lineal de 16 a 31 que equivale a una resolución lineal de 12 bits.
3º segmento de 1/64 a 1/32, conversión lineal de 32 a 47 que equivale a una resolución lineal de 11 bits.
4º segmento de 1/32 a 1/16, conversión lineal de 48 a 63 que equivale a una resolución lineal de 10 bits.
5º segmento de 1/16 a 1/8, conversión lineal de 64 a 79 que equivale a una resolución lineal de 9 bits.
6º segmento de 1/8 a 1/4, conversión lineal de 80 a 95 que equivale a una resolución lineal de 8 bits.
7º segmento de 1/4 a 1/2, conversión lineal de 96 a 111 que equivale a una resolución lineal de 7 bits.
8º segmento de 1/2 a 1/1, conversión lineal de 112 a 127 que equivale a una resolución lineal de 6 bits.
4.1.3. Cuantificador adaptativa (APCM).
x(n)
Cuantificador
Codificador
(n)
Adaptador
del tamaño
c(n)
(n) = k (n-1)
k depende de c(n-1)
Si c(n-1) es pequeño, k<1
Si c(n-1) es grande, k>1
Es decir, el escalón
se adapta a la señal
Compromiso:
Δ grande: alto margen de entrada, pero perdemos resolución.
Δ pequeño: bajo ruido de cuantificación, pero poco margen de entrada.
Solución:
Δ variable, adaptación dinámica, según el valor de la entrada.
Tema 4: Codificación de la voz
3
TECNOLOGÍA DEL HABLA. CURSO 2009/10
Adaptación instantánea, cada muestra
Adaptación silábica, cada 10-20 ms.
Se necesita saber cómo ha variado el escalón para reconstruir la señal.
4.1.4. Cuantificador diferencial (DPCM).
Entre dos muestras consecutivas muestreadas adecuadamente no hay grandes diferencias. Por
tanto, cuantificamos la diferencia entre muestras consecutivas, cuyo margen de variación es mucho
menor que el de la señal de voz original.
La muestra x(n) auténtica y una estimación de la misma x(n) se realiza como combinación
lineal de las p muestras anteriores (predicción lineal).
Con esto se ahorran bits.
d (n)
x(n)
x(n) x(n)
ak x(n k ) para 1 k
p . Un valor razonable de p podría estar entre 4 y 14.
4.1.5. Cuantificador diferencial adaptativa (ADPCM).
La DPCM una escalones fijos. La ADPCM usa escalones variables para codificar la diferencia.
4.1.6. Modulación Delta (DM).
Es un caso límite de DPCM.
La modulación Delta consiste en codificar si la muestra actual es mayor o menor que la anterior,
usando un único bit. Si es mayor, se envía un 1 y se aumenta la cuantificación de la señal en un escalón.
La frecuencia de muestreo debe ser bastante alta. Coincide con la de transmisión. Es mucho
mayor que 2W. Simple y económico.
Cuando la señal es menor que el escalón, se produce un “1” y el escalón aumenta. Cuando la
señal es mayor que el escalón, se produce un “0” y el escalón disminuye.
El ruido granular se produce cuando la señal varía mucho mejor que la longitud del escalón Δ.
┌─┐
┌─┘ └─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
┌─┘
└─┘ └─┘ └─┘ └─┘ └─┘
┌─┘
RUIDO
─┘
GRANULAR
Secuencia: 1 1 1 1 0 0 1 0 1 0 1 0 1 0
Si la frecuencia de muestreo es baja, ocurre sobrecarga de pendiente. El sistema es incapaz de
seguir variaciones rápidas.
Tema 4: Codificación de la voz
4
TECNOLOGÍA DEL HABLA. CURSO 2009/10
┌─
┌─┘
┌─┘
┌─┘
┌─┘
┌─┘
┌─┘
┌─┘
─┘
Solución:
1) Aumentar fs, pero aumenta la velocidad de transmisión o la capacidad de almacenamiento.
2) Aumentar Δ, pero aumenta el ruido granular.
Se podría hacer una Δ adaptativa (ADM), haciendo que si la muestra cuantificada coincide con la
anterior, la Δ se haga la mitad, y en caso contrario se haga el doble.
Si c(n)
c(n 1) , entonces (n)
Si c(n)
c(n 1) , entonces (n)
1
(n 1) . El escalón se reduce a la mitad.
2
2 (n 1) . El escalón se duplica.
4.1.7. Modulación Delta con pendiente continuamente variable (CVSD).
Continuously Variable Slope Delta Modulation.
El escalón Δ(n) está dado por
( n)
(n 1) a (n)
0
siendo 0 una constante, una constante muy próxima a 1 y a(n) 1 ó 0 dependiendo de un algoritmo.
La adaptación a la sobrecarga de pendiente es muy rápida.
4.2. Representación de la voz: el formato WAV.
Fichero wav de Microsoft.
1. Cabecera.
2. Datos.
Campo 1
Campo 2
Campo 3
Campo 4
Campo 5
Campo 6
Campo 7
Campo 8
Bytes 0 a 3
Bytes 4 a 7
Bytes 8 a 15
Bytes 16 a 19
Bytes 20 a 21
Bytes 22 a 23
Bytes 24 a 27
Bytes 28 a 31
Campo 9
Campo 10
Campo 11
Campo 12
Bytes 32 a 33
Bytes 34 a 35
Bytes 36 a 39
Bytes 40 a 43
FORMATO WAV
Contiene la palabra “RIFF” en ASCII
Tamaño del fichero en bytes a partir del campo 3 incluido
Contiene la palabra “WAVEfmt_” en ASCII (detrás de la “t” hay espacio en blanco)
Formato. Para PCM vale 16
Formato. Para PCM vale 1
Mono (1), estéreo (2)
Frecuencia de muestreo: 11.025, 22.050 ó 44.100 Hz
Indica el número de bytes por segundo que se debe intercambiar con la tarjeta de
sonido para grabar o reproducir
Indica el número de bytes por captura: 1 ó 2
Indica el número de bytes por muestra: 1 ó 2 ( 8 ó 16 bits)
Contiene la palabra “data” en ASCII
Indica en número total de bytes que ocupan las muestras
Tema 4: Codificación de la voz
5
TECNOLOGÍA DEL HABLA. CURSO 2009/10
Hay redundancia.
Campo 8 es el producto del campo 7 por el campo 9.
Mono: 1 canal. Las muestras se toman de forma consecutiva
Estéreo: 2 canales. Las muestras se toman alternando los canales
La amplitud de la señal debe ser adecuada, ni demasiado alta, se satura, ni demasiado
baja, no se aprovecha el margen de entrada correctamente.
Resolución 8 bits/muestra (un byte) o 16 bits/muestras (2 bytes). En este último caso, se pone
primero el byte menos significativo. El número de niveles es desde –128 a +127 para 8 bits, y de –
32.768 hasta +32.767 para 16 bits.
Tema 4: Codificación de la voz
6
TECNOLOGÍA DEL HABLA. CURSO 2009/10
4.2.1. Operaciones básicas sobre ficheros de voz que no afectan a la cabecera.
(Deben tener el mismo formato y mantienen el formato de la cabecera).
1) Modificar el volumen. Se multiplican las muestras por un factor de escala, procurando que
no haya desbordamiento. Si queremos aumentar el volumen al máximo sin que se produzca
distorsión, hay que buscar la muestra de mayor valor absoluto y calcular el factor de
amplificación máximo. Ejemplo de aumentar el volumen en un 50% (150%).
2) Sumar dos o más sonidos. Antes de sumar se reduce la amplitud para evitar
desbordamientos, multiplicando las señales por un factor menor que 1. La suma de los
factores de ponderación debe ser 1.
Tema 4: Codificación de la voz
7
TECNOLOGÍA DEL HABLA. CURSO 2009/10
3) Desvanecimiento (fade out) e intensificación (fade in). Multiplicar por una función, lineal o
no que va desde 1 a 0, o desde 0 a 1, respectivamente. Ejemplo:
bien
x
con x
n
n
x
n
con x
0,1,...n o
0,1,...n .
4) Eco. Sumar a un sonido (previamente atenuado) él mismo desplazado y más atenuado.
Ejemplo: 0.7 xSonidoOriginal 0.3xSonidoDesplazado
Tema 4: Codificación de la voz
8
TECNOLOGÍA DEL HABLA. CURSO 2009/10
4.2.2. Operaciones básicas sobre ficheros de voz que sí afectan a la cabecera.
(Cambian el formato de la cabecera).
1) Cambio del número de bits por muestra. El paso de 8 a 16 bits se hace expresando el valor
con 16 bits. El paso de 16 bits a 8 bits se hace renunciando a la mayor resolución en aras
de menor necesidad de memoria.
2) Cambio del número de canales. Pasar de mono a estéreo es duplicar la información,
poniendo el contenido del canal original en los dos canales estereofónicos. El paso de
estéreo a mono consiste simplemente en sumar muestras homólogas en el tiempo y
almacenarlas en el canal único. Hay que hacer lo mismo que cuando se suman dos
sonidos de dos ficheros distintos.
3) Cambio de la frecuencia de muestreo. Los cambios deben ser en factores de 2. Para
cambiar la frecuencia de muestreo a la mitad, hay que tomar una muestra de cada 2 y
renunciar a la muestra intermedia. Para cambiar la frecuencia de muestreo al doble, hay
que mantener todas las muestras e interpolar la muestra intermedia, por ejemplo,
linealmente.
.
4) Concatenación. Consiste en poner un fichero detrás de otro con una única cabecera. El
efecto es el mismo de poner un sonido seguido de otro. Después de la última muestra del
primer fichero se pone la primera muestra del segundo fichero.
Tema 4: Codificación de la voz
9

Documentos relacionados