niobures's picture
VoiceFilter (code, models, paper)
59f2f12 verified

VoiceFilter

Input

Audio file

  • Mixed audio

https://user-images.githubusercontent.com/29946532/149924386-1a67ec3c-390a-422e-b0b3-9540dff58c72.mov

  • Reference audio for d-vector

https://user-images.githubusercontent.com/29946532/149924422-3620f0fb-dca7-45a9-a465-c22bfb00d7ae.mov

Input an audio file that is spoken by multiple people and an audio file that contains the voices of the people you want to extract. The voice of one person is extracted and output.

Output

Audio file

  • Estimated audio

https://user-images.githubusercontent.com/29946532/149924467-124a6605-1a52-41ce-8d79-bc54335a0f28.mov

  • Ground truth

https://user-images.githubusercontent.com/29946532/149924495-1398c57b-5e8a-4012-8e9a-97e655a3ea26.mov

(Audio from http://swpark.me/voicefilter/)

Usage

Automatically downloads the onnx and prototxt files on the first run. It is necessary to be connected to the Internet while downloading.

For the sample wav,

$ python3 voicefilter.py --input mixed.wav --reference_file ref-voice.wav

If you want to specify the mixed audio, put the file path after the --input option, and to specify the reference audio, put the file path after the --reference_file option.
You can use --savepath option to change the name of the output file to save.

$ python3 voicefilter.py --input MIXED_WAV --reference_file REFERENCE_WAV --savepath SAVE_PATH

Reference

Framework

Pytorch

Model Format

ONNX opset=11

Netron

embedder.onnx.prototxt
model.onnx.prototxt