«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

올해는 머신러닝이다.

[라즈베리][파이썬] 마이크 녹음해서 파일로 저장하기 본문

카테고리 없음

[라즈베리][파이썬] 마이크 녹음해서 파일로 저장하기

행복한 수지아빠 2017. 5. 13. 01:48

우선 마이크 인덱스 번호를 추출해야 한다. 

import pyaudio

po = pyaudio.PyAudio()

for index in range(po.get_device_count()): 

    desc = po.get_device_info_by_index(index)

    #if desc["name"] == "record":

    print "DEVICE: %s  INDEX:  %s  RATE:  %s " %  (desc["name"], index,  int(desc["defaultSampleRate"]))


그리고 인덱스번호가 출력되는 걸 확인 후 ... 녹음 진행한다. 


import pyaudio

import wave

 

FORMAT = pyaudio.paInt16

CHANNELS = 1

RATE = 16000

CHUNK = 1024

RECORD_SECONDS = 5

WAVE_OUTPUT_FILENAME = "file.wav"

 

audio = pyaudio.PyAudio()

 

# start Recording

stream = audio.open(format=pyaudio.paInt16, 

                channels=CHANNELS, 

                rate=RATE, 

                input=True, 

                input_device_index=2,

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


이상이다.