利用spleeter库实现人声和音乐分离(踩过的坑及解决方法)

0:起因

事情的起因是:想用一首歌的伴奏剪视频,但找遍各大平台,都只有原曲,没有伴奏。能找到的进行人声和背景音乐分离的软件都要收费,最后决定用spleeter库,尝试进行音频分离。

1:开始

最开始参考的是下面的这篇文章

https://www.cnblogs.com/mq0036/p/17411981.html

 文章写的很好,但我在进行第一步就出了问题

 在安装spleeter库的时候,出现了依赖冲突的情况,但搜了很久,都没找到合适的解决办法

但后来在检查安装路径的时候,又能成功显示,就没继续管了。

 上面的那篇博客中还提到了,如果不想再本地搭建深度学习环境,可以用docker镜像安装(本来是想尝试的,但虚拟机才卸掉不久...加上自认为磁盘内存还够,便放弃了这一想法)

2:过程

库安装完了,接下来就是正式的运行环节

但又出了问题,报错:无法将“spleeter”项识别为 cmdlet、函数、脚本文件或可运行程序的名

 通过下面这篇博文找到了解决方案,即:将spleeter地址加入环境变量pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1_无法将pyinstaller_qq_2081540885的博客-CSDN博客

 但需要注意的是,重新执行命令时,需要先重启终端,不然还是会报错。

解决完以上问题,又报错了: ERROR:spleeter:ffmpeg binary not found

 经过查找,发现自己没有ffmpeg库,经下面的博客成功解决(相关文件在csdn也能下载)

使用Python扩展库spleeter分离MP3音乐文件中的伴奏和人声_dongfuguo的博客-CSDN博客

后面的运行没有报错了

3.结果

 经过漫长的等待,看着c盘空间从13G到9G,再到13G,音频终于分离完成

 当然,再次出问题了,我找不到输出的文件在哪

通过查询help,知道了默认路径,但还是没找到文件....

 最后,灵机一动,决定再分离一次,修改路径,借助了下面这位大佬的博客

伴奏提取神器spleeter探索记 - 知乎

 最后的最后,提取成功啦,也找到文件了~

 4:后记

当时还看了一篇博客

AI天后,在线飙歌,人工智能AI孙燕姿模型应用实践,复刻《遥远的歌》,原唱晴子(Python3.10) - 知乎

文章中还介绍了一种开源语音合成模型so-vits-svc,当时没看清,也直接部署了,目前还没尝试,以后有机会可以试试。

以及,当我完成了全部工作之后,惊奇的发现,竟然还有spleeterGUIMakenweb | Maken It So

但有一说一,做完还是蛮有成就感的,按照自己的意志去完成自己想做的事,解决了一个又一个困难,感受到来自己的进步!继续加油吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/3750.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第四课—大学英语四六级备考—听力专项

Key Words 1.monarch n.君主政治 非常抱歉误解了您的问题。以下是关于"monarch"这两个意义的常见用法、造句和固定搭配的例子: 1. Monarch(君主): - 造句: - The monarch of the country made an…

Kubernetes Pod篇

Pod基础概念: Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行的S…

RocketMQ_高级功能

目录 一、消息存储 1、存储介质以及性能对比 2、消息的存储和发送 3、消息存储结构 4、刷盘机制 二、高可用性机制 1、消息消费高可用 2、消息发送高可用 3、消息主从复制 三、负载均衡 1、Producer负载均衡 2、Consumer负载均衡 四、消息重试 1、顺序消息的重试…

串口通信-Modbus-rtu协议例程(51实现)

/*务必通过ISP通讯&#xff0c;烧录时&#xff0c;选11.0592Mhz进行烧录&#xff0c;否则数据会乱码modbus-rtu 处理过程主机数据接收(超时机制&#xff0c;不定长接收)->数据校验码判断-> */ #include <STC15F2K60S2.H> #include "string.h" typedef un…

CentOS 8安装Oracle 19c rpm包

一、环境 centos 8 oracle 19c rpm安装 二、安装前准备 1、创建用户组 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle2、安装依赖包 如果yum找不到安装包&#xff0c;可以去下载 https://centos.pkgs.org/ 点击跳转 缺少的依赖包可…

【JavaSE】程序逻辑控制

目录 【1】概念 【2】顺序结构 【3】分支结构 【3.1】if 语句 【3.2】switch 语句 【4】循环结构 【4.1】while 循环 【4.2】for 循环 【4.3】do while 循环 【4.4】break 关键字 【4.5】continue 关键字 【5】输入输出 【5.1】输出到控制台 【5.2】从键盘输入 …

stm32或gd32移植libcanard实现UAVCAN协议

一、源码下载 1、git下载 点击我下载 2、csdn下载 自己上传的点击下载 二、源码移植 我自己是使用rt-thread操作系统移植的。但是不局限与操作系统&#xff0c;裸机也可以。 1、首先将源码加入到工程 2、分别实现一个内存的分配与释放函数&#xff0c;他是一个指针函数&…

js 左右滑动切换图片

一、效果图 二、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdev…

vscode设置可以搜索包含node_modules中的文件

步骤3中删除掉node_modules&#xff0c;再搜索的时候&#xff0c;node_modules的匹配到代码也会展示出来了。 如果不想要被搜索文件包含node_modules,再添加上就可以。

MySQL 连接的使用

MySQL 连接的使用 在前几章节中&#xff0c;我们已经学会了如何在一张表中读取数据&#xff0c;这是相对简单的&#xff0c;但是在真正的应用中经常需要从多个数据表中读取数据。 ​ 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在 SEL…

webstorm配置vue开发环境

&#x1f333;&#x1f333;&#x1f333;前言&#xff1a;本文章针对于如何用IDE和webstorm运行一个别人的vue项目进行步骤记录。 &#x1f4d9;参考&#xff1a;(10条消息) idea配置vue开发环境_idea配置vue运行环境_drinkworld的博客-CSDN博客https://blog.csdn.net/drinkwo…

容器生态系统概念讲解

容器生态系统 这张图显示了 Docker、Kubernetes、CRI、OCI、containerd 和 runc 在这个生态系统中是如何结合的。 其工作流程简单来说是这样的&#xff1a; Docker&#xff0c;Kubernetes 等工具来运行一个容器时会调用容器运行时&#xff08;CRI&#xff09;比如 containerd…