def play(data, rate=44100): ''' Send audio array to pygame for playback ''' pygame.mixer.init(rate, -16, 1, 1024) sound = pygame.sndarray.numpysnd.make_sound(encode.as_int16(data)) length = sound.get_length() sound.play() pygame.time.wait(int(length * 1000)) pygame.quit()
def pygame_play(data, rate=44100): ''' Send audio array to pygame for playback ''' import pygame pygame.mixer.init(rate, -16, 1, 1024) sound = pygame.sndarray.numpysnd.make_sound(encode.as_int16(data)) length = sound.get_length() sound.play() pygame.time.wait(int(length * 1000)) pygame.mixer.quit()
def save_wave(data, path, rate=44100): ''' Save audio data to wave file, currently only 16bit ''' fp = wave.open(path, 'w') fp.setnchannels(1) fp.setframerate(rate) fp.setsampwidth(2) fp.setnframes(len(data)) data = encode.as_int16(data) fp.writeframes(data.tostring()) fp.close()
def save_wave(data, path, rate=44100): ''' Save audio data to wave file, currently only 16bit ''' import wave fp = wave.open(path, 'w') fp.setnchannels(1) fp.setframerate(rate) fp.setsampwidth(2) fp.setnframes(len(data)) data = encode.as_int16(data) fp.writeframes(data.tostring()) fp.close()
def oss_play(data, rate=44100): ''' Send audio array to oss for playback ''' import ossaudiodev audio = ossaudiodev.open('/dev/audio', 'w') formats = audio.getfmts() if ossaudiodev.AFMT_S16_LE in formats: # Use 16 bit if available audio.setfmt(ossaudiodev.AFMT_S16_LE) data = encode.as_int16(data) elif ossaudiodev.AFMT_U8 in formats: # Otherwise use 8 bit audio.setfmt(ossaudiodev.AFMT_U8) data = encode.as_uint8(data) audio.speed(rate) while len(data): audio.write(data[:1024]) data = data[1024:] audio.flush() audio.sync() audio.close()
def oss_play(data, rate=44100): ''' Send audio array to oss for playback ''' import ossaudiodev audio = ossaudiodev.open('/dev/audio','w') formats = audio.getfmts() if ossaudiodev.AFMT_S16_LE & formats: # Use 16 bit if available audio.setfmt(ossaudiodev.AFMT_S16_LE) data = encode.as_int16(data) elif ossaudiodev.AFMT_U8 & formats: # Otherwise use 8 bit audio.setfmt(ossaudiodev.AFMT_U8) data = encode.as_uint8(data) audio.speed(rate) while len(data): audio.write(data[:1024]) data = data[1024:] audio.flush() audio.sync() audio.close()