#!/usr/bin/python3 # -*- coding: utf-8 -*- import argparse import os.path import librosa import numpy as np from scipy.io import wavfile from project_settings import project_path def get_args(): parser = argparse.ArgumentParser() parser.add_argument( "--filename", default=(project_path / "data/voice_clone_audio/e2_tts/audio_0_3_clone_from_audio_0_2.wav").as_posix(), type=str, ) parser.add_argument( "--output_file", default="temp.wav", type=str, ) parser.add_argument("--speed", default=1.1, type=float) args = parser.parse_args() return args def main(): args = get_args() signal, sample_rate = librosa.load(args.filename, sr=None) signal_ = librosa.effects.time_stretch(signal, rate=args.speed) # max_wave_value = 32768.0 max_wave_value = 1 << 15 signal_ = signal_ * max_wave_value signal_ = np.array(signal_, dtype=np.int16) wavfile.write( filename=args.output_file, rate=sample_rate, data=signal_ ) return if __name__ == "__main__": main()