GNU/Linux >> Belajar Linux >  >> Linux

Cara membaca volume audio mikrofon realtime dengan python dan ffmpeg atau sejenisnya

Terima kasih kepada @Matthias atas saran untuk menggunakan modul sounddevice. Itu persis apa yang saya butuhkan.

Untuk anak cucu, berikut adalah contoh kerja yang mencetak level audio real-time ke shell:

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


Pengguna Python 3 di sini
Saya memiliki sedikit masalah untuk membuatnya berfungsi, jadi saya menggunakan:https://python-sounddevice.readthedocs.io/en/0.3.3/examples.html#plot-microphone-signal-s-in-real-time
Dan saya perlu menginstal sudo apt-get install python3-tk untuk python 3.6 terlihat modul Tkinter tidak ditemukan di Ubuntu
Kemudian saya memodifikasi script:

#!/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)

Dan ya itu berhasil :)


Linux
  1. Variabel Lingkungan Linux:Cara Membaca dan Mengatur di VPS Linux

  2. Cara membaca dan mengoreksi pesan penolakan SELinux

  3. Bagaimana cara merekam audio dengan ffmpeg di linux?

  1. Cara Mengekspor dan Mengimpor pengaturan DNS di CloudFlare

  2. Cara:Python 3 dan Membuat Lingkungan Virtual (venv) di CentOS 7

  3. Bagaimana cara menginstal dan mengimpor modul Python saat runtime?

  1. Cara Mendapatkan Tanggal dan Waktu Saat Ini dengan Python

  2. Cara Mengimpor dan Mengekspor Database MySQL di Linux

  3. Cara menginstal dan mengkonfigurasi Ansible di Redhat Enterprise Linux 8