python语音特征提取之使用ffmpeg与spleeter实现视频人声过滤

本文介绍了如何利用Python中的moviepy、ffmpeg和spleeter库来处理视频,实现视频与音频的分离,特别是人声与背景声的分离。详细步骤包括安装所需库、配置环境、分离音频和视频流,以及处理可能出现的错误。同时,针对tensorflow版本问题,给出了安装旧版tensorflow的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装过程中所涉及到的库有两种安装方式:通过pip或者conda安装。本次测试通过pip安装,使用镜像为清华源和豆瓣源。

安装moviepy

moviepy包是一个用来处理视频的库。这个库是Python视频编辑库,可裁剪、拼接、标题插入、视频合成、视频处理和自定义效果。
1.使用pip install moviepy安装,报错
在这里插入图片描述
2.使用豆瓣镜像下载

pip install moviepy -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com

在这里插入图片描述

安装ffmpeg

1.去官网下载ffmpeg(windows版本),并解压(解压到压缩文件名的文件夹)
2.在windows上配置系统环境变量Path
3.pip install ffmpeg-python

安装spleeter库

1.直接安装:

pip install --user spleeter

2.豆瓣镜像:

pip install --user spleeter -i https://pypi.doubanio.com/simple

3.不再手动训练,直接使用官方预测模型。目前spleeter提供三种音轨分离方式,其中:

  • Vocals (singing voice) / accompaniment separation (2 stems) —两个音轨:背景和人声
  • Vocals /drums / bass / other separation (4 stems) —四个音轨
  • Vocals / drums / bass /piano / other separation (5 stems)—五个音轨

可以自由选择。本次选择2stems模型进行背景与人声分离,手动下载安装过程如下:

  1. github下载2stems.tar.gz
    https://github.com/deezer/spleeter/releases
<think>嗯,用户之前问过如何在树莓派上安装Spleeter,而之前的回答已经给出了详细的步骤。现在用户再次提问,可能需要更针对树莓派的具体情况。我需要检查之前的回答是否适用于树莓派的环境,或者是否需要调整。 首先,树莓派是ARM架构的系统,而常规的Spleeter安装可能依赖x86架构的包。需要确认Python版本是否兼容,以及TensorFlow是否有ARM版本的支持。因为Spleeter基于TensorFlow,所以必须确保TensorFlow能在树莓派上运行。 接着,用户之前的问题中提到了使用Docker安装下载工具,可能用户对Docker比较熟悉。或许在树莓派上通过Docker安装Spleeter会更方便,避免环境依赖的问题。但需要检查是否有现成的Spleeter Docker镜像支持ARM架构。 另外,树莓派的资源有限,尤其是内存和处理器。安装Spleeter可能需要较多的资源,特别是处理大音频文件时。可能需要建议用户优化设置,比如使用轻量级模型或者限制资源使用。 然后,用户提到的引用内容是关于安装下载工具的,虽然Spleeter无关,但可能用户有下载音频文件的需求。是否需要补充如何将下载工具Spleeter结合使用?不过用户的问题集中在安装Spleeter上,可能不需要展开这部分。 需要验证步骤是否正确:安装Python、虚拟环境、依赖项如FFmpeg,以及处理可能的架构问题。例如,TensorFlow的ARM版本可能需要从特定源安装,或者使用社区支持的版本。 另外,常见问题方面,树莓派可能会遇到存储空间不足的问题,尤其是安装大型模型时。建议用户扩展存储,比如使用移动硬盘,如引用中提到的。 最后,生成的相关问题需要针对树莓派环境,比如性能优化、模型调整等,确保用户后续可能的问题也能得到覆盖。</think># 树莓派安装Spleeter完整指南 ## 一、树莓派特殊配置 1. 确认系统架构要求: - 树莓派OS(基于Debian Buster或更新版本) - ARMv7或ARMv8架构处理器(Raspberry Pi 3/4/5均支持) - 建议4GB以上内存(处理音频需要较大内存)[^1] 2. 存储扩展方案(推荐): ```bash sudo mkdir /mnt/external sudo mount /dev/sda1 /mnt/external # 假设移动硬盘设备为sda1 ``` ## 二、定制化安装流程 1. 安装系统依赖: ```bash sudo apt update && sudo apt install -y \ python3-pip \ libatlas3-base \ libgfortran5 \ ffmpeg ``` 2. 创建专用Python虚拟环境: ```bash python3 -m venv ~/spleeter_env source ~/spleeter_env/bin/activate ``` 3. 安装ARM兼容版本依赖: ```bash pip install --no-cache-dir \ tensorflow-2.8.0-cp39-none-linux_armv7l.whl \ # 需提前从第三方源获取 spleeter==2.3.0 ``` ## 三、模型部署方案 1. 优化模型存储路径: ```bash mkdir -p /mnt/external/spleeter_models wget -P /mnt/external/spleeter_models \ https://github.com/deezer/spleeter/releases/download/v1.4.0/2stems.tar.gz ``` 2. 配置环境变量: ```bash echo "export SPLEETER_MODEL_PATH=/mnt/external/spleeter_models" >> ~/.bashrc source ~/.bashrc ``` ## 四、性能优化设置 1. 内存限制配置: ```python # 创建~/.spleeter/config.json { "processes": 1, # 限制并行进程数 "MWF": false, # 关闭内存优化选项 "tensorflow": { "intra_op_parallelism": 1, "inter_op_parallelism": 1 } } ``` 2. 测试命令(带资源监控): ```bash free -m && spleeter separate -o output -p spleeter:2stems input.wav ``` ## 五、容器化方案(可选) 1. 使用ARM兼容Docker镜像: ```bash docker run --rm -it \ --device /dev/snd \ -v $(pwd)/input:/input \ -v $(pwd)/output:/output \ -e SPLEETER_MODEL_PATH=/models \ ghcr.io/arm64v8/spleeter:latest \ separate -i /input/track.mp3 -o /output ``` ## 常见问题解决 1. **Illegal instruction错误**:更新libopenblas库 ```bash sudo apt install libopenblas-dev libatlas3-base ``` 2. **内存不足处理**: ```bash sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 sudo mkswap /swapfile && sudo swapon /swapfile ``` 3. **音频设备权限问题**: ```bash sudo usermod -a -G audio pi ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值