Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jun 08:09

GitHub Downloads (all assets, specific tag)

中文

重大变更

  • 项目从 MelBandRoformer.cpp 更名为 BSRoformer.cpp,核心库目标从 mel_band_roformer 更名为 bs_roformer
  • CLI 可执行文件更名为 bs_roformer-cli
  • C++ 头文件路径从 mel_band_roformer/... 改为 bs_roformer/...
  • CMake 选项前缀从 MBR_* 改为 BSR_*,例如:
    • MBR_BUILD_TESTS -> BSR_BUILD_TESTS
    • MBR_BUILD_CLI -> BSR_BUILD_CLI
  • 测试与运行时环境变量改为 BSR_* 前缀,例如 BSR_MODEL_PATHBSR_TEST_DATA_DIR。保留的 CPU 兼容覆盖开关为 BSR_FORCE_CPU=1

新增功能

  • 新增 BS Roformer 架构支持,同时继续支持 Mel-Band-Roformer
  • GGUF 转换脚本支持架构自动检测,并新增 --arch 参数,可显式指定 bs / bs_roformer / mel_band / mel_band_roformer
  • 新增 Inference::CancelCallbackProcess()ProcessOverlapAdd() 支持推理取消;取消时抛出 std::runtime_error("Inference cancelled")
  • 新增 Inference::GetNumStems(),方便调用方读取模型输出 stem 数量。
  • 新增 CLI wall-time 基准脚本 scripts/benchmark.ps1

性能优化

  • 推理侧缓存图状态和缓冲区,减少重复分配。
  • STFT/ISTFT 改为基于查表的 FFT 实现,并加入内存池以降低分配开销。
  • 优化 BS Roformer 图构建与执行路径,减少不必要的拷贝、reshape 和中间张量。
  • 优化 QKV/RoPE/Flash Attention 相关图节点,并为不兼容权重形状保留 fused QKV 回退路径。
  • 优化 mask estimator 拼接逻辑,使用更均衡的 concat 构图方式。

修复

  • 修复 BSRoformer 中冗余 normalization,改善模型输出一致性。
  • 修复/补强 CUDA、Vulkan 与运行时 DLL 复制相关构建逻辑。
  • 文档更新后端质量与性能说明,明确 Vulkan 保守验证可使用 GGML_VK_DISABLE_COOPMAT2=1

测试

  • 新增取消回调行为测试。
  • 新增 STFT/ISTFT 与 PyTorch golden 数据一致性测试。
  • 更新测试目标、测试说明和环境变量命名。

English

Breaking Changes

  • Renamed the project from MelBandRoformer.cpp to BSRoformer.cpp; the core CMake target is now bs_roformer.
  • Renamed the CLI executable to bs_roformer-cli.
  • Updated public include paths from mel_band_roformer/... to bs_roformer/....
  • Renamed CMake options from MBR_* to BSR_*, for example:
    • MBR_BUILD_TESTS -> BSR_BUILD_TESTS
    • MBR_BUILD_CLI -> BSR_BUILD_CLI
  • Runtime/test environment variables now use the BSR_* prefix, such as BSR_MODEL_PATH and BSR_TEST_DATA_DIR. The retained CPU compatibility override is BSR_FORCE_CPU=1.

Added

  • Added BS Roformer architecture support while keeping Mel-Band-Roformer support.
  • Extended the GGUF converter with architecture auto-detection and a new --arch option.
  • Added Inference::CancelCallback; Process() and ProcessOverlapAdd() can now be cancelled and throw std::runtime_error("Inference cancelled").
  • Added Inference::GetNumStems() for reading the model stem count.
  • Added scripts/benchmark.ps1 for CLI wall-time benchmarking.

Performance

  • Cached inference graph state and buffers to reduce repeated allocations.
  • Optimized STFT/ISTFT with table-based FFT transforms and memory pooling.
  • Improved BS Roformer graph construction and execution by reducing extra copies, reshapes, and intermediate tensors.
  • Optimized QKV/RoPE/Flash Attention graph paths with a fused QKV fallback for incompatible weight shapes.
  • Improved mask estimator graph construction with balanced concatenation.

Fixed

  • Removed redundant normalization in BSRoformer for better output consistency.
  • Improved CUDA/Vulkan build handling and runtime DLL copying.
  • Updated backend quality/performance documentation, including conservative Vulkan validation via GGML_VK_DISABLE_COOPMAT2=1.

Tests

  • Added cancellation callback behavior tests.
  • Added STFT/ISTFT consistency tests against PyTorch golden data.
  • Updated test targets, documentation, and environment variable names.