Option "-n tasnet" does not work in new release
See original GitHub issue🐛 Bug Report
The new release has broken the “-n tasnet” option.
To Reproduce
- Install the new release.
- Try to run a command with the “-n tasnet” option. This is the specific command that failed for me:
python '-m demucs.separate -d cpu -n tasnet ./input/54929fb09f6be3e5cbc82ec456e952bea6dd70ac.mp3 -o ./output
Expected behavior
The command should separate the input mp3 into a vocals, bass, etc., wav file.
Actual Behavior
Here is my entire log I got back when trying this command:
root@93bbeef08257:/usr/src/app# python -m demucs.separate -d cpu -n tasnet ./input/f884b7fe0188471a4da0bce3c9b9bfdcfa362511.mp3 -o ./output
FATAL: tasnet is neither a single pre-trained model or a bag of models.
Your Environment
I am running demucs with an express server inside a node/python Docker container. I build the container’s image using the following Dockerfile
:
FROM nikolaik/python-nodejs:python3.9-nodejs17
# Create app directory
WORKDIR /usr/src/app
RUN apt-get -y update
RUN apt-get -y upgrade
# Install newest ffmpeg via binary build:
RUN wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
RUN wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz.md5
RUN tar xvf ffmpeg-git-amd64-static.tar.xz
RUN mv $(pattern="ffmpeg" && for _dir in *"${pattern}"*; do [ -d "${_dir}" ] && dir="${_dir}" && break; done && echo "${dir}")/ffmpeg $(pattern="ffmpeg" && for _dir in *"${pattern}"*; do [ -d "${_dir}" ] && dir="${_dir}" && break; done && echo "${dir}")/ffprobe /usr/local/bin/
# Install vocals separator:
RUN python3 -m pip install demucs --no-cache-dir
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
# Install npm dependencies:
RUN yarn install
# If you are building your code for production:
# RUN npm ci --only=production
# Bundle app source:
COPY . .
EXPOSE 3001
CMD [ "node", "src/express/express.js" ]
That Dockerfile above automatically installs the newest version of demucs. This same command was working fine up until this morning; I had gotten split vocals from it as recently as 8 AM EST.
Installing the old version of demucs, 2.0.3, made this command work again.
I did that by replacing this line…
RUN python3 -m pip install demucs --no-cache-dir
…with this line:
RUN python3 -m pip install demucs==2.0.3 --no-cache-dir
That version change allowed the command with the -n tasnet
option to be successfully run.
- Python and PyTorch version:
Python version is 3.9; not sure what PyTorch is. If you need it I can get you it later, just wanted to drop this ASAP since the new release went out and is in a state of (presumed) hypercare.
- Operating system and version (desktop or mobile):
MacOS 11.5.1, but, again, this bug got thrown by a python/node build running inside a Docker container. The container’s python version is 3.9; the node version is 17. Please see the following image for more info: nikolaik/python-nodejs:python3.9-nodejs17
- Hardware (gpu or cpu, amount of RAM etc.):
Issue Analytics
- State:
- Created 2 years ago
- Comments:6 (3 by maintainers)
Top GitHub Comments
Sorry about that, support for Tasnet was dropped in the latest version. This was an very large rewrite and it was too much work to keep backward compatibility. Feel free to stay at the v2 version if you want to keep using it!
Great, thanks…closing.