#音高转换 #psola #时间拉伸

tdpsola

TD-PSOLA算法(保持音素的时间拉伸和音高转换)的实现

1 个不稳定版本

0.1.0 2020年9月20日

#493音频

42 每月下载量

AGPL-3.0

38KB
763 代码行

Tdpsola:tdpsola算法的实现

TD-PSOLA(时域音高同步重叠和添加)是一种算法,允许独立地修改声音的音高和速度。

算法

该算法背后的思想本身相当简单,但难以解释。我发现这篇文档最清晰。

TD-PSOLA的优点

  • 保留音素,即如果你提高人声的音高,它不会听起来像这个人是从氦气球中呼吸的
  • 适用于适度音高/速度变化的性能算法

TD-PSOLA的缺点

  • 对噪声不稳健,仅适用于带声音
  • 需要源声音的基频先验知识

实现

这是一个用Rust编程语言实现的实现。此实现的优点

  • 0 模板延迟
  • 分析部分和综合部分分离,允许你重用分析部分
  • 速度和音高可以在任何时候独立操作
  • 许多测试
  • 在内存安全的编程语言中实现,没有“不安全”功能

此实现的缺点

  • 算法为了确保 0 模板延迟而变得复杂。

示例

一个简单的示例可以在文档或 src/lib.rs 文件中找到。更详细的示例可以在源代码的 examples 文件夹中找到。

计划中的功能

  • 适用于实时分析和综合
  • 块处理以获得额外速度(目前只能按样本使用)

贡献

我们欢迎贡献,无论是以问题的形式还是以拉取请求的形式。在打开拉取请求之前,请先打开一个问题,以便您知道随后的拉取请求是否可能被批准。

如果您没有Codeberg账户,还可以通过电子邮件(电子邮件地址在Cargo.toml文件中)进行贡献。只需创建Codeberg账户可能就是最简单的方法。

除非明确说明,否则您同意您的贡献按照以下方式许可。

许可

这是一款免费软件:您可以在自由软件基金会发布的GNU Affero通用公共许可证的条款下重新分发它和/或修改它,许可证版本为3或更高版本(根据您选择)。

本软件的发布是希望它能有用,但没有任何保证;甚至没有关于其商誉或特定用途适用性的暗示保证。有关更多详细信息,请参阅GNU Affero通用公共许可证。

完整的许可证文本可以在随源代码一起分发的文件LICENSE-AGPL-3.0.md中找到。如果找不到,请参阅https://www.gnu.org/licenses/

无运行时依赖