117 lines
8.3 KiB
Python
117 lines
8.3 KiB
Python
from clearvoice import ClearVoice
|
|
|
|
##-----Demo One: use MossFormer2_SR_48K model for speech super-resolution -----------------
|
|
if True:
|
|
myClearVoice = ClearVoice(task='speech_super_resolution', model_names=['MossFormer2_SR_48K'])
|
|
|
|
##1sd calling method: process the waveform from input file and return output waveform, then write to output_MossFormer2_SR_48K_xxx with the same audio format
|
|
output_wav = myClearVoice(input_path='samples/input_sr_8k.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SR_48K_input_sr_8k.wav')
|
|
|
|
##2nd calling method: process all wav files in 'path_to_input_wavs_sr/' and write outputs to 'path_to_output_wavs'
|
|
myClearVoice(input_path='samples/path_to_input_wavs_sr', online_write=True, output_path='samples/path_to_output_wavs')
|
|
|
|
##3rd calling method: process wav files listed in .scp file, and write outputs to 'path_to_output_wavs_scp/'
|
|
myClearVoice(input_path='samples/scp/audio_samples_sr.scp', online_write=True, output_path='samples/path_to_output_wavs_scp')
|
|
|
|
##-----Demo Two: use MossFormer2_SR_48K model for speech super-resolution on noisy speech data-----------------
|
|
if False:
|
|
# Assume you have noisy speech audios and want to do speech super-resolution
|
|
# Constructs two objects for speech enhancement and super-resolution, respectively.
|
|
myClearVoice_SE = ClearVoice(task='speech_enhancement', model_names=['MossFormer2_SE_48K'])
|
|
myClearVoice_SR = ClearVoice(task='speech_super_resolution', model_names=['MossFormer2_SR_48K'])
|
|
|
|
# Perform speech enhancement
|
|
output_wav = myClearVoice_SE(input_path='samples/input.wav', online_write=False)
|
|
myClearVoice_SE.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_input.wav')
|
|
# Perform speech super-resolution
|
|
output_wav = myClearVoice_SR(input_path='samples/output_MossFormer2_SE_48K_input.wav', online_write=False)
|
|
myClearVoice_SR.write(output_wav, output_path='samples/output_MossFormer2_SR_48K_input.wav')
|
|
|
|
# Perform speech enhancement
|
|
output_wav = myClearVoice_SE(input_path='samples/speech2.wav', online_write=False)
|
|
myClearVoice_SE.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech2.wav')
|
|
# Perform speech super-resolution
|
|
output_wav = myClearVoice_SR(input_path='samples/output_MossFormer2_SE_48K_speech2.wav', online_write=False)
|
|
myClearVoice_SR.write(output_wav, output_path='samples/output_MossFormer2_SR_48K_speech2.wav')
|
|
|
|
##-----Demo Three: use MossFormer2_SE_48K model for speech enhancement -----------------
|
|
if False:
|
|
myClearVoice = ClearVoice(task='speech_enhancement', model_names=['MossFormer2_SE_48K'])
|
|
|
|
##1sd calling method: process the waveform from input file and return output waveform, then write to output_MossFormer2_SE_48K_xxx with the same audio format
|
|
output_wav = myClearVoice(input_path='samples/input.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_input.wav')
|
|
output_wav = myClearVoice(input_path='samples/speech2.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech2.wav')
|
|
output_wav = myClearVoice(input_path='samples/speech1.mp3', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech1.mp3')
|
|
output_wav = myClearVoice(input_path='samples/speech1.flac', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech1.flac')
|
|
output_wav = myClearVoice(input_path='samples/speech1.ogg', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech1.ogg')
|
|
output_wav = myClearVoice(input_path='samples/speech1.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech1.wav')
|
|
output_wav = myClearVoice(input_path='samples/speech2.aac', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech2.aac')
|
|
output_wav = myClearVoice(input_path='samples/speech2.aiff', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SE_48K_speech2.aiff')
|
|
|
|
##2nd calling method: process all wav files in 'path_to_input_wavs/' and write outputs to 'path_to_output_wavs'
|
|
myClearVoice(input_path='samples/path_to_input_wavs', online_write=True, output_path='samples/path_to_output_wavs')
|
|
|
|
##3rd calling method: process wav files listed in .scp file, and write outputs to 'path_to_output_wavs_scp/'
|
|
myClearVoice(input_path='samples/scp/audio_samples.scp', online_write=True, output_path='samples/path_to_output_wavs_scp')
|
|
|
|
##-----Demo Four: use FRCRN_SE_16K model for speech enhancement -----------------
|
|
if False:
|
|
myClearVoice = ClearVoice(task='speech_enhancement', model_names=['FRCRN_SE_16K'])
|
|
|
|
##1sd calling method: process an input waveform and return output waveform, then write to output_FRCRN_SE_16K.wav
|
|
output_wav = myClearVoice(input_path='samples/input.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_FRCRN_SE_16K.wav')
|
|
|
|
##2nd calling method: process all wav files in 'path_to_input_wavs/' and write outputs to 'path_to_output_wavs'
|
|
myClearVoice(input_path='samples/path_to_input_wavs', online_write=True, output_path='samples/path_to_output_wavs')
|
|
|
|
##3rd calling method: process wav files listed in .scp file, and write outputs to 'path_to_output_wavs_scp/'
|
|
myClearVoice(input_path='samples/scp/audio_samples.scp', online_write=True, output_path='samples/path_to_output_wavs_scp')
|
|
|
|
##-----Demo Five: use MossFormerGAN_SE_16K model for speech enhancement -----------------
|
|
if False:
|
|
myClearVoice = ClearVoice(task='speech_enhancement', model_names=['MossFormerGAN_SE_16K'])
|
|
|
|
##1sd calling method: process the waveform from input.wav and return output waveform, then write to output_MossFormerGAN_SE_16K.wav
|
|
output_wav = myClearVoice(input_path='samples/input.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormerGAN_SE_16K.wav')
|
|
|
|
##2nd calling method: process all wav files in 'path_to_input_wavs/' and write outputs to 'path_to_output_wavs'
|
|
myClearVoice(input_path='samples/path_to_input_wavs', online_write=True, output_path='samples/path_to_output_wavs')
|
|
|
|
##3rd calling method: process wav files listed in .scp file, and write outputs to 'path_to_output_wavs_scp/'
|
|
myClearVoice(input_path='samples/scp/audio_samples.scp', online_write=True, output_path='samples/path_to_output_wavs_scp')
|
|
|
|
##-----Demo Six: use MossFormer2_SS_16K model for speech separation -----------------
|
|
if False:
|
|
myClearVoice = ClearVoice(task='speech_separation', model_names=['MossFormer2_SS_16K'])
|
|
|
|
##1sd calling method: process an input waveform and return output waveform, then write to output_MossFormer2_SS_16K_s1.wav and output_MossFormer2_SS_16K_s2.wav
|
|
output_wav = myClearVoice(input_path='samples/input_ss.wav', online_write=False)
|
|
myClearVoice.write(output_wav, output_path='samples/output_MossFormer2_SS_16K.wav')
|
|
|
|
#2nd calling method: process all wav files in 'path_to_input_wavs/' and write outputs to 'path_to_output_wavs'
|
|
myClearVoice(input_path='samples/path_to_input_wavs_ss', online_write=True, output_path='samples/path_to_output_wavs')
|
|
|
|
##3rd calling method: process wav files listed in .scp file, and write outputs to 'path_to_output_wavs_scp/'
|
|
myClearVoice(input_path='samples/scp/audio_samples_mix.scp', online_write=True, output_path='samples/path_to_output_wavs_scp')
|
|
|
|
##-----Demo Seven: use AV_MossFormer2_TSE_16K model for audio-visual target speaker extraction ------
|
|
if False:
|
|
myClearVoice = ClearVoice(task='target_speaker_extraction', model_names=['AV_MossFormer2_TSE_16K'])
|
|
|
|
#1st calling method: process all video files in 'path_to_input_videos/' and write outputs to 'path_to_output_videos_tse'
|
|
myClearVoice(input_path='samples/path_to_input_videos_tse', online_write=True, output_path='samples/path_to_output_videos_tse')
|
|
|
|
#2nd calling method: process video files listed in .scp file, and write outputs to 'path_to_output_videos_tse_scp/'
|
|
myClearVoice(input_path='samples/scp/video_samples.scp', online_write=True, output_path='samples/path_to_output_videos_tse_scp')
|