Pythonを使用して、マイクから音量を取得する方法をご紹介します。

必要なライブラリ

  • pyaudio
  • numpy

インストール

以下のコマンドを使用して、必要なライブラリをインストールしてください。

pip install pyaudio numpy

コード

以下のPythonコードを使用して、マイクから音量を取得することができます。

import pyaudio
import numpy as np

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

while True:
    data = np.frombuffer(stream.read(CHUNK), dtype=np.int16)
    rms = np.sqrt(np.mean(np.square(data)))
    print(rms)

解説

  • CHUNKは、ストリームから一度に読み取るフレーム数を指定します。値が小さいほど、取得される音量データはより正確になりますが、CPU負荷が高くなります。
  • FORMATは、ストリームから読み取るデータのフォーマットを指定します。
  • CHANNELSは、ストリームから読み取るチャンネル数を指定します。
  • RATEは、サンプリング周波数を指定します。
  • pは、PyAudioオブジェクトを表します。
  • streamは、マイクからのストリームを表します。
  • np.frombufferを使用して、ストリームから読み取ったデータをNumPy配列に変換します。
  • np.meanを使用して、データの平均値を計算します。
  • np.squareを使用して、各値を自乗します。
  • np.sqrtを使用して、各値の平方根を計算します。
  • printを使用して、音量を出力します。

結論

Pythonを使用して、マイクから音量を取得する方法を説明しました。この方法を使用すると、Pythonを使用してオーディオアプリケーションを作成することができます。