Skip to content

echo-words

Личный репетитор по лексике — для каждого слова, которое вам встретилось. Отправьте слово, выражение или целое предложение: echo-words объяснит то, чего не даёт словарь, а потом сам соберёт карточку в ту колоду Anki, которую вы и так повторяете. Он объясняет — Anki заставляет запомнить.

Слово, выражение, предложение
Разбор, озвучка, карточка в Anki
Предложение: перевод и разбор
  • Понять слово: его значения, пометы, сочетания и примеры с переводом — и выбрать значение, которое хотите выучить.
  • Учиться на предложении: перевод, разбор трудных мест и каждое слово в один тап.
  • Сохранить в Anki: четыре карточки на каждое значение, с живым голосом, в колодах, которые вы и так повторяете.

Всё, что оно умеет

Быстрый старт

echo-words — ваш собственный небольшой сервер, а приложение на телефоне — страница, которую он отдаёт. Работа ничего не стоит: бесплатная виртуалка Oracle Always Free, бесплатный тариф Tailscale и бесплатный ключ Gemini.

Есть подписка Claude Pro или Max либо ChatGPT Plus? Откройте вкладку Code в настольном приложении Claude или Codex в настольном приложении ChatGPT и вставьте:

Установи мне echo-words на Oracle Cloud по инструкции
https://andgineer.github.io/echo-words/agent-install/

Агент по шагам скажет, что можете сделать только вы, — зарегистрироваться в Oracle и Tailscale, вписать ключи в файл, — а остальное сделает сам.

  1. Получите ключи: достаточно одного бесплатного ключа Gemini.
  2. Создайте бесплатную виртуалку и подключите её к своей сети Tailscale.
  3. Впишите адрес виртуалки, ключи и логин AnkiWeb в .deploy/.env, затем выполните один раз uv run inv setup-app --with-host-prep и uv run inv deploy --ref=main, как описано в Установке на Oracle Cloud.
  4. Установите приложение на телефон и, если нужно, добавьте команду в меню «Поделиться».
  5. Выберите языки в приложении. Сначала там английский, немецкий и сербский, у каждого своя колода Anki и свой голос.

Попробуйте на своём компьютере, чтобы увидеть, что оно умеет. Работает, только пока вы держите его запущенным, открывается лишь в браузере этого компьютера, а карточки остаются в пробной коллекции, которую не видит ни одно ваше приложение Anki.

Что умеет

  • разбор, а не перевод — все значения, для которых в языке перевода нужны разные слова, с пометами, типичными сочетаниями и предлогами, происхождением и примерами; идиому или выражение разбирают как целое, а его слова оставляют кнопками для отдельного разбора
  • то значение, которое встретилось именно вам — слово, взятое из текста, разбирают в смысле этого текста, а не подменяют ближайшим словарным значением
  • одно выбранное значение, проверяемое четырьмя способами — слово и перевод спрашиваются в обе стороны, а пример показывается один раз с выделением и один раз с пропуском; любое значение остаётся отдельной кнопкой для новой заметки
  • живой голос, а не робота — локально через Piper или онлайн через edge-tts, и в приложении, и на карточке; озвучивается всё, что вы отправили, поэтому слово, взятое из предложения, звучит рядом с самим предложением
  • целому предложению — разбор вместо карточки — перевод, объяснение того, что в нём трудно, и кнопки для каждого слова и полезного выражения; выбранная кнопка создаёт собственную заметку с четырьмя карточками
  • углублённый разбор по требованию — один тап переспрашивает самую сильную модель: все значения, включая редкие, подробную этимологию, близкие синонимы и типичные ошибки
  • ничего не стоит — отвечает пул бесплатных LLM-провайдеров; платная модель необязательна и ограничена лимитом, а при собственном использовании автора обходится примерно в полдоллара в месяц

Приложение не хранит никакой базы данных: единственное, что оно бережёт, — ваша коллекция Anki.

Любой язык и любая письменность
Что попало в колоды
Провайдеры, синхронизация, расходы

Про язык на скриншотах

Язык интерфейса переключается в шапке (EN/RU), а язык разборов задаётся настройкой ECHOWORDS_TARGET_LANG — по умолчанию русский.

Как это устроено

Полный ответ от меняющегося пула моделей. Бесплатные LLM-провайдеры различаются доступностью, скоростью и тем, насколько точно следуют инструкциям. Через llmbroker echo-words запускает две модели наперегонки и берёт первый полный и пригодный ответ. Потоковая выдача позволяет начать читать раньше, а если карточку создать не удалось, уже полученный разбор сохраняется.

Проверка того, чему на самом деле учат карточки. Корректный JSON всё равно может содержать не то значение, выдуманное происхождение или слово из другого языка. Изменения, затрагивающие модель, проходят тесты на настоящих моделях и проверку конкретных ответов отдельным агентом. Записи об оценке фиксируют и находки, и оставшиеся ограничения.

Бэкенд, который укладывается меньше чем в 1 ГБ. FastAPI отдаёт PWA на Vue и ведёт Anki через его headless-библиотеку на Python, синхронизируясь напрямую с AnkiWeb. Нет ни отдельной базы данных приложения, ни запущенного настольного Anki. Доступ к веб-приложению ограничен сетью Tailscale.