Nivel 5 · Lección 20

Seguir la cresta: de la imagen a la curva de tono

La idea en una imagen

El mapa de un silbido, visto desde arriba, es un paisaje en el que el color es la altura. Un caminante con una linterna lo cruza de izquierda a derecha por la cresta, y solo ve lo que tiene cerca. Al lado se dibuja el relieve del instante en que está. Con «Caminante sin memoria» aparece otro que sale del punto más alto del mapa y sigue siempre al vecino más alto, y se pierde.

En la lección 19 el sincrosqueezing mandaba cada trocito de energía a la fila de su velocidad real, y las franjas anchas del espectrograma se volvían líneas finas. Esa imagen ya contiene la nota de cada instante, pero para sacarla hay que recorrerla, y recorrerla bien se parece a caminar de noche por la cresta de una montaña: lo razonable es seguir lo más alto, y a la vez no dar saltos imposibles hacia la cumbre de enfrente.

Mueve el castigo por saltar y mira qué le ocurre al caminante. Sin castigo, cualquier ráfaga brillante lo tienta y se va a ella; con un castigo moderado sigue el silbido y salta el silencio por encima; y con uno enorme se queda en su altura y deja de seguir la melodía. Toda la lección consiste en encontrar y entender ese término medio.

Paso a paso

De la imagen a la curva

En un espectrograma como el de la lección 11, el tiempo va hacia la derecha, la frecuencia hacia arriba y el color dice cuánta energía hay. Si el mapa se mira como un relieve visto desde arriba, y el color es la altura, cada componente del sonido es una sierra alargada, y la cresta es la línea que une sus puntos más altos.

Esa línea tiene un significado concreto. Cuando una noria cambia de velocidad despacio, como en la lección 15, su energía se concentra a lo largo de una curva que sigue esa velocidad, y los trabajos clásicos de Delprat y sus colaboradores (1992) lo demuestran para las wavelets y para las ventanas gaussianas. Por eso la cresta es una buena estimación de la frecuencia instantánea, y recorrerla de un extremo a otro da una curva con un valor por instante: la curva de tono. A ese recorrido, de imagen a curva, se le llama extracción de crestas.

En un silbido, que es casi una noria sola, la cresta es limpia: una franja clara que sube y baja. En el reto la recorres tú, a mano, y después escuchas tu camino como un tono puro para comprobar que suena casi igual que el silbido.

Dibuja la cresta del silbido: arrastra por el mapa de izquierda a derecha, siguiendo la franja más clara, desde el borde izquierdo hasta el derecho.

El atajo: subir siempre a lo más alto

Lo más simple es quedarse, en cada instante, con el punto más brillante de la columna del mapa. Es un atajo: no recuerda nada de lo que hizo antes y solo mira lo que tiene delante. Con un silbido limpio funciona, porque la franja es lo más brillante de todo.

Falla en cuanto algo más fuerte que el silbido aparece en otra parte. Un chasquido, el golpe de una puerta o una consonante dibujan una mancha muy brillante que dura unas centésimas de segundo, y el atajo salta hasta ella y vuelve después. En un silencio, el atajo hace algo peor: sigue eligiendo el punto más brillante de la columna, que ahora es puro ruido de fondo, e inventa una nota que nadie ha tocado.

En el reto, la curva naranja es la que saca el atajo, y tú tienes que encontrar los sitios donde se aparta del silbido. Con «Oír el atajo» se oye cómo suena en cada uno.

La curva naranja es la que saca el atajo. Toca el mapa en los tres sitios donde abandona el silbido; si tocas una marca otra vez, se quita.

Castigar los saltos

La solución es puntuar el camino entero en vez de cada instante por separado. Un camino gana puntos por la energía de las casillas por las que pasa y pierde puntos cada vez que salta de una fila a otra, tanto más cuanto mayor sea el salto: es el castigo de salto, o penalización. Una ráfaga brillante solo merece la pena si lo que ganas con ella es más de lo que cuesta ir y volver.

Así lo plantearon Carmona, Hwang y Torrésani (1997) para las crestas de la transformada wavelet: la mejor curva es la que pasa por mucha energía sin cambiar de altura bruscamente ni torcerse demasiado. Con castigo cero vuelve el atajo, y con un castigo enorme el caminante ya no se mueve de su fila y no sigue la melodía. Entre los dos extremos hay un tramo que funciona, y encontrarlo es el reto.

