Skocz do zawartości

Wykrywanie dźwięków określonego typu


ghost1313

Pomocna odpowiedź

Cześć,

w Internecie znaleźć można wiele projektów pozwalających na uruchomienie jakiejś akcji za pomocą na przykład klaśnięcia. Jednak są to metody prymitywne, bazujące na głośności dźwięku. Zastanawiam się, czy dałoby radę wykonać takie zadanie na przykład za pomocą analizy częstotliwościowej (FFT, Goertzel) lub jakimś innym, bardziej pewnym sposobem. Ktoś próbował coś takiego zrobić? Macie jakieś propozycje? Próbowałem metod np.correlate() oraz np.corrcoef(). Wyniki były takie sobie, łatwo znaleźć dźwięki inne niż klaśnięcie, dające wysoką korelację. Innych pomysłów na razie nie mam.

import numpy as np
from numpy.fft import fft
import matplotlib.pyplot as plt
import pyaudio

# Widmo dla pojedynczego klaśnięcia
pattern = np.loadtxt('pattern.txt')

audio_source = pyaudio.PyAudio()
chunk        = int(44100 * 0.2)

stream = audio_source.open(
    input             = True,
    format            = pyaudio.paInt16,
    rate              = 44100,
    frames_per_buffer = chunk,
    channels          = 1
)

while True:
    samples = np.fromstring(stream.read(chunk), dtype = np.int16)

    if samples.max() >= 10000:
        spectrum = np.abs(fft(samples * np.hamming(len(samples))))

        if np.corrcoef(spectrum, pattern)[0][1] >= 0.55:
            print('OK...')

stream.stop_stream()
stream.close()
audio_source.terminate()

Pozdrawiam

Edytowano przez ghost1313
Link do komentarza
Share on other sites

@ghost1313 oczywiście wszystko zależy od tego jaki układ jest do dyspozycji, niektórzy powiedzą też, że to przesada, ale pewnie można się pobawić chociażby AI. Zerknij do tego artykułu, w którym @Elvis wykrywał gest machania płytką: https://forbot.pl/blog/sztuczna-inteligencja-na-stm32-przyklad-uzycia-x-cube-ai-id41588 Może w podobny sposób dałoby się fajnie wykrywać niektóre dźwięki?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.