PSOLA veya WSOLA, vokal gerdirme / yeniden ayarlama için daha mı iyi?
PSOLA (Pitch Synchronous Overlap and Add) veya WSOLA (Waveform Similarity Overlap and Add) gibi bir zaman etki alanı adım değiştirme algoritması uygulamak istiyorum.
Şu anda PSOLA kullanıyorum, ancak bana öyle geliyor ki WSOLA, karmaşık dalga biçimli polifonik sinyallere karşı daha sağlam olurken, PSOLA vokaller gibi monofonik sinyallerle daha iyi çalışıyor. Şimdilik sadece monofonik sinyallerle ilgilenmeme rağmen WSOLA'yı kullanarak geleceğe hazır olmanın daha iyi olabileceğini hissediyorum.
PSOLA'nın aksine WSOLA kullanmanın herhangi bir dezavantajı olup olmadığını merak ediyorum.
Görünüşe göre her iki teknik de benzer bir şekilde çalışıyor, her ikisi de dalga formu içindeki tekrarı tanımlıyor, ancak WSOLA mutlaka esasa bağlı değil. Temel kilitleme, PSOLA'yı vokaller için üstün kılıyor mu?
Daha kesin olmak gerekirse, aşağıdaki görevler için WSOLA ile PSOLA'nın avantajlarını ve dezavantajlarını çözmeye çalışıyorum:
- Adım doğrulama
- Zaman düzeltme
- Biçimlendirici düzeltme
Yanıtlar
Daha kesin olmak gerekirse, aşağıdaki görevler için WSOLA ile PSOLA'nın avantajlarını ve dezavantajlarını çözmeye çalışıyorum:
Adım doğrulama:
- PSOLA - Avantajları perdeyi doğrudan tahıllar arasındaki oran boşluğuna göre değiştirebilir, formmantları net tutabilirsiniz ... perdeyi değiştirmek için zaman ölçeğine ve daha sonra yeniden örneklemeye ihtiyacınız yoktur.
- PSOLA - Dezavantaj, süper güç aralığı dedektörüne ihtiyacınız var mı
- WSOLA - Dezavantaj WSOLA tek bir Pitch Shift algoritması değildir, WSOLA bir Zaman Ölçeği algoritmasıdır, perdeyi değiştirmek için zaman ölçeğine ihtiyaç duyulur ve yeniden örneklenir, formantlar kaybolur, bu nedenle güzel yerler bulmak için belki sadece bir tür otokorelasyona ihtiyacınız vardır bir Otomatik Perde Düzeltmesi oluşturuyorsanız, bir temel otomatik korelasyon size doğru Perde Bilgisini vermeyecektir.
- WSOLA - buradaki avantajlardan biri, Pitch'in dilime bağlı olmamasıdır, sadece en iyi eşleşme benzerliğinde dilimleyin, bunun sadece bir zaman ölçeği algoritması olduğunu unutmayın, perdeyi değiştirmek için yeniden örneklemeniz gerekecek
Zaman düzeltme:
Zaman ölçeği için WSOLA'nın burada en iyi avantaja sahip olduğunu veya bazı TDHS
temel algoritmalara sahip olduğunu düşünüyorum, evet, PSOLA'yı zaman ölçeği ve birlikte adım kaydırma, yalnızca adım kaydırma veya yalnızca zaman ölçeği için kullanabilirsiniz, ancak yalnızca zaman ölçeklemesiyseniz, WSOLA bir akıllıdır seçim, WSOLA'da bir Ultra Pitch Detector oluşturmaya gerek yok, sadece bir dalga formu probleminizi çözecektir (AutoCorrelation çözebilir ...)
Biçimlendirici düzeltme:
- PSOLA - varsayılan olarak formants dokunulmaz olacaktır, ancak formants'ı da çarpıtabilirsiniz, PSOLA'da harika ...
- WSOLA - Zaman ölçeğinden ve yeniden örneklemeden sonra formantlarınız kaybolacak ve orijinal formantları elde etmek için orijinal sinyalden spektral zarftaki formantları almanız ve Pitch Shifted sinyalinde uygulamanız gerekecek, bunu bir düşük geçiş filtresi kullanarak yapabilirsiniz. spektral, bir tepe toplama ve ara değerleme kullanın veya zarfı elde etmek için bir cepstrum kullanın ...
PSOLA'nın çok daha karmaşık olduğunu biliyorum, ancak bu algoritmanın gerçekten harika olduğunu düşünüyorum, eğer düzgün bir PitchTrack'iniz varsa, size çok yönlülük sağlayacaktır
WSOLA'nın polifonik için daha iyi olduğu konusunda haklısınız, ancak bu yöntemde hala aksaklıklar var. Biraz daha iyi olmasının nedeni, perde algılama algoritmasının yalnızca iyi ekleme yer değiştirmeleri aramasıdır. Bir oktav kapalıysa, bu sizi o kadar da incitmez çünkü ek yeri hala iyidir. Bununla birlikte, notaların harmonik olmayan bir akorunu değiştiriyorsa (azalmış bir akor gibi), o zaman iyi bir ekleme yer değiştirmesi olmayacaktır, bu nedenle en az kötü olanı seçmiş olursunuz.
Artık PSOLA, perdeyi tam olarak bilmeyi gerektiriyor ve oktav hataları oktav hataları gibi ses çıkaracak. Ama vokaller için istediğiniz perde değiştirme yöntemi bu ve nedenini açıklamak için işaret ettiğim kağıt.
Ancak zaman ölçeklendirme, tam olarak perde değişimi değildir. Vokaller dahil herhangi bir şeyi zaman ölçeklendirirken PSOLA kullanmayın. WSOLA'yı veya faz ses kodlayıcı gibi bir frekans etki alanı yöntemini kullanın.