python
August 9, 2023

Анализ данных с микрофона

Вот пример анализа стриминга с микрофона на Python, используя библиотеку PyAudio:

python
Copy code
import pyaudio
import numpy as np

# Функция для обработки звукового потока
def process_audio_stream(stream):
    CHUNK = 1024  # Размер блока аудио данных
    RATE = 44100  # Частота дискретизации
    while True:
        data = np.frombuffer(stream.read(CHUNK), dtype=np.int16)
        
        # Выполните здесь нужный анализ данных в переменной "data"
        
        # Пример анализа: подсчитываем среднее значение амплитуды
        mean_amplitude = np.mean(np.abs(data))
        print("Среднее значение амплитуды:", mean_amplitude)

# Инициализируем PyAudio
p = pyaudio.PyAudio()

# Открываем звуковой поток с микрофона
stream = p.open(format=pyaudio.paInt16, channels=1, rate=RATE, input=True, frames_per_buffer=CHUNK)

# Запускаем обработку звукового потока
process_audio_stream(stream)


В данном примере, после инициализации PyAudio, мы открываем звуковой поток с микрофона и передаем его в функцию process_audio_stream(). В функции process_audio_stream() мы определяем размер блока аудио данных (CHUNK), частоту дискретизации (RATE) и начинаем цикл чтения блоков данных. Внутри цикла вы можете выполнять необходимый анализ данных, переданных в переменной data. В данном примере просто считаем среднее значение амплитуды и выводим его на экран. Можете изменить анализ данных в этой функции согласно вашим требованиям.