diff --git a/audio/file.wav b/audio/file.wav new file mode 100644 index 0000000..0dfe0a7 Binary files /dev/null and b/audio/file.wav differ diff --git a/audio/record.py b/audio/record.py new file mode 100644 index 0000000..1ce0756 --- /dev/null +++ b/audio/record.py @@ -0,0 +1,39 @@ +import pyaudio +import wave +import time + +time.sleep(1) + +FORMAT = pyaudio.paInt16 +CHANNELS = 2 +RATE = 44100 +CHUNK = 1024 +RECORD_SECONDS = 10 +WAVE_OUTPUT_FILENAME = "file.wav" + +audio = pyaudio.PyAudio() + +# start Recording +stream = audio.open(format=FORMAT, channels=CHANNELS, + rate=RATE, input=True, + frames_per_buffer=CHUNK) +print "recording..." +frames = [] + +for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): + data = stream.read(CHUNK) + frames.append(data) +print "finished recording" + + +# stop Recording +stream.stop_stream() +stream.close() +audio.terminate() + +waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb') +waveFile.setnchannels(CHANNELS) +waveFile.setsampwidth(audio.get_sample_size(FORMAT)) +waveFile.setframerate(RATE) +waveFile.writeframes(b''.join(frames)) +waveFile.close() diff --git a/audio/split.py b/audio/split.py new file mode 100644 index 0000000..7ee274b --- /dev/null +++ b/audio/split.py @@ -0,0 +1,21 @@ +from pydub import AudioSegment +from pydub.silence import split_on_silence + +def split_audio(file): + sound = AudioSegment.from_mp3(file) + chunks = split_on_silence(sound, + # must be silent for at least half a second + min_silence_len=1000, + + # consider it silent if quieter than -16 dBFS + silence_thresh=-25, + + # keep 200 ms of leading/trailing silence + keep_silence=1000 + ) + + for i, chunk in enumerate(chunks): + chunk.export("./chunk{0}.mp3".format(i), format="mp3") + print i + +split_audio('file.wav')