42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
import scipy.signal
|
|
import sounddevice as sd
|
|
|
|
|
|
|
|
SOUND_PATH = "noisefiles/train.dat"
|
|
|
|
|
|
def normalize_signal(signal):
|
|
min_amp = np.min(signal)
|
|
normalized_signal = signal - min_amp
|
|
max_amp = np.max(normalized_signal)
|
|
normalized_signal *= 2/max_amp
|
|
normalized_signal -= 1
|
|
return normalized_signal
|
|
|
|
|
|
def load_audiofile(path):
|
|
sound_data = []
|
|
sample_rate = 8000
|
|
if path[-3:] == "dat":
|
|
with open(SOUND_PATH, "r") as sound_file:
|
|
sound_data_strings = sound_file.readlines()
|
|
for data_string in sound_data_strings:
|
|
sound_data.append(eval(data_string.strip()))
|
|
sound_data = np.array(sound_data)
|
|
elif path[-3:] == "wav":
|
|
sample_rate, sound_data = wavfile.read(path)
|
|
return sample_rate, sound_data
|
|
|
|
|
|
def main():
|
|
sample_rate, sound_data = load_audiofile(SOUND_PATH)
|
|
print(sample_rate)
|
|
sd.play(normalize_signal(sound_data), samplerate=sample_rate, blocking=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|