La señal del reto es una voz sintética que canta la, do, mi y la. Como en muchas voces, el segundo armónico es casi tan fuerte como la fundamental, y en dos tramos la fundamental casi desaparece, de modo que la cresta más brillante está una octava por encima de la nota. Para seguir la nota hay que fiarse de lo que ocurre antes y después, no solo de lo más brillante en ese instante.

Ajusta el castigo por saltar para que la curva verde siga la melodía sin subirse a la octava de arriba y sin llegar tarde a las notas nuevas.

No hace falta probar todos los caminos

Hay muchísimos caminos posibles: con cinco alturas y seis instantes ya son 15.625, y en un mapa de verdad el número se dispara. Probarlos todos es imposible, pero no hace falta. Para cada casilla basta recordar el mejor camino que llega hasta ella y de dónde venía; al llegar a la última columna se elige la mejor casilla y se vuelve hacia atrás siguiendo esas migas de pan. Esta forma de buscar es la programación dinámica, y el número de cuentas crece con la longitud de la señal, no de forma explosiva.

Con el castigo por salto, la versión que se usa para el tono se llama algoritmo de Viterbi. Andrew Viterbi lo publicó en 1967 para descifrar mensajes que llegan con ruido, y según el repaso histórico de Forney (2005), por entonces ya funcionaba en unos mil millones de teléfonos móviles. Seguir una cresta es el mismo problema: elegir, entre muchísimos caminos, el que mejor explica lo que se ve.

Los detectores de tono lo usan por esto. El de Praat, un programa gratuito de análisis de voz, apunta varios candidatos de tono por instante, incluido uno que dice «aquí no hay voz», y busca el camino más barato: cada salto de octava cuesta, y cada vez que la voz se enciende o se apaga también. El autor de ese método, Paul Boersma (1993), comprobó que en un sonido estable este paso elimina los errores de octava aunque afecten al 40 % de los instantes. Más tarde, pYIN (Mauch y Dixon, 2014) combinó la propuesta de candidatos de YIN, que verás dos pasos más adelante, con la descodificación de Viterbi.

Elige una casilla en cada columna para conseguir la máxima puntuación posible: sumas la energía de las casillas por las que pasas y pagas un castigo por cada fila que saltas.

Dos líneas, cruces y silencios

Un mapa puede tener más de una cresta, por ejemplo dos personas silbando. Para sacar varias se extrae la mejor, se borra una franja alrededor de ella y se repite. Carmona, Hwang y Torrésani (1999) fueron más lejos con un método que suelta muchas cadenas de «escaladores locos» a la vez sobre el mapa y encadena sus huellas admitiendo huecos, y lo probaron con voz.

Los silencios piden otra cosa. Un rastreador que siempre tiene que dar una nota la inventa donde no la hay, así que hace falta una opción más, «aquí no hay nota», con un coste por entrar y salir de ella. Praat llama a esa distinción sonoro y sordo: sonoro es el instante con voz que tiene tono, y sordo el silencio, un susurro o una «s».

Los cruces son el caso difícil. Cuando dos silbidos se cruzan, formando una X, castigar solo los saltos no basta, porque rebotar y seguir recto cuestan lo mismo, y el camino se va con la rama más brillante. Hace falta castigar también que cambie la pendiente, como el término de curvatura de Carmona y sus colegas: es la inercia, el caminante que atraviesa el collado de la X sin girar. Aun con inercia, el mapa de energía no guarda quién es quién: si los dos silbadores rebotaran de verdad, la imagen sería casi la misma.

Dos silbidos se cruzan: uno sube y otro baja. Consigue que la línea 1, la verde, atraviese el cruce y siga recto en vez de rebotar.

De la cresta a la nota: el error de octava

El tono de una voz es su fundamental, la noria más lenta de la pila de epiciclos de la lección 3; las demás giran dos, tres, cuatro veces más deprisa y son sus armónicos. Pero la cresta más brillante no siempre es la fundamental. En algunas vocales casi toda la energía está en un armónico, y por un teléfono clásico, que apenas deja pasar nada por debajo de 300 Hz, la fundamental de una voz adulta, que suele estar entre 90 y 255 Hz, desaparece. El oído sigue oyendo la nota correcta porque reconoce la familia de armónicos, y a eso se le llama fundamental ausente. Un detector que solo mire el pico más alto, en cambio, dirá una octava o más por encima: es el error de octava.

