Haskell 中的音频和信号处理

Posted

技术标签:

【中文标题】Haskell 中的音频和信号处理【英文标题】:Audio and Signal Processing in Haskell 【发布时间】:2013-01-16 23:32:53 【问题描述】:

你知道在 Haskell 中进行音频合成/信号处理的活跃尝试吗?是用于现场表演还是仅用于离线处理?我不是在寻找依赖外部工具的库(例如与 SuperCollider 的绑定)。

我找到了synthesizer,但是好久没更新了。

dsp 也很有趣。但是有维护吗?

对于纯信号处理,还有长石。它得到维护和发展。也许它可以作为未来构建面向音频的信号处理库的基础。

有没有类似的包?

【问题讨论】:

hackage.haskell.org/package/HarmTrace 和 chordify.net/pages/how-to-use-chordify 我最近开始编写一个用于编码/解码声音的库,并带有一个额外的抽象接口来操作声音。它导出一个抽象数据类型Sound,您可以将其用作TimeSample 函数(类似于实值函数,但最终可能在图像中有多个通道)。这样,您可以进行信号合成和处理,然后将其编码到声音文件中。此外,我正在花一些时间来确保有效地进行操作。我不知道这是不是你要找的。​​span> 我正在寻找 Haskell 中标准音频和信号处理算法的集合。当然,还可以从/向标准声音格式导入/导出。 Henning Thielemann 仍在致力于综合(如果不是 synthesizer 包的话) - 他在 haskell-art 邮件列表中发布了一些令人印象深刻的演示,这些演示使用通过 LLVM 进行的嵌入式编译。 【参考方案1】:

有一本名为Haskell School of Music 的教科书,它似乎可以在线免费获得。它使用了一个名为 euterpea-2 的库

Euterpea 是一种广谱语言,适用于高级音乐 表示、算法组成和分析;中级 MIDI等概念;和低级音频处理,声音 合成和仪器设计。

【讨论】:

谢谢。我会看看它。但似乎它更注重音乐。我正在寻找比可用于编码语音处理算法或更通用音频系统的更通用的库。可以用于研究信号处理系统的东西。因此,如果它不是实时的,那并不是真正的问题。 Paul Hudak 和他的学生最近的作品中仍然有相当多的合成(而不是纯粹的音乐表现)。您可能想查看耶鲁网站上的一些技术报告以了解更多详细信息。【参考方案2】:

我已将“合成器”拆分为合成器核心、-Dimension、-midi、-alsa、-llvm。 LLVM 部分旨在进行非常高效的处理。您可以在 YouTube 上看到几个示例: http://www.youtube.com/playlist?list=PL51EB5843B3980883

我还将在下周的 LLVM 会议上就该主题发表演讲: http://llvm.org/devmtg/2013-04/#ltalkabstract

另请参阅: http://www.haskell.org/haskellwiki/Synthesizer

我还保持 dsp 包运行,但到目前为止还没有扩展它。

【讨论】:

以上是关于Haskell 中的音频和信号处理的主要内容,如果未能解决你的问题,请参考以下文章

LabVIEW中的音频处理(流处理可能吗??)

python中的视频和音频处理库

寻找可以处理 Haskell 的网络主机 [关闭]

是否有使用严格评估的 Haskell 编译器或预处理器?

Windows 8.1 中的系统音频处理对象 (sAPO) 和 Skype

为啥这个 Haskell 代码可以成功地处理无限列表?