我正在尝试长时间找到算法PSOLA(音高同步重叠添加)或WSOLA(波形相似重叠添加),它们是声学或信号处理算法。
我在c ++中找到它,但我没有c ++经验,很难将它传递给Pascal。任何人都有这个代码在Pascal或知道在哪里找到它来复制?
答案 0 :(得分:3)
尝试SoundTouch DLL,它附带一个Delphi导入单元,因此您可以直接使用DLL。编译它应该不会太难。只需从MS下载站点下载免费的VC ++ Express,然后用它编译或者请VC ++的人为你编译。
FWIW,谁知道,经过一些修改,它也可以用C ++ Builder进行编译。
答案 1 :(得分:1)
大约十年前,我在praat(Delphi程序)中使用FSeqEdit来进行这些类型的计算,但我认为同样的方法今天仍然可以正常工作。
我写了一些praat-scripts并通过praatcons.exe(控制台版本的praat)执行它们。您可以从此页面下载控制台版本: http://www.fon.hum.uva.nl/praat/download_win.html
这非常好。
我通常采用这种方法: 我通过GUI版本的praat手动检查需要进行哪种类型的转换和计算。一旦找到我需要的东西,我就会为它创建一个脚本,并使用控制台版本运行它。
Praat非常强大,所以如果你还不知道,请务必查看。
这里有一个页面显示如何使用PSOLA再合成: http://www.ling.ohio-state.edu/~kyoon/praat-tut/praat-tut2.html
如果您想查看有关如何将其集成到Delphi应用程序中的示例代码,请告诉我(实际上它非常简单)。