- Fix install_mac.sh: use venv + Python 3.12 (3.14 incompatible with ML libs) - Fix run_mac.sh: activate venv, add CPU thread optimization env vars - Fix agent.py: remove f-string from SYSTEM_PROMPT template (NameError on import) - Add missing deps: sounddevice, pydub, imageio-ffmpeg, omegaconf - Optimize for M1: torch.inference_mode, set_num_threads, OMP/MKL tuning - Switch to qwen2.5:3b for faster LLM responses on Mac - Switch Whisper to medium model with auto compute (small+int8 had poor Russian) - Add initial_prompt for better Russian transcription - Add open_app tool for native macOS app launching - Fix TTS: sanitize Latin text to Cyrillic for Silero compatibility - Fix wake word echo: add cooldown after TTS, reset model state, raise threshold - Make "Слушаю" TTS synchronous to avoid mic interference - Fix train Dockerfile: remove tensorflow/onnx2tf (only ONNX needed), fix deps - Fix train.sh: use wget for dataset download, add --shm-size=2g - Add trained hey_cosmo.onnx wake word model - Add TODO section to CLAUDE.md (ChatterBox TTS, Ollama Modelfile ideas) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
# Конфиг для обучения wake word модели "Hey Cosmo"
|
|
# Документация: https://github.com/dscripka/openWakeWord
|
|
|
|
model_name: "hey_cosmo"
|
|
output_dir: "/output"
|
|
|
|
# Целевая фраза — "hey cosmo" работает лучше чем просто "cosmo"
|
|
target_phrase:
|
|
- "hey cosmo"
|
|
- "cosmo"
|
|
|
|
# Похожие слова для улучшения устойчивости к ложным срабатываниям
|
|
custom_negative_phrases:
|
|
- "hey cosmos"
|
|
- "hey cosmic"
|
|
- "hey cosplay"
|
|
- "hey presto"
|
|
- "hey como"
|
|
- "hey koz"
|
|
- "cozmo"
|
|
|
|
# Количество синтетических примеров
|
|
n_samples: 10000
|
|
n_samples_val: 1000
|
|
tts_batch_size: 25
|
|
|
|
# Аугментация
|
|
augmentation_batch_size: 16
|
|
augmentation_rounds: 2
|
|
|
|
# Пути внутри Docker контейнера
|
|
piper_sample_generator_path: "/piper-sample-generator"
|
|
false_positive_validation_data_path: "/data/validation_set_features.npy"
|
|
|
|
feature_data_files:
|
|
"ACAV100M_sample": "/data/openwakeword_features_ACAV100M_2000_hrs_16bit.npy"
|
|
|
|
batch_n_per_class:
|
|
"ACAV100M_sample": 1024
|
|
"adversarial_negative": 50
|
|
"positive": 50
|
|
|
|
# Пути для аугментации (пустые — аугментация без RIR и фонового шума)
|
|
rir_paths: []
|
|
background_paths: []
|
|
background_paths_duplication_rate: []
|
|
|
|
# Архитектура модели
|
|
model_type: "dnn"
|
|
layer_size: 32
|
|
steps: 50000
|
|
|
|
# Цели качества
|
|
max_negative_weight: 1500
|
|
target_false_positives_per_hour: 0.5
|
|
target_accuracy: 0.7
|
|
target_recall: 0.5
|
|
lr: 0.0001
|