Rowan-Classes/6th-Semester-Spring-2024/DSP/Labs/FinalProject/play_sound.py
2024-04-25 18:38:09 -04:00

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