PSOLA ou WSOLA est-il meilleur pour l'étirement / la réaccordage vocal?
Je cherche à implémenter un algorithme de modification de la hauteur du domaine temporel tel que PSOLA (Pitch Synchronous Overlap and Add) ou WSOLA (Waveform Similarity Overlap and Add).
Pour le moment, j'utilise PSOLA, mais il me semble que WSOLA serait plus robuste aux signaux polyphoniques avec des formes d'onde complexes, alors que PSOLA fonctionne mieux avec des signaux monophoniques tels que les voix. Je pense qu'il pourrait être préférable d'être à l'épreuve du temps en utilisant WSOLA, même si je ne suis intéressé que par les signaux monophoniques pour le moment.
Je me demande s'il y a un inconvénient à utiliser WSOLA par rapport à PSOLA.
Il semble que les deux techniques fonctionnent de la même manière, toutes deux identifiant la répétition dans la forme d'onde, bien que WSOLA ne se verrouille pas nécessairement sur le fondamental. Le verrouillage fondamental rend-il PSOLA supérieur pour les voix?
Pour être plus précis, j'essaie de déterminer les avantages et les inconvénients de WSOLA vs PSOLA pour les tâches suivantes:
- Correction de hauteur
- Correction du temps
- Correction formante
Réponses
Pour être plus précis, j'essaie de déterminer les avantages et les inconvénients de WSOLA vs PSOLA pour les tâches suivantes:
Correction de hauteur:
- PSOLA - Avantages, vous pouvez changer la hauteur directement en fonction de l'espace de taux entre les grains, garder les formants intacts ... pour changer la hauteur, vous n'avez pas besoin d'échelle de temps et rééchantillonner après.
- PSOLA - Inconvénient avez-vous besoin d'un détecteur de pas super puissant
- WSOLA - Inconvénient WSOLA n'est pas un algorithme Pitch Shift, WSOLA est un algorithme d'échelle de temps, pour changer la hauteur, il faudra une échelle de temps et les rééchantillonner, les formants seront perdus, donc vous aurez peut-être juste besoin d'un type d'autocorrélation pour trouver de beaux endroits pour trancher, donc ce n'est pas la même chose que les informations de hauteur, si vous construisez une correction automatique de la hauteur, une autocorrélation de base ne vous donnera pas les informations de hauteur correctes.
- WSOLA - l'un des avantages ici est que le découpage ne dépend pas de la hauteur, il suffit de découper la meilleure similitude de correspondance, rappelez-vous qu'il ne s'agit que d'un algorithme d'échelle de temps, vous aurez besoin de rééchantillonner pour changer la hauteur
Correction du temps:
Pour l'échelle de temps, je pense que le WSOLA a le meilleur avantage ici ou un TDHS
algorithme basé, ouais, vous pouvez utiliser PSOLA pour l'échelle de temps et appliquer le décalage de hauteur ensemble, juste un décalage de hauteur ou juste une échelle de temps, mais si vous n'êtes que la mise à l'échelle du temps, WSOLA est un intelligent choix, pas besoin de construire un détecteur Ultra Pitch dans WSOLA, une seule forme d'onde similaire résoudra votre problème (AutoCorrelation peut résoudre ...)
Correction formante:
- PSOLA - par défaut les formants seront intouchables, mais vous pouvez également déformer les formants, c'est incroyable dans PSOLA ...
- WSOLA - après l'échelle de temps et le rééchantillonnage, vos formants seront perdus et pour obtenir les formants d'origine, vous devrez obtenir les formants dans l'enveloppe spectrale à partir du signal d'origine et les appliquer dans le signal Pitch Shifted, vous pouvez le faire en utilisant un filtre passe-bas dans le spectral, utiliser un pic picking et interpoler ou utiliser un cepstre pour obtenir l'enveloppe ...
Je sais que PSOLA est infiniment plus complexe, mais je considère cet algorithme vraiment génial, si vous avez un PitchTrack décent, il vous donnera une grande polyvalence
Je pense que vous avez raison de dire que WSOLA est meilleur pour le polyphonique, mais il y a encore des problèmes dans cette méthode. La raison pour laquelle c'est un peu mieux est que l'algorithme de détection de pas ne recherche que de bons déplacements d'épissure. Si c'est une octave off, cela ne vous fait pas trop mal car l'épissure est toujours bonne. Cependant, si la hauteur change un accord de notes non harmonique (disons un accord diminué), alors il n'y aura pas de bons déplacements d'épissure, donc vous finirez par choisir celui qui est le moins mauvais.
Maintenant PSOLA nécessite de savoir exactement que les erreurs de hauteur et d'octave sonneront comme des erreurs d'octave. Mais c'est la méthode de changement de tonalité que vous voulez pour les voix et le papier que je veux dire explique pourquoi.
Mais la mise à l'échelle temporelle n'est pas exactement un changement de hauteur. Lorsque vous ajustez quoi que ce soit, y compris les voix, n'utilisez pas PSOLA. Utilisez WSOLA ou une méthode de domaine fréquentiel comme un vocodeur de phase.