GNU/Linux >> Linux の 問題 >  >> Linux

Pythonやffmpegなどでリアルタイムのマイクオーディオボリュームを読み取る方法

sounddevice モジュールの使用を提案してくれた @Matthias に感謝します。それはまさに私が必要とするものです。

後世のために、リアルタイムの音声レベルをシェルに出力する実際の例を次に示します:

# Print out realtime audio volume as ascii bars

import sounddevice as sd
import numpy as np

def print_sound(indata, outdata, frames, time, status):
    volume_norm = np.linalg.norm(indata)*10
    print ("|" * int(volume_norm))

with sd.Stream(callback=print_sound):
    sd.sleep(10000)


Python 3 ユーザーはこちら
それを機能させるのにほとんど問題がなかったので、https://python-sounddevice.readthedocs.io/en/0.3.3/examples.html#plot-microphone-signal-s-in-real-time を使用しました。
sudo apt-get install python3-tk をインストールする必要があります Python 3.6の場合、UbuntuでTkinterモジュールが見つからない
次に、スクリプトを変更しました:

#!/usr/bin/env python3
import numpy as np
import sounddevice as sd

duration = 10 #in seconds

def audio_callback(indata, frames, time, status):
   volume_norm = np.linalg.norm(indata) * 10
   print("|" * int(volume_norm))


stream = sd.InputStream(callback=audio_callback)
with stream:
   sd.sleep(duration * 1000)

そして、はい、それは働いています:)


Linux
  1. Linux環境変数:LinuxVPSでの読み取りと設定の方法

  2. 方法:Python3とCentOS7での仮想環境(venv)の作成

  3. Linuxでffmpegでオーディオを録音するには?

  1. SELinux拒否メッセージを読んで修正する方法

  2. CloudFlareでDNS設定をエクスポートおよびインポートする方法

  3. 実行時に Python モジュールをインストールしてインポートする方法は?

  1. Pythonで現在の日付と時刻を取得する方法

  2. LinuxでMySQLデータベースをインポートおよびエクスポートする方法

  3. Redhat EnterpriseLinux8にAnsibleをインストールして設定する方法