¿PSOLA o WSOLA son mejores para el estiramiento / resintonización vocal?

Aug 16 2020

Estoy buscando implementar un algoritmo de modificación de tono en el dominio del tiempo como PSOLA (Pitch Synchronous Overlap and Add) o WSOLA (Waveform Similarity Overlap and Add).

En este momento estoy usando PSOLA, pero me parece que WSOLA sería más robusto a señales polifónicas con formas de onda complejas, mientras que PSOLA funciona mejor con señales monofónicas como voces. Siento que podría ser mejor hacer una prueba de futuro usando WSOLA, aunque solo estoy interesado en señales monofónicas por ahora.

Me pregunto si hay alguna desventaja en el uso de WSOLA en lugar de PSOLA.

Parece que ambas técnicas funcionan de manera similar, ambas identificando la repetición dentro de la forma de onda, aunque WSOLA no necesariamente se ajusta a lo fundamental. ¿El bloqueo fundamental hace que PSOLA sea superior para las voces?

Para ser más preciso, estoy tratando de resolver las ventajas y desventajas de WSOLA vs PSOLA para las siguientes tareas:

  1. Correccion de tono
  2. Corrección de tiempo
  3. Corrección de formantes

Respuestas

2 ederwander Aug 17 2020 at 01:23

Para ser más preciso, estoy tratando de resolver las ventajas y desventajas de WSOLA vs PSOLA para las siguientes tareas:

Correccion de tono:

  • PSOLA: ventajas: puede cambiar el tono directamente en función del espacio de velocidad entre los granos, mantener los formantes intactos ... para cambiar el tono que no necesita la escala de tiempo y volver a muestrear después.
  • PSOLA - La desventaja es que necesita un detector de tono superpoderoso
  • WSOLA - Desventaja WSOLA no es un algoritmo de cambio de tono, WSOLA es un algoritmo de escala de tiempo, para cambiar el tono se necesitará una escala de tiempo y volver a muestrear, los formantes se perderán, por lo que tal vez necesite un tipo de autocorrelación para encontrar lugares agradables para cortar, por lo que no es lo mismo que la información de tono, si está creando una corrección automática de tono, una autocorrelación básica no le dará la información de tono correcta.
  • WSOLA: una ventaja aquí es que no depende del tono para cortar, solo corte en la mejor similitud de coincidencia, recuerde que es solo un algoritmo de escala de tiempo, necesitará volver a muestrear para cambiar el tono

Corrección de tiempo:

Para la escala de tiempo, creo que WSOLA tiene la mejor ventaja aquí o algún TDHSalgoritmo basado, sí, puede usar PSOLA para escalar el tiempo y aplicar el cambio de tono juntos, solo el cambio de tono o solo la escala de tiempo, pero si solo está escalando el tiempo, WSOLA es inteligente elección, no es necesario construir un Ultra Pitch Detector en WSOLA, solo una forma de onda similar resolverá su problema (AutoCorrelation puede resolver ...)

Corrección de formantes:

  • PSOLA: por defecto, los formantes serán intocables, pero también puedes deformar a los formantes, es increíble en PSOLA ...
  • WSOLA: después de la escala de tiempo y el remuestreo, sus formantes se perderán y para obtener los formantes originales necesitará obtener los formantes en la envolvente espectral de la señal original y aplicarlos en la señal de tono desplazado, puede hacerlo usando un filtro de paso bajo en el espectral, use una selección de picos e interpole o use un cepstrum para obtener el sobre ...

Sé que PSOLA es infinitamente más complejo, pero considero este algoritmo realmente genial, si tienes un PitchTrack decente te dará una gran versatilidad

1 robertbristow-johnson Aug 16 2020 at 17:26

Creo que tiene razón en que WSOLA es mejor para polifónico, pero todavía hay fallas en ese método. La razón por la que es un poco mejor es porque el algoritmo de detección de paso solo busca buenos desplazamientos de empalme. Si está a una octava de distancia, eso no te hace daño porque el empalme sigue siendo bueno. Sin embargo, si cambia el tono de un acorde de notas no armónico (digamos un acorde disminuido), entonces no habrá buenos desplazamientos de empalme, por lo que terminará eligiendo el que sea menos malo.

Ahora PSOLA requiere saber exactamente que los errores de tono y octava sonarán como errores de octava. Pero ese es el método de cambio de tono que desea para las voces y el documento que estoy señalando explica por qué.

Pero la escala de tiempo no es exactamente un cambio de tono. Cuando escales algo en el tiempo, incluidas las voces, no uses PSOLA. Utilice WSOLA o un método de dominio de frecuencia como un codificador de voz de fase.