Skip to main content

自动化 Ultrastar Deluxe 卡拉 OK 项目的音高检测过程

项目描述

ultrastar_pitch

这个 python 应用程序可以自动检测超明星豪华项目的音高。

用法

该软件可以与用户界面一起使用,也可以作为命令行应用程序使用。Windows二进制文件作为图形用户应用程序自动启动。

对于 cli 执行,只需在项目文件夹中运行命令。下面列出了其他标志。如果 usdx 文件名为“notes.txt”,则不需要任何参数。否则必须明确说明:
ultrastar-pitch name.txt
如果一切顺利,应该会出现一个新文件“notes_new.txt”。如果需要不同的输出名称,可以使用“-o”标志进行更改:
ultrastar-pitch -o name_new.txt

分裂者

spleeter 项目使用深度学习来分离歌曲的声乐部分和器乐部分。在某些情况下(主要是原声歌曲),ultrastar-pitch 与孤立的人声数据相比表现更好。在其他情况下,由于引入的伪影/信息丢失,其准确性会下降。

为了将 spleeter 与 ultrastar-pitch 一起使用,需要执行几个步骤:

  • spleeter 产生多个输出。vocals.wav 文件需要放在和 notes.txt 文件相同的目录下。
  • 在notes.txt 文件中,“#MP3”标签需要更改,它指的是人声文件(例如“#MP3:vocals.wav”)。
  • 运行 ultrastar-pitch 后,“#MP3”标签需要恢复

安装

如果您使用的是二进制文件,那么一切都应该是开箱即用的。
如果出现错误,请尝试安装 Microsoft Visual C++ Redistributable x64 (2010+2015)。

如果要使用 python 应用程序,请执行以下操作:

视窗

安装最新版本的Python 3
安装最新版本的ffmpeg
打开 CMD/Powershell 并输入:
pip install ultrastar-pitch

linux (debian)

打开终端并输入:
sudo apt-get install python3 python3-pip ffmpeg
pip install ultrastar-pitch

旗帜

nono 图形执行的命令行选项:

旗帜 描述
-H 显示此帮助信息并退出
-o 指定输出文件名
-G 启用图形用户界面
-m 禁用随机后处理
-一个 显示预测精度(调试标志)
-l 设置日志记录级别(调试标志)

开发者信息

构建说明(仅限 Windows)

该软件可以编译成一个独立的二进制文件。为此,必须安装额外的软件包。
pip install pyinstaller

要将 ffmpeg 包含到二进制文件中,需要按照 setup.spec 文件的指定放置它。默认为项目根目录中的“ffmpeg\bin\ffmpeg.exe”。

构建过程相当简单。只需在 cmd/powershell 中执行以下命令:
pyinstaller setup.spec

执行

该软件需要一个定时的 usdx 项目文件和相应的音频文件。歌曲被转换为单声道 wav 并被分割成预定义的音频片段。这些块被划分为要转换为特征的块。然后将输出输入神经网络以确定音高。统计后处理用于确定歌曲的伪键。重新评估预测的音高以匹配伪键。

深度学习模型是在一个大型卡拉 OK 数据库上训练的。构建您自己的模型的详细信息可以在 dev/ 文件夹中找到。

准确性

这种方法的精度随着分析的音频而变化很大。例如,背景音乐缓慢、女声强烈的民谣可以达到 90% 以上的准确率,而背景音乐响亮、男声粗暴的摇滚歌曲的准确率可能会下降到 30% 以下。

api

该软件由多个模块组成:

模块 描述
项目解析器 解析 note.txt 项目文件以获取可唱歌的音频片段
音频预处理器 将音频片段转换为音高检测的特征
音高分类器 从特征预测音高
随机后处理器 通过应用随机变量提高预测准确性
检测管道 在一个管道中执行上述模型

每个模块都可以在您自己的项目中使用。只需像这样导入它们:
from ultrastar_pitch import module

变更日志

版本 变更日志
1.0.1 修复了编码问题并强制执行 python 版本
1.0.0 简约的 gui,新的预处理算法,新的模型,api 重组
0.82 使用动态步幅来加速处理,移除模型初始化器,小修复
0.81 修复了静音音频输入的异常
0.80 切换到 onnx 框架进行模型加载和推理
0.73 添加了对 ansi 编码的 note.txt 文件的支持
0.72 通过微优化优化性能
0.71 从中值转换到最高似然音高评估
0.70 使用统计分布来改进预测
0.64 从 scipy.io 切换到 wave 库以加载音频
0.6x 提高模型准确性和预测速度
0.60 从平均音高评估切换到中值音高评估,更改了许可证
0.50 实施 PCA,将 tensorflow 升级到版本 2,并提高了模型的准确性和速度
0.41 某些边缘情况的固定行为
0.40 完整的重组和应用程序作为命令行应用程序工作
0.34 bug修复
0.33 使用绝对路径而不是相对路径
0.32 将模型添加到 PyPi 存储库 -> 现在默认使用
0.31 用分类器和更新的安装程序脚本替换许可证字段
0.30 添加了深度学习支持并提高了源代码的可读性
0.21 让pyinstaller运行->二进制不再需要单独的ffmpeg
0.20 用 subprocess 和 scipy wavfile read 替换 pydub -> 更快的处理
0.10 第一次运行实现

旧版下载

旧二进制文件
旧 Python 轮子

去做

  • 编写单元测试
  • 更复杂的统计后处理
  • 评估部分自动定时检测的方法
  • 用于多倍频程检测的孪生神经网络
  • 用更高的采样率评估准确性
  • 将预处理集成到模型中
  • 评估具有可变输入长度的 fcnn 网络
  • 将重采样集成到模型中
  • 使用序列模型(rnns、grus、lstms)评估准确性
  • 更多日志记录

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ultrastar_pitch-1.0.1.tar.gz (111.4 kB 查看哈希

已上传 source

内置分布

ultrastar_pitch-1.0.1-py3-none-any.whl (110.5 kB 查看哈希

已上传 py3