mrleo1nidandClaude Opus 5 fec52dd1c2 Этап 2: озвучка ответов через Silero
- Потоковая озвучка: ответ режется на фразы, синтез и воспроизведение в отдельных потоках
- Подготовка текста: числа словами, без markdown, ссылок и блоков кода
- Модель Silero скачивается в LOCALAPPDATA и прогревается при старте
- Состояние «говорю», переключатель озвучки в трее, «Стоп» прерывает речь
- Тесты нарезки текста и оркестратора озвучки

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 03:20:07 +03:00

agr-assistent

Минимальный AI-ассистент, живущий в системном трее.

  • LLM: локальные модели (Ollama, LM Studio, llama.cpp) или OpenRouter — через единый OpenAI-совместимый API
  • Текстовый чат со стримингом ответа
  • Озвучка ответов голосом Silero: фразы проговариваются по мере генерации, блоки кода пропускаются
  • В планах: голосовой ввод (faster-whisper), слово активации

Запуск

Нужен uv.

uv sync
uv run agr-assistent

При первом запуске рядом создаётся config.yaml (путь можно переопределить переменной AGR_ASSISTENT_CONFIG). В нём выбирается провайдер и модель:

llm:
  provider: openrouter
  providers:
    openrouter:
      api_key: ${OPENROUTER_API_KEY}   # или ключ напрямую
      model: openai/gpt-4o-mini

Для Ollama достаточно запустить сервер и скачать модель: ollama pull qwen2.5:7b.

Модель Silero (~145 МБ) скачивается при первом запуске в %LOCALAPPDATA%\agr-assistent\models. Голос и модель задаются в секции tts конфига; озвучку можно выключить в меню значка. Silero читает только кириллицу: числа переводятся в слова, латиница пропускается.

Закрытие окна сворачивает приложение в трей. Клик по значку открывает чат, в меню значка — переключение провайдера, новый диалог и выход.

Разработка

uv run pytest
S
Description
No description provided
Readme
280 KiB
Languages
Python 100%