自动化 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 | 第一次运行实现 |
旧版下载
去做
- 编写单元测试
- 更复杂的统计后处理
- 评估部分自动定时检测的方法
- 用于多倍频程检测的孪生神经网络
- 用更高的采样率评估准确性
- 将预处理集成到模型中
- 评估具有可变输入长度的 fcnn 网络
- 将重采样集成到模型中
- 使用序列模型(rnns、grus、lstms)评估准确性
- 更多日志记录
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
ultrastar_pitch -1.0.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5a2a7e22aaa22d743efa7940c21a175b55602844ba0ff8ae319c7c34abf42def |
|
| MD5 | d2ab56e3bc8d89ce5f01397e213b4faf |
|
| 布莱克2-256 | 976825739b0d3718d68ae6c9d3e6e26f73e76d33d47063ec6abb2d07e73b4827 |
ultrastar_pitch -1.0.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4155d35f6d29219ece16330fb1e6979bb2966bce6ef814c795aa8719dc5df888 |
|
| MD5 | a896263be9206dc757e52a9ea191514e |
|
| 布莱克2-256 | 7a28834684b6c900e1ef03b1756e6a2b84d6b27c1861b7ada907fe79358a6838 |