Files
2025-11-05 09:50:27 +08:00

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')