Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

torchaudio.sox_effects.apply_effects_file failed to load from .mp3 format #2691

Closed
maxwellzh opened this issue Sep 19, 2022 · 4 comments
Closed

Comments

@maxwellzh
Copy link

🐛 Describe the bug

Directly load .mp3 audio with torchaudio.sox_effects.apply_effects_file will fail:

import torchaudio

file = "clips/common_voice_id_25649986.mp3"
effects = [['speed', '0.9'], ['rate', '48000']]
torchaudio.sox_effects.apply_effects_file(file, effects)
# output:
# RuntimeError: Failed to load audio from clips/common_voice_id_25649986.mp3

But torchaudio.load could make it:

# this won't produce error.
torchaudio.sox_effects.apply_effects_tensor(
    torchaudio.load(file)[0], 48000, effects
)

Versions

Collecting environment information...
PyTorch version: 1.12.1
Is debug build: False
CUDA used to build PyTorch: 11.3
ROCM used to build PyTorch: N/A

OS: Ubuntu 18.04.5 LTS (x86_64)
GCC version: (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Clang version: Could not collect
CMake version: version 3.10.2
Libc version: glibc-2.27

Python version: 3.10.4 (main, Mar 31 2022, 08:41:55) [GCC 7.5.0] (64-bit runtime)
Python platform: Linux-4.15.0-142-generic-x86_64-with-glibc2.27
Is CUDA available: True
CUDA runtime version: 11.3.58
GPU models and configuration:
GPU 0: NVIDIA GeForce RTX 3090
GPU 1: NVIDIA GeForce RTX 3090
GPU 2: NVIDIA GeForce RTX 3090
GPU 3: NVIDIA GeForce RTX 3090
GPU 4: NVIDIA GeForce RTX 3090
GPU 5: NVIDIA GeForce RTX 3090
GPU 6: NVIDIA GeForce RTX 3090
GPU 7: NVIDIA GeForce RTX 3090
GPU 8: NVIDIA GeForce RTX 3090
GPU 9: NVIDIA GeForce RTX 3090

Nvidia driver version: 470.74
cuDNN version: Probably one of the following:
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

Versions of relevant libraries:
[pip3] numpy==1.23.1
[pip3] torch==1.12.1
[pip3] torch-edit-distance==0.3.0
[pip3] torchaudio==0.12.1
[pip3] torchvision==0.13.1
[conda] blas 1.0 mkl defaults
[conda] cudatoolkit 11.3.1 h2bc3f7f_2 defaults
[conda] mkl 2021.4.0 h06a4308_640 defaults
[conda] mkl-service 2.4.0 py310h7f8727e_0 defaults
[conda] mkl_fft 1.3.1 py310hd6ae3a3_0 defaults
[conda] mkl_random 1.2.2 py310h00e6091_0 defaults
[conda] numpy 1.23.0 pypi_0 pypi
[conda] numpy-base 1.23.1 py310hcba007f_0 defaults
[conda] pytorch 1.12.1 py3.10_cuda11.3_cudnn8.3.2_0 pytorch
[conda] pytorch-mutex 1.0 cuda pytorch
[conda] torch-edit-distance 0.3.0 dev_0
[conda] torchaudio 0.12.1 py310_cu113 pytorch
[conda] torchvision 0.13.1 py310_cu113 pytorch

@mthrok
Copy link
Collaborator

mthrok commented Sep 20, 2022

Hi @maxwellzh

This is due to the change made in v0.12. Loading MP3 is now delegated to FFmpeg in TorchAudio, but apply_effects_file cannot do that. As an alternative, can you load the MP3 into Tensor and call apply_effects_tensor on it?

@maxwellzh
Copy link
Author

@mthrok apply_effects_tensor is OK, as I said in the bug description

# this won't produce error.
torchaudio.sox_effects.apply_effects_tensor(
    torchaudio.load(file)[0], 48000, effects
)

So I think torchaudio should deprecate apply_effects_file function or maybe at least update the document.

@rbracco
Copy link

rbracco commented Oct 17, 2022

I also experienced this and agree with @maxwellzh's solution to deprecate apply_effects_file or fix the docs as this was an
unexpected breaking change for some of us, and will cause a confusing bug for others. Thank you both for work on this issue!

@mthrok
Copy link
Collaborator

mthrok commented Jul 31, 2023

Hi folks

With the recent change in libsox, this issue should be resolved. with #3497, torchaudio now relies on externally installed libsox, and most libsox distributions have mp3 support.

@mthrok mthrok closed this as completed Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants