Delphi中的信号处理算法Psola或Wsola

时间:2011-08-30 20:02:58

标签: delphi pascal freepascal

我正在尝试长时间找到算法PSOLA(音高同步重叠添加)或WSOLA(波形相似重叠添加),它们是声学或信号处理算法。

我在c ++中找到它,但我没有c ++经验,很难将它传递给Pascal。任何人都有这个代码在Pascal或知道在哪里找到它来复制?

像c ++这样的例子 http://sourceforge.net/projects/mffmtimescale/files/v3%20stable/v3.9/WSOLA.v.3.9.zip/download?use_mirror=ufpr

2 个答案:

答案 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应用程序中的示例代码,请告诉我(实际上它非常简单)。