Как я могу определить конкретный c звук из живого приложения? - PullRequest
0 голосов
/ 20 марта 2020

Есть ли способ собрать живой звук из приложения (например, chrome, mozilla) и выполнить некоторый код, когда на сайте воспроизводится определенный c звук?

1 Ответ

0 голосов
/ 20 марта 2020

Если у вас есть mi c на любом устройстве, которое вы используете, вы можете использовать его для чтения любого звука, выходящего из вашего компьютера. Затем вы можете сравнить те аудио кадры, которые вы записываете, со звуковым файлом с тем звуком, который вы ищете

Конечно, это делает его очень уязвимым для фонового шума, так что вам придется каким-то образом фильтровать it out.

Вот пример использования библиотек PyAudio и wave:

import pyaudio
import wave

wf = wave.open("websitSound.wav", "rb")
amountFrames = 100 # just an arbitrary number; could be anything
sframes = wf.readframes(amountFrames)

currentSoundFrame = 0

chunk = 1024  # Record in chunks of 1024 samples
sample_format = pyaudio.paInt16  # 16 bits per sample
channels = 2
fs = 44100  # Record at 44100 samples per second
seconds = 3

p = pyaudio.PyAudio()  # Create an interface to PortAudio


stream = p.open(format=sample_format,
                channels=channels,
                rate=fs,
                frames_per_buffer=chunk,
                input=True)


# Store data in chunks for 3 seconds
for i in range(0, int(fs / chunk * seconds)):
    data = stream.read(chunk)
    if data == sframes[currentSoundFrame]:
        currentSoundFrame += 1
        if currentSoundFrame == len(sframes): #the whole entire sound was played
            print("Sound was played!")
    frames.append(data)

# Stop and close the stream 
stream.stop_stream()
stream.close()
# Terminate the PortAudio interface
p.terminate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...