파이썬 녹음으로 가시화

7251 단어 Python

개시하다


'소리를 주제로 기계학습을 조사하는 장르'라는 숙제가 생겨 먼저 소리를 수집하는 방법을 조사해보려고 필기를 했다.

컨디션

  • MacBook Air
  • Python 3.6.0 Anaconda custom (x86_64)
  • Jupyter Notebook
  • 라이브러리 설치


    pyaudio를 사용하면 바로 이런 정보를 설치할 수 있기 때문이다.
    종속 Portaudio 프로그램 라이브러리를 먼저 설치합니다.
    PortAudio
    ./configure --disable-mac-universal && make
    sudo make install
    
    Mac에서 pyaudio를 설치할 때 "pa mac core.h가 없습니다"라고 하기 때문에 아래 명령으로 복사합니다.
    sudo cp include/pa_mac_core.h /usr/local/include/
    
    계속,puyaudio 설치
    pip install pyaudio
    
    이상.

    녹음 및 시각화


    raspberryPi와puyaudio로 녹음, 음성 파형 처리
    위의 사이트에는 소리를 녹음하여 파일에 저장하는 방법이 기재되어 있으니 참고해 주십시오.
    import pyaudio
    import sys
    import time
    import wave
    
    chunk = 1024
    FORMAT = pyaudio.paInt16
    CHANNELS = 1
    RATE = 44100
    RECORD_SECONDS = 3
    
    p = pyaudio.PyAudio()
    
    stream = p.open(
        format = FORMAT,
        channels = CHANNELS,
        rate = RATE,
        input = True,
        frames_per_buffer = chunk
    )
    
    all = []
    for i in range(0, int(RATE / chunk * RECORD_SECONDS)):
        data = stream.read(chunk)
        all.append(data)
    
    stream.close()
    p.terminate()
    
    data = b''.join(all)
    
    여기에 데이터 안에 소리가 있는 데이터가 있기 때문에 다음 순서에 따라 가시화합니다.
    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    x = np.frombuffer(data, dtype="int16") / 32768.0
    
    plt.figure(figsize=(15,3))
    plt.plot(x)
    plt.show()
    
    x = np.fft.fft(np.frombuffer(data, dtype="int16"))
    
    plt.figure(figsize=(15,3))
    plt.plot(x.real[:int(len(x)/2)])
    plt.show()
    
    백수를 몇 차례 치는 소리를 녹음한 결과는 가시화되어 다음과 같다.


    위쪽은 소리의 파형이고 아래쪽은 FFT의 결과이다.
    그럼 이제 어떡하지...(^_^;)

    그 다음


    나는 각본을 수정하여 아래의 문장을 써 보았다.같이 보세요(^-^)
    파이톤으로 사운드 모니터링, 어느 정도 이상 음량 녹음

    좋은 웹페이지 즐겨찾기