streamToOut.py 849 Bytes
import pyaudio
from pydub import AudioSegment
from pydub.effects import normalize

# set up PyAudio
pa = pyaudio.PyAudio()
stream = pa.open(format=pyaudio.paInt16,
                 channels=1,
                 rate=44100,
                 input=True,
                 frames_per_buffer=1024)

# record some audio from the microphone
audio_data = []
for i in range(0, int(44100 / 1024 * 5)):
    data = stream.read(1024)
    audio_data.append(data)

# convert the audio data to a PyDub audio segment
audio_segment = AudioSegment(
    data=b''.join(audio_data),
    sample_width=2,
    frame_rate=44100,
    channels=1
)

# apply an echo effect to the audio segment
echoed_segment = normalize(audio_segment)

# save the output audio file
echoed_segment.export("output.mp3", format="mp3")

# clean up
stream.stop_stream()
stream.close()
pa.terminate()