from pyaudio import PyAudio import numpy as np BITRATE = 20000 LENGTH = 0.5 def play_finished_sound(): global BITRATE global LENGTH frequency = 261 num_of_frames = int(BITRATE*LENGTH) frames = np.arange(0, num_of_frames, 1) wave_data_numeric = np.sin(frames / ((BITRATE / frequency) / np.pi)) * 127 + 128 wave_data_numeric = wave_data_numeric.astype(int) wave_data_chr = "".join([chr(x) for x in wave_data_numeric]) rest_frames = num_of_frames % BITRATE rest = [chr(128)]*rest_frames wave_data_chr.join(rest) p = PyAudio() stream = p.open( format=p.get_format_from_width(1), channels=1, rate=BITRATE, output=True, ) stream.write(wave_data_chr) stream.stop_stream() stream.close() p.terminate() if __name__ == '__main__': play_finished_sound()