преобразовать код stft tensorflow в код pytorch / pure python - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь преобразовать следующий код (из https://github.com/saiteja-talluri/Speech2Face/blob/master/preprocess/speaker.py) в PyTorch или чистый python.

def find_spec(self, filename):
        print("-------------finding spectrogram for {0}----------------".format(filename))
        with tf.Session(graph=tf.Graph()) as sess:

            holder = tf.placeholder(tf.string, [])
            file = tf.io.read_file(holder)
            decoder = tf.contrib.ffmpeg.decode_audio(file, file_format = "wav", samples_per_second = self.sample_rate, channel_count = 1)
            stft = tf.signal.stft(tf.transpose(a=decoder), frame_length = self.window, frame_step = self.stride, fft_length = self.fft_length, window_fn = tf.signal.hann_window)
            amp = tf.squeeze(tf.abs(stft)) ** self.amp_norm
            phase = tf.squeeze(tf.math.angle(stft))
            stacked = tf.stack([amp, phase], 2)
            stft = sess.run(stacked, feed_dict = {holder : self.audios_path + filename + ".wav"})
            pickle.dump(stft, open(self.spect_path + filename  + ".pkl", "wb"))
            print("============STFT SHAPE IS {0}=============".format(stft.shape))

Я попытался использовать код отсюда (https://tbnsilveira.info/2019/02/23/finding-cyclic-patterns-a-tutorial-on-how-to-implement-stft-in-python/) для преобразования, но не смог достичь работоспособного кода. Я очень ценю любую помощь. Спасибо.

...