results | ||
.gitignore | ||
big_chop.py | ||
evaluation_server.py | ||
push_csirip.py | ||
README.md | ||
requirements.txt | ||
run_prefilter_service.sh |
Proof maker
Ez egy túlkomplikált script arra, hogy egy hosszú (akár több órás) hangmintáról megmondja, hogy mekkora arányban azonosítja madárhangnak az SVM alapú MI.
Hogy működik?
Több lépésből áll a lefutása:
- Hangminta felszeletelése 1 sec hosszú darabokra (
big_chop.py
) - Minták elküldése egy svm-prefilter-service számára (
push_csirip.py
) - Átengedett hangminták megszámolása (
evaluation_server.py
)
Az SVM prefilter szolgáltatás ugyanaz, mint ami a felhőben is fut, ezért itt a felhős környezetet emuláljuk le.
A push_csirip.py
script ugyanolyan formátumban küldi fel a mintákat, ahogy egy birbox tenné. A minta számát az device_id
mezőbe kódolja (úgy ahogy a TDK-s benchmarkoknál csináltuk).
A prefilter service fogadja a mintákat, lefutattja az elemzést és ha úgy itéli, akkor továbbítja azokat.
A továbbított minták a felhő helyett az evaluation_server.py
által futtatott szolgáltatásba érkezenek, amely egy fájlhoz hozzáfűzi az érkezett minta számát.
A mérés kiértékeléséhez ennek a fájlnak a sorait kell megszámolni és összevetni az elküldött minták számával.
Futtatás
Hangminták előkészítése:
python3 big_chop.py [hosszú hang elérése] [minták száma]
A kimenet a big_chop_output
mappába kerül mentésre, a push_csirip.py
ezt használja.
El kell indítani egy prefilter szervice példányt:
./run_prefilter_service.sh
Megjegyzés: Ha podman helyett dockert használunk, akkor át kell írni a fájlban.
El kell indítani az evaluation server-t:
python3 evaluation_server.py
A kimenete az arrived.txt
fájlba kerül, ha egy előző futás példánya itt maradt, azt le kell törölni előbb, mert hozzáfűzi.
Ha fut a két szolgáltatás, el lehet kezdeni küldeni bele a mintákat:
python3 push_csirip.py [szünet két küldés között másodpercben]