Mac M1 optimizations, fix train pipeline, add Hey Cosmo wake word model

- 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>
This commit is contained in:
2026-04-11 11:19:53 +03:00
parent 6010816f1d
commit 110d9cde29
15 changed files with 183 additions and 94 deletions

View File

@@ -6,14 +6,23 @@ echo " Установка Cosmo на macOS"
echo "============================================"
# --- Python ---
if ! command -v python3 &>/dev/null; then
# Предпочитаем Python 3.12 (лучшая совместимость с ML-пакетами)
PYTHON_BIN=""
for py in python3.12 python3.11 python3.13 python3; do
if command -v "$py" &>/dev/null; then
PYTHON_BIN="$py"
break
fi
done
if [ -z "$PYTHON_BIN" ]; then
echo "ОШИБКА: Python3 не найден."
echo "Установи через Homebrew: brew install python@3.11"
echo "Установи через Homebrew: brew install python@3.12"
exit 1
fi
PYTHON_VERSION=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
echo "Python: $PYTHON_VERSION"
PYTHON_VERSION=$($PYTHON_BIN -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
echo "Python: $PYTHON_VERSION ($PYTHON_BIN)"
# --- Homebrew зависимости ---
if command -v brew &>/dev/null; then
@@ -24,19 +33,22 @@ else
echo "Если будут ошибки с аудио — установи: /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
fi
echo "[2/5] Обновляю pip..."
python3 -m pip install --upgrade pip
echo "[2/5] Создаю виртуальное окружение..."
rm -rf venv
$PYTHON_BIN -m venv venv
source venv/bin/activate
echo "[3/5] Устанавливаю зависимости..."
python3 -m pip install -r requirements.txt
echo "[3/5] Обновляю pip и устанавливаю зависимости..."
pip install --upgrade pip
pip install -r requirements.txt
echo "[4/5] Устанавливаю faster-whisper..."
# На Mac (Apple Silicon) используем CPU compute type
python3 -m pip install faster-whisper
pip install faster-whisper
echo "[5/5] Устанавливаю openwakeword..."
python3 -m pip install openwakeword
python3 -c "import openwakeword; openwakeword.utils.download_models()" 2>/dev/null || true
pip install openwakeword
python -c "import openwakeword; openwakeword.utils.download_models()" 2>/dev/null || true
echo ""
echo "============================================"