示例#1
0
    def read_single_wav(self, path):
        clip = AudioFileClip(str(path))

        subsampled_audio = clip.set_fps(16000)
        chunk_size = 640

        audio = np.array(list(subsampled_audio.iter_frames())).mean(1)
        audio = np.pad(audio, (0, chunk_size - audio.shape[0] % chunk_size),
                       'constant')
        audio = audio.reshape(-1, chunk_size)

        return audio.astype(np.float32)
示例#2
0
def get_samples(subject_id):
    arousal_label_path = root_dir / 'Ratings_affective_behaviour_CCC_centred/arousal/{}.csv'.format(subject_id)
    valence_label_path = root_dir / 'Ratings_affective_behaviour_CCC_centred/valence/{}.csv'.format(subject_id)

    clip = AudioFileClip(str(root_dir / "Audio_recordings_WAV/{}.wav".format(subject_id)))

    subsampled_audio = clip.set_fps(16000)

    audio_frames = []
    for i in range(1, 7501):
        time = 0.04 * i

        audio = np.array(list(subsampled_audio.subclip(time - 0.04, time).iter_frames())) #count the number of audio frames
        audio = audio.mean(1)[:640]  # takes the mean along axis=1 (along the row)

        audio_frames.append(audio.astype(np.float32))

    arousal = np.loadtxt(str(arousal_label_path), delimiter=';', skiprows=1)[:, 1][1:]

    valence = np.loadtxt(str(valence_label_path), delimiter=';', skiprows=1)[:, 1][1:]

    return audio_frames, np.dstack([arousal, valence])[0].astype(np.float32)