emergency_any κΈ°μ λ¬Έμ
1) λͺ©ν
- κΈ΄κΈ νΈμΆμ΄(μ:
μ΄λ €μ£ΌμΈμ,λμμ£ΌμΈμ)λ₯Ό μ€μκ°μΌλ‘ κ°μ§νλ λ¨μΌ wakeword λͺ¨λΈ(emergency_any.onnx)μ ꡬμΆνλ€. - μΌλ° λν/μν μμμμ μ€νμ μ€μ΄κΈ° μν΄ μ€μκ° νμ²λ¦¬ νν°λ₯Ό ν¨κ» μ μ©νλ€.
2) κ΅¬μ± νμΌ
- λͺ¨λΈ νμ΅ μ€ν¬λ¦½νΈ:
train_model.py - μ€μκ° μ½μ ν
μ€νΈ:
run_live.py - μ€μκ° Gradio ν
μ€νΈ:
gradio_live.py - μ΅μ’
λͺ¨λΈ:
emergency_any.onnx
3) νμ΅ λ°μ΄ν° ꡬμ±
- Positive(κΈ΄κΈ):
positive_help/(μ΄ 419κ°)help_me: 212save_me: 207
- Negative(μΌλ°):
/home/dusen0528/Keyword-Spotting/dataμμ μνλ§- κΈ°λ³Έ λΉμ¨
negative_ratio=3.0μ μ© β 1257κ°
- κΈ°λ³Έ λΉμ¨
4) νμ΅ νμ΄νλΌμΈ
νμ΅ λͺ λ Ή:
cd /home/dusen0528/openWake/my_custom_model
source .venv/bin/activate
python train_model.py --positive_dir ./positive_help --model_name emergency_any --epochs 50
μ²λ¦¬ νλ¦:
- Positive/Negative WAV λ‘λ
- 16kHz 리μν
- 2μ΄(32000 μν) κΈΈμ΄λ‘ ν¨λ©/μλ₯΄κΈ°
- openWakeWord
AudioFeaturesλ‘ embedding μΆμΆ - DNN μ΄μ§ λΆλ₯κΈ° νμ΅
- ONNX export (
emergency_any.onnx)
5) Gradio μ€μκ° κ°μ§ λ‘μ§
μ€ν λͺ λ Ή:
cd /home/dusen0528/openWake/my_custom_model
source .venv/bin/activate
python gradio_live.py --model ./emergency_any.onnx --threshold 0.5 --share
μ€νΈλ¦¬λ° λ‘μ§:
- 16kHzλ‘ μ κ·ν ν 80ms νλ μ(1280 μν) λ¨μ μΆλ‘
- μ μ κΈ°λ° ν보 κ²μΆ + νμ²λ¦¬ νν° μ μ©
νν° νλͺ©:
RMS Gate: 무μ/μμ μ리 μ°¨λ¨Score Margin vs Baseline: νκ²½ λ² μ΄μ€λΌμΈ λλΉ μ μ μμΉλΆ 쑰건Min Consecutive Hits: μ°μ ννΈ νμ 쑰건Debounce: κ°μ§ ν μ¬κ°μ§ κ°κ²©
κΆμ₯ μ΄κΈ°κ°(νμ₯ νλ μμμ ):
- Threshold:
0.55 ~ 0.65 - RMS Gate:
0.008 ~ 0.015 - Score Margin:
0.00 ~ 0.05(νμ μ μ¦κ°) - Min Consecutive Hits:
2 ~ 4 - Debounce:
0.6 ~ 1.0
5-1) ν μ€νΈ λ²μ νμ κ° (2026-02-27)
μ€μ ν μ€νΈμμ μΈμ/μ€ν κ· νμ΄ κ°μ₯ μμ μ μ΄μλ κ°:
Detection Threshold:0.55Debounce:0.6RMS Gate:0.014Score Margin vs Baseline:0.0(off)Min Consecutive Hits:2(μ€ν μ¦κ° μ3)
λ©λͺ¨:
- μ μ€μ μ
μ΄λ €μ£ΌμΈμκ°μ§λ₯Ό μ μ§νλ©΄μ μ± μ/λΆμ€λ μ리 μ€νμ μ€μ΄λ λͺ©μ μ ν μ€νΈ μΈν μ΄λ€. - νκ²½ μμμ΄ λμμ§λ©΄
RMS Gateλ₯Ό0.016~0.020κΉμ§ μ¬λ € μ¬μ‘°μ νλ€.
6) νΈλ¬λΈμν μμ½
A. onnxscript λλ½μΌλ‘ export μ€ν¨
- μ¦μ:
ModuleNotFoundError: No module named 'onnxscript' - μ‘°μΉ:
python -m ensurepip --upgrade
python -m pip install -U pip onnx onnxscript
B. melspectrogram.onnx νμΌ μμ μ€λ₯
- μ¦μ:
NO_SUCHFILE ... openwakeword/resources/models/melspectrogram.onnx - μμΈ: λ‘컬 λ¦¬ν¬ κ²½λ‘μ 리μμ€κ° μκ³ , site-packages κ²½λ‘λ₯Ό λͺ» μ°Έμ‘°
- μ‘°μΉ:
train_model.py,gradio_live.pyμμ.venv/site-packages/openwakeword/resources/modelsμλ ν΄λ°± μ μ© μλ£
7) μ¬νμ νμν μ΅μ νμΌ
λ€λ₯Έ μλ²/PCμμ λμΌνκ² ν μ€νΈνλ €λ©΄ μλ νμΌμ μ°μ κ°μ Έκ°λ€.
νμ:
emergency_any.onnxgradio_live.py
κΆμ₯(μ¬νμ΅/μ μ§λ³΄μ λλΉ):
train_model.pyrun_live.pyrequirements.txtpositive_help/(λλ μλ³Έ positive λ°μ΄ν°)
8) μ΄μ λ©λͺ¨
- λ¨μΌ λͺ¨λΈ(
emergency_any)μ κΈ΄κΈ ν€μλλ₯Ό "ν΅ν© κ°μ§"νλ€. (μ΄λ λ¨μ΄μΈμ§ ꡬλΆνμ§ μμ) - ν€μλλ³ κ΅¬λΆμ΄ νμνλ©΄ λͺ¨λΈμ ν€μλλ³λ‘ λΆλ¦¬(
help_me.onnx,save_me.onnxλ±)ν΄ λ©ν°λͺ¨λΈ λ°©μμΌλ‘ μ΄μ©νλ€.