Los detectores que comparan la señal consigo misma desplazada, como la autocorrelación de la lección 9, tienen el problema contrario. Una señal que se repite cada periodo también se repite cada dos y cada tres, y si gana la coincidencia a dos periodos, la nota sale una octava por debajo: el error subarmónico. De Cheveigné y Kawahara (2002) avisan de que «error de octava» es un nombre impropio, porque la razón entre la nota que sale y la verdadera no tiene por qué ser dos.

YIN es un detector que toma al pie de la letra la definición de periodo, el menor desplazamiento que deja la señal igual. Mide cuánto cambia la señal al desplazarla, normaliza esa medida para que los desplazamientos pequeños no parezcan periodos y se queda con el primer valle que baja de un umbral absoluto, no con el más hondo. En el artículo original, con una base de datos de voz, los errores gruesos (estimaciones que se apartan más de un 20 % de la referencia) bajan paso a paso del 10,0 % de la autocorrelación al 0,50 % del método completo.

En el reto, el detector analiza una vocal «a» sintética que canta ocho notas graves. Arriba ves la curva de diferencias de un instante, con sus valles, y abajo la curva de tono de toda la melodía, con los errores gruesos en rojo.

Elige la regla y el umbral para que el detector acierte la nota en casi todos los instantes: menos de un 5 % de errores gruesos.

En tu voz

Qué grabar. Una melodía corta, cantada o silbada, de unos diez segundos, que es el tramo 7 de la grabación de referencia de la serie. Si hay con quién, graba también el tramo 8: dos personas silbando a la vez, una que sube y otra que baja. Graba con el micrófono si tu navegador lo deja; si no, sube un audio grabado con el móvil o prueba con los ejemplos sintéticos.

Qué mirar. El laboratorio decide si es una voz o un silbido, saca el mapa con las notas rotuladas y dibuja encima la curva de tono. Cambia el método y fíjate en dónde se equivoca el pico más alto y en cómo lo arregla el camino. Con «Pasar por teléfono» se quitan las frecuencias por debajo de 300 Hz y por encima de 3.400 Hz: en una voz grave aparecerá el error de octava del primer método. La curva naranja es tu melodía llevada a la nota más cercana, como hace un karaoke; con la velocidad de corrección a cero, la voz salta de nota en nota. Con el ejemplo de los dos silbidos puedes seguir dos líneas a la vez, con y sin inercia, y oír cada una.

Con una voz quebrada o con mucha reverberación, o si la grabación está saturada, los detectores fallan más; con consonantes, susurros y respiraciones, una buena curva debería callarse. Si el audio no tiene nada que seguir, el laboratorio lo dice en vez de inventar una curva.

Lo que tienes que recordar

  1. La cresta es la línea de cumbres de una componente en el mapa tiempo-frecuencia, y seguirla convierte la imagen en una curva con un valor por instante. Quedarse en cada instante con lo más brillante no basta: una ráfaga, un silencio o un armónico fuerte lo desvían.
  2. Un buen rastreador puntúa el camino entero, con un castigo por saltar, otro por cambiar de pendiente y la opción de callarse. La programación dinámica lo encuentra sin probar todos los caminos, guardando para cada casilla el mejor camino que llega hasta ella.
  3. Una máquina se equivoca de octava porque la señal lo permite: lo que se repite cada periodo se repite cada dos, y a veces la fundamental no está. Por eso los detectores usan reglas como el primer valle bajo un umbral, y el contexto del camino entero.

Errores típicos

Abrir

Rincón matemático

Las fórmulas, para quien las quiera. Cada una va después de su lectura en palabras.

El atajo

El atajo elige, en cada instante, la fila de más energía:

\hat k(t) = \arg\max_{k}\, E(t,k)

El coste de Carmona, Hwang y Torrésani

Una curva es buena si pasa por mucha energía, cambia poco de altura y se tuerce poco. En continuo, con T la transformada y \varphi(t) la curva, se busca el mínimo de

