Ist PSOLA oder WSOLA besser für das Strecken / Nachstimmen der Stimme?

Aug 16 2020

Ich möchte einen Algorithmus zur Änderung der Tonhöhe im Zeitbereich implementieren, z. B. PSOLA (Pitch Synchronous Overlap and Add) oder WSOLA (Waveform Similarity Overlap and Add).

Im Moment verwende ich PSOLA, aber es scheint mir, dass WSOLA gegenüber polyphonen Signalen mit komplexen Wellenformen robuster ist, während PSOLA besser mit monophonen Signalen wie Gesang funktioniert. Ich denke, es könnte besser sein, mit WSOLA zukunftssicher zu sein, obwohl ich momentan nur an monophonen Signalen interessiert bin.

Ich frage mich, ob die Verwendung von WSOLA im Gegensatz zu PSOLA einen Nachteil hat.

Es scheint, dass beide Techniken auf ähnliche Weise funktionieren und Wiederholungen innerhalb der Wellenform identifizieren, obwohl WSOLA nicht unbedingt an die Grundwelle gebunden ist. Macht das grundlegende Sperren PSOLA für den Gesang überlegen?

Um genauer zu sein, versuche ich, die Vor- und Nachteile von WSOLA gegenüber PSOLA für die folgenden Aufgaben herauszufinden:

  1. Tonhöhenkorrektur
  2. Zeitkorrektur
  3. Formantenkorrektur

Antworten

2 ederwander Aug 17 2020 at 01:23

Um genauer zu sein, versuche ich, die Vor- und Nachteile von WSOLA gegenüber PSOLA für die folgenden Aufgaben herauszufinden:

Tonhöhenkorrektur:

  • PSOLA - Vorteile Sie können die Tonhöhe direkt basierend auf dem Ratenabstand zwischen den Körnern ändern, Formanten intakt halten ... um die Tonhöhe zu ändern, benötigen Sie keine Zeitskala und kein Resample danach.
  • PSOLA - Nachteil benötigen Sie einen Super Power Pitch Detektor
  • WSOLA - Nachteil WSOLA ist kein Pitch Shift-Algorithmus, WSOLA ist ein Time Scale-Algorithmus. Um die Tonhöhe zu ändern, ist eine Zeitskala erforderlich, und die Formanten gehen verloren, sodass Sie möglicherweise nur eine Art von Autokorrelation benötigen, um schöne Orte zu finden Wenn Sie eine automatische Tonhöhenkorrektur erstellen, erhalten Sie durch eine grundlegende Autokorrelation nicht die richtigen Tonhöheninformationen.
  • WSOLA - Ein Vorteil hierbei ist, dass die Tonhöhe nicht vom Slice abhängt, sondern nur die beste Übereinstimmungsähnlichkeit aufweist. Denken Sie daran, dass es sich nur um einen Zeitskalenalgorithmus handelt. Sie müssen ein Resample durchführen, um die Tonhöhe zu ändern

Zeitkorrektur:

Für die Zeitskala denke ich, dass die WSOLA hier den besten Vorteil hat oder einen TDHSauf Algortihm basierenden Algorithmus. Ja, Sie können PSOLA verwenden, um die Zeit zu skalieren und die Tonhöhenverschiebung zusammen anzuwenden, nur die Tonhöhenverschiebung oder nur die Zeitskala Wahl, kein Notwendigkeit, einen Ultra Pitch Detector in WSOLA zu bauen, nur eine Wellenformähnlichkeit wird Ihr Problem lösen (AutoCorrelation kann lösen ...)

Formantenkorrektur:

  • PSOLA - Standardmäßig sind Formanten unantastbar, aber Sie können auch die Formanten verziehen. In PSOLA ist das erstaunlich ...
  • WSOLA - Nach der Zeitskala und dem erneuten Abtasten gehen Ihre Formanten verloren. Um die ursprünglichen Formanten zu erhalten, müssen Sie die Formanten in der Spektralhüllkurve aus dem Originalsignal abrufen und im Pitch Shifted-Signal anwenden. Sie können dies mit einem Tiefpassfilter tun Verwenden Sie ein Peak-Picking und interpolieren Sie oder verwenden Sie ein Cepstrum, um die Hüllkurve zu erhalten ...

Ich weiß, dass PSOLA unendlich komplexer ist, aber ich finde diesen Algorithmus wirklich großartig. Wenn Sie einen anständigen PitchTrack haben, erhalten Sie eine große Vielseitigkeit

1 robertbristow-johnson Aug 16 2020 at 17:26

Ich denke, Sie haben Recht, dass WSOLA besser für Polyphonic ist, aber diese Methode weist immer noch Störungen auf. Der Grund, warum es etwas besser ist, ist, dass der Pitch-Erkennungsalgorithmus nur nach guten Spleißverschiebungen sucht. Wenn es eine Oktave entfernt ist, tut dir das nicht so weh, weil der Spleiß immer noch gut ist. Wenn Sie jedoch die Tonhöhe eines nicht harmonischen Notenakkords verschieben (z. B. einen verminderten Akkord), gibt es keine guten Spleißverschiebungen, sodass Sie am Ende diejenige auswählen, die am wenigsten schlecht ist.

Jetzt muss bei PSOLA die Tonhöhe genau bekannt sein, und Oktavfehler klingen wie Oktavfehler. Aber das ist die Methode zur Tonhöhenverschiebung, die Sie für den Gesang wünschen, und das Papier, auf das ich verweise, erklärt, warum.

Die Zeitskalierung ist jedoch nicht genau eine Tonhöhenverschiebung. Verwenden Sie PSOLA nicht, wenn Sie etwas skalieren, einschließlich Gesang. Verwenden Sie entweder WSOLA oder eine Frequenzbereichsmethode wie einen Phasenvocoder.