TECNOLOGÍA DEL HABLA. CURSO 2010/11 TEMA 4: CODIFICACIÓN DE LA VOZ. Frecuencia de muestreo: criterio de Nyquist. Convertir analógica en digital. Fs = 8 KHz (n) x(n) c(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 ----> 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 = -Δ Error o ruido de cuantificación: e(n) = x(n) - (n) x(n) secuencia medida. c(n) secuencia cuantificada - Δ /2 e(n) Δ /2 Δ = 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). Ejemplo de cálculo de relación S/N con cuantificador uniforme. Tema 4: Codificación de la voz 1 TECNOLOGÍA DEL HABLA. CURSO 2010/11 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 18,404 3,0625 0,4096 0,1089 0,2025 0,9604 5,4756 10,3684 4,8841 1,0609 -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 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 -4,58 -3,5 -1,28 -0,66 0,9 1,96 4,68 6,44 4,42 2,06 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 4.1.2. Cuantificador no uniforme. Tema 4: Codificación de la voz 2 TECNOLOGÍA DEL HABLA. CURSO 2010/11 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 2010/11 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) a k 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 2010/11 ┌─ ┌─┘ ┌─┘ ┌─┘ ┌─┘ ┌─┘ ┌─┘ ┌─┘ ─┘ 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 ) 1 ( n 1) . El escalón se reduce a la mitad. 2 Si c ( n ) c ( n 1) , entonces ( n ) 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 2010/11 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 2010/11 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 2010/11 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: n x con x 0 ,1,... n o n bien x con x 0 ,1,... n . n 4) Eco. Sumar a un sonido (previamente atenuado) él mismo desplazado y más atenuado. Ejemplo: 0 . 7 xSonidoOri ginal 0 . 3 xSonidoDes plazado Tema 4: Codificación de la voz 8 TECNOLOGÍA DEL HABLA. CURSO 2010/11 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