\mathcal{E}(\varphi) = -\int \bigl|T\bigl(t,\varphi(t)\bigr)\bigr|^2\,dt + \int \Bigl(\lambda\,\varphi'(t)^2 + \mu\,\varphi''(t)^2\Bigr)\,dt

y en una rejilla, con c_t la fila elegida en cada instante, se maximiza su versión discreta, donde \lambda es el castigo por saltar y \mu el castigo por cambiar de pendiente, la inercia:

J(c) = \sum_t E(t,c_t) - \lambda \sum_t (c_t - c_{t-1})^2 - \mu \sum_t (c_t - 2c_{t-1} + c_{t-2})^2

La programación dinámica

La mejor puntuación que puede llegar a la fila k en el instante t es su energía más lo mejor que se podía traer del instante anterior, pagando el salto. Se guarda también de qué fila venía, para volver atrás al final:

D(t,k) = E(t,k) + \max_{|j-k|\le J}\Bigl[D(t-1,j) - \lambda\,(k-j)^2\Bigr]

El trabajo crece con el número de instantes, de filas y de saltos permitidos, y no con todos los caminos posibles, que son n_F elevado a n_T:

\text{cuentas} \approx n_T\, n_F\,(2J+1) \qquad\text{frente a}\qquad n_F^{\,n_T}\ \text{caminos}

El coste de Praat

Se suman los castigos de cada transición y se resta la fuerza de los candidatos elegidos. Un salto entre dos notas cuesta en proporción a las octavas que separa, y encender o apagar la voz tiene su propio coste (Boersma, 1993):

\text{coste} = \sum_{n=2}^{N} \mathrm{tr}(F_{n-1},F_n) - \sum_{n=1}^{N} R_n, \qquad \mathrm{tr}(F_1,F_2) = \begin{cases} 0 & \text{los dos sordos}\\ C_{\text{s/s}} & \text{uno sordo}\\ C_{\text{oct}}\,\bigl|\log_2 (F_1/F_2)\bigr| & \text{los dos sonoros}\end{cases}

La función diferencia de YIN

Mide cuánto cambia la señal al compararla con ella misma desplazada \tau muestras, en una ventana de W muestras. La segunda forma dice que es la autocorrelación vista al revés: donde la autocorrelación tiene un pico, la diferencia tiene un valle.

d_t(\tau) = \sum_{j=t+1}^{t+W} \bigl(x_j - x_{j+\tau}\bigr)^2 = r_t(0) + r_{t+\tau}(0) - 2\,r_t(\tau)

La normalización acumulada

Se divide cada valor por la media de los anteriores, para que los desplazamientos muy pequeños no parezcan periodos. El periodo \tau^\ast es el primer mínimo local con d' por debajo del umbral, que es 0,1 en el artículo, o, si no hay ninguno, el mínimo global:

d'_t(\tau) = \begin{cases} 1 & \tau = 0\\[2pt] \dfrac{d_t(\tau)}{\frac{1}{\tau}\sum_{j=1}^{\tau} d_t(j)} & \tau > 0\end{cases} \qquad f_0 = \frac{f_s}{\tau^\ast}

Semitonos y cents

La distancia musical depende del cociente de frecuencias, no de su diferencia. Una octava son 12 semitonos o 1.200 cents, y el 20 % de error que YIN usa para hablar de error grueso son unos 316 cents, algo más de tres semitonos:

n_{\text{semitonos}} = 12\log_2\frac{f_2}{f_1}, \qquad \text{cents} = 1200\log_2\frac{f_2}{f_1}, \qquad 1200\log_2 1{,}2 \approx 316

Las notas del karaoke

Para cada nota candidata se mide la diferencia media entre la señal y su copia desplazada un periodo, dando la vuelta al final del trozo, y se elige la que menos diferencia da. Las 49 notas candidatas de UltraStar Deluxe son:

D_C(\tau) = \frac{1}{N}\sum_{n=0}^{N-1}\bigl|x\bigl((n+\tau)\bmod N\bigr) - x(n)\bigr|, \qquad f_i = 440\cdot 2^{(i-33)/12},\ i = 0,\dots,48

Para saber más

Términos nuevos

Examen