From c78bcf4bf0f8d2b75870a4e47c8120cf1b8cad3e Mon Sep 17 00:00:00 2001 From: shuler7 Date: Wed, 25 Mar 2026 10:55:13 +0300 Subject: [PATCH 01/23] update .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d3f5a12..c323cf4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ - +.venv From 95591c493369bf882160e4aadc0c800d8abcf961 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Wed, 25 Mar 2026 10:55:33 +0300 Subject: [PATCH 02/23] make .pdf roadmap --- ege-checker-roadmap.docx | Bin 13227 -> 0 bytes ege-checker-roadmap.pdf | Bin 0 -> 371491 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 ege-checker-roadmap.docx create mode 100644 ege-checker-roadmap.pdf diff --git a/ege-checker-roadmap.docx b/ege-checker-roadmap.docx deleted file mode 100644 index b9936db9a49eb8c61576798fe3b3532adc8c004e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13227 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 M5RgpT?|=S(0HfP}C;$Ke diff --git a/ege-checker-roadmap.pdf b/ege-checker-roadmap.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2e50d31985f202a57ef7136c11c3c4d8d79f6e29 GIT binary patch literal 371491 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

  • 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

    QtNZO-MWa~FB;p`5(+dCMmyUEcU4sTa6>cJN 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 Z;oIPR)Qj;-9tbg%AgyN279Coq{SO+l*w_F7 literal 0 HcmV?d00001 From f0ee3ecc287b9af8cfd9200914c7c9ad0647a238 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Wed, 25 Mar 2026 10:56:08 +0300 Subject: [PATCH 03/23] move local testers --- .../english-listening-checker.html | 0 .../russian-writing-checker.html | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename english-listening-checker.html => local-testers/english-listening-checker.html (100%) rename russian-writing-checker.html => local-testers/russian-writing-checker.html (100%) diff --git a/english-listening-checker.html b/local-testers/english-listening-checker.html similarity index 100% rename from english-listening-checker.html rename to local-testers/english-listening-checker.html diff --git a/russian-writing-checker.html b/local-testers/russian-writing-checker.html similarity index 100% rename from russian-writing-checker.html rename to local-testers/russian-writing-checker.html From fd0fba682332f0d2102eb42c34d6a39d3eacd6c1 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Thu, 2 Apr 2026 22:42:14 +0300 Subject: [PATCH 04/23] ignore .scans --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c323cf4..a7dbbbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .venv +.scans From 89063a38b1baa21c57e9c605424af92765edab1f Mon Sep 17 00:00:00 2001 From: shuler7 Date: Thu, 2 Apr 2026 22:42:29 +0300 Subject: [PATCH 05/23] remove local testers --- local-testers/english-listening-checker.html | 563 ------------------- local-testers/russian-writing-checker.html | 300 ---------- 2 files changed, 863 deletions(-) delete mode 100644 local-testers/english-listening-checker.html delete mode 100644 local-testers/russian-writing-checker.html diff --git a/local-testers/english-listening-checker.html b/local-testers/english-listening-checker.html deleted file mode 100644 index d886a8c..0000000 --- a/local-testers/english-listening-checker.html +++ /dev/null @@ -1,563 +0,0 @@ - - - - - -ЕГЭ Английский — Аудирование - - - -

    - -

    ЕГЭ — Аудирование (Английский язык)

    -

    Загрузи аудиозапись ответов ученика → получи транскрипт → сверь с ключами → баллы

    - - -
    -
    Настройки API
    -
    -
    - - -
    -
    - - -
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    - - -
    -
    - - -
    -
    -
    1
    -
    -
    Загрузи аудиозапись ответов ученика
    -
    -
    🎤
    -
    Нажми или перетащи аудиофайл
    -
    MP3, WAV, M4A, OGG, WEBM — до 25 МБ
    - -
    - -
    -
    -
    - - -
    -
    -
    2
    -
    -
    Введи правильные ответы (ключи)
    -

    Заполни ключи для заданий, которые есть в варианте. Пустые задания игнорируются.

    - -
    - ЗаданиеКлюч (верный)— пусто — -
    - -
    Задание 1 — Соответствие (A–F → цифра 1–7)
    -
    - -
    - -
    Задания 2–9 — True(1) / False(2) / Not Stated(3)
    -
    - -
    - -
    Задания 10–18 — Выбор из 3 вариантов (1/2/3)
    -
    - -
    -
    -
    -
    - - -
    - - -
    - - - - - -
    - -
    -
    Транскрипт ответов ученика
    -
    -
    -
    Распознанные ответы
    -
    -
    -
    - -
    -
    Детальная проверка
    - -
    -

    Задание 1 — Установление соответствия

    - - - -
    ВысказываниеОтвет ученикаКлючРезультат
    -
    - -
    - -
    -

    Задания 2–9 — True / False / Not Stated

    - - - -
    ЗаданиеОтвет ученикаКлючРезультат
    -
    - -
    - -
    -

    Задания 10–18 — Выбор ответа

    - - - -
    ЗаданиеОтвет ученикаКлючРезультат
    -
    -
    - -
    -
    -
    Итоговый балл
    -
    -
    из 23 первичных баллов
    -
    -
    -
    Ошибки
    -
    -
    -
    - -
    - -
    - - - - diff --git a/local-testers/russian-writing-checker.html b/local-testers/russian-writing-checker.html deleted file mode 100644 index 785e5f6..0000000 --- a/local-testers/russian-writing-checker.html +++ /dev/null @@ -1,300 +0,0 @@ - - - -
    - -
    -
    Эндпоинт и модель
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    Режим
    -
    - - - -
    - -
    -
    Загрузи фото бланка (можно несколько)
    -
    - Нажми или перетащи изображения сюда - -
    -
    -
    - - - - -
    - -
    - -
    - - - -
    - - From 35ad7e2e0a0c005e8617d4bfa7e460ba584fce15 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Thu, 2 Apr 2026 22:43:29 +0300 Subject: [PATCH 06/23] add actual criterias 2026 --- .../references/english-listening-criteria.md | 96 +++++-- .../references/russian-essay-criteria.md | 271 ++++++++---------- 2 files changed, 190 insertions(+), 177 deletions(-) diff --git a/ege-checker/references/english-listening-criteria.md b/ege-checker/references/english-listening-criteria.md index 33d29b3..91f50b1 100644 --- a/ege-checker/references/english-listening-criteria.md +++ b/ege-checker/references/english-listening-criteria.md @@ -1,30 +1,78 @@ # Критерии оценивания раздела "Аудирование" ЕГЭ по английскому языку -## Статус: заглушка — будет заполнено в следующей итерации - -### Структура раздела (ЕГЭ 2024–2025) - -**Задание 1** (B1) — установление соответствия: 6 высказываний → 7 утверждений -- 1 балл за каждое верное соответствие -- Максимум: 6 баллов - -**Задания 2–9** (B2) — верно/неверно/не сказано (True/False/Not Stated) -- 1 балл за каждый верный ответ -- Максимум: 8 баллов - -**Задания 10–18** — краткий ответ/выбор из нескольких вариантов -- 1 балл за каждый верный ответ -- Максимум: 9 баллов - -**Итого по разделу "Аудирование": 20 первичных баллов** +## Источник: ФИПИ, спецификация ЕГЭ 2026 --- -## STT интеграция (планируется) +## Структура раздела "Аудирование" -Для обработки аудиозаписей потребуется: -- OpenAI Whisper API (рекомендуется для русской и английской речи) -- Или Deepgram (альтернатива) -- Эндпоинт: `https://api.openai.com/v1/audio/transcriptions` -- Модель: `whisper-1` +Раздел состоит из 9 заданий (задания 1–9), максимум — 12 первичных баллов. +Каждое задание = 1 балл за верный ответ, 0 за неверный. +Критерии объективные — только совпадение с ключом, никакой субъективной оценки. -Временное решение для MVP: попросить пользователя ввести ответы текстом. +--- + +## Задание 1 — Установление соответствия (1 задание, 6 баллов) + +Формат: ученик слышит 6 высказываний от 6 говорящих. Нужно установить соответствие +каждого высказывания одному из 7 утверждений (одно утверждение — лишнее). + +Ответ: буква A–F → цифра 1–7. +Оценивание: 1 балл за каждое верное соответствие, максимум 6 баллов. +Пример ответа ученика: A–3, B–1, C–5, D–7, E–2, F–4. + +--- + +## Задания 2–3 — Верно / Неверно / В тексте не сказано (2 задания, 2 балла) + +Формат: ученик слышит диалог. По 2 утверждения, нужно определить: +- 1 (True) — утверждение соответствует диалогу +- 2 (False) — утверждение противоречит диалогу +- 3 (Not stated) — информация в диалоге не упоминается + +Оценивание: 1 балл за каждый верный ответ, максимум 2 балла. + +--- + +## Задания 4–9 — Выбор из трёх вариантов (6 заданий, 6 баллов) + +Формат: ученик слышит 6 монологов/диалогов. К каждому — вопрос с 3 вариантами ответа. +Нужно выбрать верный вариант: 1, 2 или 3. + +Оценивание: 1 балл за каждый верный ответ, максимум 6 баллов (2 задания по 3 баллов). + +> Примечание по структуре: в разных вариантах ФИПИ количество заданий блоков может +> незначительно варьироваться. Агент должен ориентироваться на фактические ключи +> проверяющего, а не на фиксированную нумерацию выше. + +--- + +## Итоговая таблица + +| Блок | Задания | Тип | Макс. баллов | +|------|---------|-----|-------------| +| Соответствие | 1 | A–F → 1–7 | 6 | +| True/False/Not stated | 2–3 | 1/2/3 | 2 | +| Выбор ответа | 4–9 | 1/2/3 | 6 (иногда делится на подблоки) | +| | | **Итого** | **12** | + +--- + +## Алгоритм проверки агентом + +### Что нужно для оценки +1. Распознанные ответы ученика (из аудиозаписи через recognition.py) +2. Правильные ответы (ключи) от проверяющего + +### Логика сверки +- Задание 1: совпадение буква → цифра (A=3 у ученика, A=3 в ключе → 1 балл) +- Задания 2–9: совпадение цифры (ученик: 1, ключ: 1 → 1 балл) +- Нераспознанный ответ ("?") → 0 баллов +- Регистр не важен: "TRUE", "true", "T" — одно и то же +- Для соответствий принимать форматы: "A3", "A-3", "A=3", "A — 3" + +### Формат вывода + +Три блока с таблицами: задание | ответ ученика | ключ | результат (+ или -) +Итог по каждому блоку + общий итог из 12. +Список ошибок с пояснением: "Задание 1B: ученик — 5, верный ответ — 1". +Если есть нераспознанные задания — явно указать какие и что они засчитаны как 0. diff --git a/ege-checker/references/russian-essay-criteria.md b/ege-checker/references/russian-essay-criteria.md index d3317b5..e727016 100644 --- a/ege-checker/references/russian-essay-criteria.md +++ b/ege-checker/references/russian-essay-criteria.md @@ -1,5 +1,19 @@ # Критерии оценивания сочинения ЕГЭ по русскому языку -## Источник: ФИПИ, демоверсия 2024–2025 +## Источник: ФИПИ, демоверсия ЕГЭ 2026 (задание 27) + +--- + +## Формулировка задания 27 + +Напишите сочинение-рассуждение по проблеме, поставленной в исходном тексте. +Сформулируйте позицию автора (рассказчика) по указанной проблеме. +Прокомментируйте, как в тексте раскрывается эта позиция. Включите в комментарий два +примера-иллюстрации из текста, важные для понимания позиции автора, и поясните их. +Укажите и поясните смысловую связь между примерами-иллюстрациями. +Сформулируйте и обоснуйте своё отношение к позиции автора. Включите в обоснование +пример-аргумент (читательский, историко-культурный или жизненный опыт). + +Объём — не менее 150 слов. --- @@ -7,200 +21,151 @@ ### Подсчёт слов - Считаются все слова, включая служебные (предлоги, союзы, частицы) -- Если слов **меньше 70** → все критерии = 0 (кроме К10) -- Если слов **70–149** → рекомендуемый объём не выдержан, но работа проверяется -- Рекомендуемый объём: **150–300 слов** +- Инициалы с фамилией = одно слово («М.Ю. Лермонтов» — одно слово) +- Цифры при подсчёте не учитываются («5 лет» — одно слово, «пять лет» — два) +- «всё-таки» — одно слово, «всё же» — два слова +- Если слов менее 150 → работа не засчитывается, все критерии = 0 +- Если сочинение написано не по тексту → 0 баллов +- Если полный пересказ/переписывание исходного текста → 0 по К1–К10 ### Правило нулевого К1 -Если К1 = 0 (проблема не сформулирована или сформулирована неверно): -→ К2 = 0, К3 = 0, К4 = 0 **автоматически** +Если К1 = 0 → К2 = 0, К3 = 0 автоматически --- -## К1 — Формулировка проблем исходного текста (0–1 балл) +## I. Содержание сочинения -**1 балл**: Экзаменуемый (в той или иной форме) верно сформулировал одну из проблем исходного текста. Фактических ошибок, связанных с пониманием и формулировкой проблемы, нет. +### К1 — Отражение позиции автора (рассказчика) (0–1 балл) -**0 баллов**: Экзаменуемый не смог верно сформулировать ни одну из проблем исходного текста. +1 балл: Позиция автора по указанной проблеме сформулирована верно. +0 баллов: Позиция автора не сформулирована или сформулирована неверно. -**Подсказки для проверки:** -- Проблема должна быть сформулирована как вопрос или тезис -- Она должна соответствовать содержанию исходного текста -- Допустимы разные формулировки одной и той же проблемы +Важно (изменение 2026): проблема задана в формулировке задания. Ученик раскрывает +позицию АВТОРА по этой проблеме — не формулирует проблему самостоятельно. --- -## К2 — Комментарий к сформулированной проблеме исходного текста (0–6 баллов) +### К2 — Комментарий к позиции автора (0–3 балла) -Структура: **2 примера-иллюстрации** из текста + **смысловая связь** между ними. +Структура: 2 примера-иллюстрации с пояснениями + смысловая связь с пояснением. -| Баллы | Условия | -|-------|---------| -| 6 | Оба примера с пояснениями + связь с анализом | -| 5 | Оба примера с пояснениями + связь без анализа | -| 4 | Оба примера с пояснениями, связь не указана | -| 3 | Один пример с пояснением + связь | -| 2 | Оба примера без пояснений + связь | -| 1 | Один пример без пояснения | -| 0 | Примеры отсутствуют или текст пересказан | +| Баллов | Условия | +|--------|---------| +| 3 | 2 примера с пояснениями + смысловая связь с пояснением | +| 2 | 2 примера с пояснениями + связь без пояснения ИЛИ связь не указана/неверна | +| 1 | 1 пример с пояснением | +| 0 | Пример без пояснения ИЛИ нет примеров ИЛИ пересказ ИЛИ цитирование большого фрагмента ИЛИ комментарий без опоры на текст | -**Важно:** -- Пример-иллюстрация = конкретный фрагмент/факт из текста с объяснением его роли -- Смысловая связь: сравнение, противопоставление, причина-следствие, вывод и т.д. -- Пересказ без анализа = 0 баллов -- Фактические ошибки в комментарии снижают балл (−1 за каждую, но не более −2) +Правила: +- Пример без пояснения не засчитывается +- Фактическая ошибка в комментарии учитывается по К4 +- Не принимаются: комикс, аниме, манга, фанфик, графический роман, компьютерная игра --- -## К3 — Отражение позиции автора исходного текста (0–1 балл) +### К3 — Собственное отношение к позиции автора (0–2 балла) -**1 балл**: Позиция автора верно сформулирована. Фактических ошибок нет. +2 балла: Отношение сформулировано и обосновано + приведён пример-аргумент. +1 балл: Отношение обосновано, но аргумент не приведён. + ИЛИ Аргумент есть, но отношение формальное («Я согласен с автором»). +0 баллов: Только формальное согласие/несогласие без обоснования. + ИЛИ Отношение не сформулировано. + ИЛИ Не соответствует указанной проблеме. -**0 баллов**: Позиция автора не сформулирована или сформулирована неверно. - -**Подсказки:** -- Позиция = ответ автора на поставленную проблему -- Должна быть явно выражена, не просто угадана -- Можно цитировать или пересказывать +Источники аргумента: читательский, историко-культурный или жизненный опыт. +Не принимаются: комикс, аниме, манга, фанфик, графический роман, компьютерная игра. --- -## К4 — Отношение к позиции автора по проблеме исходного текста (0–1 балл) +## II. Речевое оформление -**1 балл**: Экзаменуемый выразил своё отношение к позиции автора и обосновал его. +### К4 — Фактическая точность речи (0–1 балл) -**0 баллов**: Экзаменуемый не выразил своё отношение или оно не обосновано. +1 балл: Фактические ошибки отсутствуют. +0 баллов: Допущена 1 фактическая ошибка или более. -**Подсказки:** -- Формальное согласие/несогласие без обоснования = 0 -- Обоснование: личный опыт, примеры из жизни/литературы, логические доводы -- Фраза "я согласен с автором" без аргумента = 0 +Фактические ошибки: неверные имена/даты/названия, искажение содержания упоминаемых +текстов и событий, ошибки в именах реальных людей. --- -## К5 — Смысловая цельность, речевая связность и последовательность изложения (0–2 балла) +### К5 — Логичность речи (0–2 балла) -**2 балла**: Работа характеризуется смысловой цельностью, речевой связностью и последовательностью изложения. Логических ошибок нет. Абзацное членение присутствует. +2 балла: Логические ошибки отсутствуют. +1 балл: 1–2 логические ошибки. +0 баллов: 3 и более логические ошибки. -**1 балл**: 1–2 логические ошибки ИЛИ нарушено абзацное членение. - -**0 баллов**: 3+ логические ошибки ИЛИ отсутствует абзацное членение. - -**Типичные логические ошибки:** -- Нарушение последовательности мысли -- Отсутствие связи между абзацами -- Повтор одной мысли разными словами -- Противоречия в тексте +Типичные: нарушение последовательности, противоречия, нарушение причинно-следственных +связей, отсутствие связи между абзацами. --- -## К6 — Точность и выразительность речи (0–2 балла) +### К6 — Соблюдение этических норм (0–1 балл) -**2 балла**: Работа характеризуется точностью выражения мысли, разнообразием грамматического строя речи. - -**1 балл**: Работа характеризуется точностью выражения мысли, но однообразием грамматического строя речи ИЛИ выразительностью, но использованием неточных слов. - -**0 баллов**: Точность и выразительность речи существенно снижены. - -**Примечание:** К6 не может быть выше К10. Если К10 = 0, то К6 = 0. +1 балл: Этические ошибки отсутствуют. +0 баллов: Пропаганда экстремизма/фашизма/нетрадиционных ценностей, нецензурная брань, + материалы запрещённые среди несовершеннолетних, иностранные слова при наличии + общеупотребительных русских аналогов не из нормативных словарей. --- -## К7 — Соблюдение орфографических норм (0–3 балла) +## III. Грамотность -| Баллы | Количество ошибок | -|-------|-------------------| -| 3 | 0 ошибок | -| 2 | 1 ошибка | -| 1 | 2–3 ошибки | -| 0 | 4+ ошибки | +> Нормы К7–К10 разработаны для сочинений от 150 слов. +> При объёме менее 150 слов — работа не засчитывается, все баллы = 0. -**Что считается ошибкой:** -- Неверное написание слова -- Слитное/раздельное/дефисное написание -- Прописные/строчные буквы +### К7 — Орфография (0–3 балла) -**Что НЕ считается ошибкой:** -- Описки (если исправлены) -- Перенос слова +| Баллов | Ошибок | +|--------|--------| +| 3 | 0 | +| 2 | 1–2 | +| 1 | 3–4 | +| 0 | 5+ | + +### К8 — Пунктуация (0–3 балла) + +| Баллов | Ошибок | +|--------|--------| +| 3 | 0 | +| 2 | 1–2 | +| 1 | 3–4 | +| 0 | 5+ | + +### К9 — Грамматика (0–3 балла) + +| Баллов | Ошибок | +|--------|--------| +| 3 | 0 | +| 2 | 1–2 | +| 1 | 3–4 | +| 0 | 5+ | + +Типичные: ошибки в управлении и согласовании, неправильное образование форм слова, +нарушение синтаксических норм. + +### К10 — Речевые нормы (0–3 балла) + +| Баллов | Ошибок | +|--------|--------| +| 3 | 0 | +| 2 | 1–2 | +| 1 | 3–4 | +| 0 | 5+ | + +Типичные: тавтология, плеоназм, неуместное/несвойственное употребление слова. --- -## К8 — Соблюдение пунктуационных норм (0–3 балла) +## Итоговая таблица (ЕГЭ 2026) -| Баллы | Количество ошибок | -|-------|-------------------| -| 3 | 0 ошибок | -| 2 | 1–2 ошибки | -| 1 | 3–4 ошибки | -| 0 | 5+ ошибок | +| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | Итого | +|----|----|----|----|----|----|----|----|----|-----|-------| +| 1 | 3 | 2 | 1 | 2 | 1 | 3 | 3 | 3 | 3 | 22 | -**Типичные ошибки:** -- Пропуск запятой при однородных членах -- Ошибки в сложных предложениях -- Неверное оформление прямой речи - ---- - -## К9 — Соблюдение языковых норм (грамматика) (0–2 балла) - -| Баллы | Количество ошибок | -|-------|-------------------| -| 2 | 0 ошибок | -| 1 | 1–2 ошибки | -| 0 | 3+ ошибки | - -**Типичные грамматические ошибки:** -- Ошибки в согласовании (управлении) -- Неправильное образование форм слова -- Нарушение синтаксических норм - ---- - -## К10 — Соблюдение речевых норм (0–2 балла) - -| Баллы | Количество ошибок | -|-------|-------------------| -| 2 | 0–1 ошибка | -| 1 | 2–3 ошибки | -| 0 | 4+ ошибки | - -**Типичные речевые ошибки:** -- Тавтология (повтор одного слова/однокоренных слов) -- Плеоназм (масло масляное) -- Неуместное употребление слова -- Употребление слова в несвойственном значении - ---- - -## К11 — Соблюдение этических норм (0–1 балл) - -**1 балл**: Этические ошибки отсутствуют. - -**0 баллов**: Допущена 1+ этическая ошибка. - -**Этические ошибки:** -- Грубость, оскорбления в адрес кого-либо -- Национальная/религиозная нетерпимость -- Речевая агрессия - ---- - -## К12 — Соблюдение фактологической точности (0–1 балл) - -**1 балл**: Фактические ошибки отсутствуют. - -**0 баллов**: Допущена 1+ фактическая ошибка. - -**Фактические ошибки:** -- Неверные имена, даты, названия произведений -- Искажение содержания упомянутых текстов -- Неверные факты о реальных событиях/людях - ---- - -## Таблица максимальных баллов - -| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | К11 | К12 | Итого | -|----|----|----|----|----|----|----|----|----|-----|-----|-----|-------| -| 1 | 6 | 1 | 1 | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 | **25** | +Изменения 2026 vs 2025: +- К2: максимум снижен с 6 до 3 баллов +- К3: максимум увеличен с 1 до 2 баллов +- К9, К10: максимум увеличен с 2 до 3 баллов каждый +- К11 (этика) и К12 (фактика) упразднены, включены в К5 и К6 +- Итоговый максимум: 22 балла (было 25) From a54192b882dc983fb18955e205768dd3ba979ca5 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Thu, 2 Apr 2026 22:43:46 +0300 Subject: [PATCH 07/23] fix SKILL.md --- ege-checker/SKILL.md | 282 +++++++++++++++++++++++-------------------- 1 file changed, 150 insertions(+), 132 deletions(-) diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index eeee0f8..bec151f 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -5,108 +5,106 @@ description: > Используй этот скилл когда пользователь: - Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку - Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу - - Загружает аудиозапись или текст ответов по разделу "Аудирование" ЕГЭ по английскому + - Загружает аудиозапись ответов по разделу "Аудирование" ЕГЭ по английскому - Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "аудирование английский" - Просит разобрать ошибки в сочинении по критериям ФИПИ - Скилл умеет: OCR рукописного текста через vision (multimodal), оценку по критериям, подробные комментарии. Работает с любой multimodal LLM (Qwen, GPT-4o и др.). + Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через recognition.py, + оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.). --- # ЕГЭ-Checker ## Обзор возможностей -| Модуль | Статус | Вход | Выход | -|--------|--------|------|-------| -| Сочинение (русский) | ✅ MVP | Фото рукописи или текст | Баллы К1–К12 + комментарии | -| Аудирование (английский) | ✅ MVP | Аудиофайл + ключи | Баллы по заданиям | +| Модуль | Вход — только распознавание | Вход — распознавание + оценка | +|--------|----------------------------|-------------------------------| +| Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема | +| Аудирование (английский) | Аудиозапись | Аудиозапись + ключи проверяющего | --- ## Модуль 1: Сочинение ЕГЭ по русскому языку -### Что получает агент от проверяющего -Проверяющий присылает в одном сообщении: -1. **Сканы бланков** — фото рукописного сочинения (один или несколько листов) -2. **Исходный текст задания** — публицистический/художественный текст, по которому написано сочинение -3. **Тему/формулировку задания** — если есть отдельно (иногда тема вытекает из текста) +### Логика запуска -Без исходного текста невозможно проверить К1, К2, К3 и К12. Если текст не прислан — попроси его перед началом проверки. +**Если прислали только сканы бланков (без исходного текста и темы):** +→ Только распознать рукопись и вывести текст. Оценку не выставлять. +→ Сообщить: "Текст распознан. Чтобы выставить баллы по критериям, пришлите также исходный текст задания и тему сочинения." -### Шаг 1 — Получить текст сочинения - -**Если загружено фото/скан:** -1. Внимательно рассмотри все изображения — бланки могут быть на нескольких листах -2. Распознай рукописный текст максимально точно, сохраняя абзацное деление -3. Выведи распознанный текст и попроси подтвердить: *"Вот что распознано. Если есть неточности — поправьте перед проверкой."* -4. Дождись подтверждения или правок - -**Если текст вставлен напрямую:** -Переходи к Шагу 2 без распознавания. - -### Шаг 2 — Загрузить критерии - -Прочитай файл `references/russian-essay-criteria.md` — там полные критерии К1–К12 с баллами и примерами. - -### Шаг 3 — Оценить по каждому критерию - -Пройдись по всем критериям К1–К12 **последовательно**. Для каждого: -- Процитируй конкретный фрагмент из сочинения (если уместно) -- Объясни своё решение -- Выставь балл - -**Важные правила:** -- Если К1 = 0 (нет формулировки проблемы) → К2, К3, К4 автоматически = 0 -- Если работа ≤ 70 слов → все баллы = 0, только К10 может быть ненулевым -- Считай слова перед проверкой (служебные части речи считаются) - -### Шаг 4 — Итоговый вывод - -Используй этот формат вывода: - -``` -## Результаты проверки сочинения ЕГЭ - -### Распознанный текст -[текст если было фото, иначе пропусти] - -### Количество слов: XX +**Если прислали сканы + исходный текст задания + тему:** +→ Распознать рукопись, затем выставить баллы по К1–К10 с объяснением снятий. --- +### Режим 1: Только распознавание + +1. Внимательно рассмотри все изображения — бланки могут быть на нескольких листах +2. Распознай рукописный текст максимально точно, сохраняя абзацное деление +3. Зачёркнутые слова отмечай как ~~зачёркнуто~~ +4. Выведи распознанный текст и сообщи количество слов +5. Уточни: "Если есть неточности — поправьте. Чтобы выставить баллы, пришлите исходный текст задания." + +--- + +### Режим 2: Распознавание + оценка по критериям + +**Шаг 1 — Распознать текст** (как в режиме 1, шаги 1–4) +Попроси подтвердить распознанный текст перед оценкой. + +**Шаг 2 — Загрузить критерии** +Прочитай `references/russian-essay-criteria.md` — критерии К1–К10 с баллами (ЕГЭ 2026). + +**Шаг 3 — Проверить предварительные условия** +- Подсчитай слова. Если менее 150 → все критерии = 0, сообщи об этом явно. +- Если К1 = 0 → К2 и К3 автоматически = 0. + +**Шаг 4 — Оценить по каждому критерию К1–К10 последовательно** + +Для каждого критерия: +- Процитируй конкретный фрагмент из сочинения (если уместно) +- Объясни снятие баллов — что именно не выполнено и почему +- Выставь балл + +**Шаг 5 — Итоговый вывод** + +``` +## Результаты проверки сочинения ЕГЭ (2026) + +### Количество слов: XX + ### Оценка по критериям | Критерий | Название | Балл | Макс | |----------|----------|------|------| -| К1 | Формулировка проблем исходного текста | X | 1 | -| К2 | Комментарий к проблеме | X | 6 | -| К3 | Отражение позиции автора | X | 1 | -| К4 | Отношение к позиции автора | X | 1 | -| К5 | Смысловая цельность, связность | X | 2 | -| К6 | Точность и выразительность речи | X | 2 | +| К1 | Позиция автора | X | 1 | +| К2 | Комментарий к позиции автора | X | 3 | +| К3 | Собственное отношение + аргумент | X | 2 | +| К4 | Фактическая точность | X | 1 | +| К5 | Логичность | X | 2 | +| К6 | Этические нормы | X | 1 | | К7 | Орфография | X | 3 | | К8 | Пунктуация | X | 3 | -| К9 | Языковые нормы | X | 2 | -| К10 | Речевые нормы | X | 2 | -| К11 | Этические нормы | X | 1 | -| К12 | Фактическая точность | X | 1 | -| **ИТОГО** | | **XX** | **25** | - ---- +| К9 | Грамматика | X | 3 | +| К10 | Речевые нормы | X | 3 | +| **ИТОГО** | | **XX** | **22** | ### Подробные комментарии **К1 — [балл/1]** -[объяснение] +[что именно засчитано или почему снято] -**К2 — [балл/6]** -[объяснение с цитатами из текста] +**К2 — [балл/3]** +[разбор с цитатами: есть ли 2 примера, пояснения, смысловая связь] -... и так далее по каждому критерию ... +...и так далее по каждому критерию... ---- +### Снятия баллов (итого) +- К2: -1 — смысловая связь между примерами есть, но не пояснена +- К7: -1 — ошибка в слове "..." +... ### Главные рекомендации -1. [самое важное для улучшения] +1. [самое важное] 2. ... ``` @@ -114,109 +112,129 @@ description: > ## Модуль 2: Аудирование ЕГЭ по английскому -### Что получает агент от проверяющего -Проверяющий присылает в одном сообщении: -1. **Аудиозапись** — файл с устными ответами ученика (MP3, WAV, M4A и т.д.) -2. **Правильные ответы (ключи)** — текстом или фото бланка с ключами +### Логика запуска -### Шаг 1 — Сохранить аудиофайл во временную директорию +**Если прислали только аудиозапись (без ключей):** +→ Только распознать ответы ученика через recognition.py и вывести их таблицей. +→ Сообщить: "Ответы распознаны. Чтобы выставить баллы, пришлите правильные ответы (ключи)." -Сохрани полученный аудиофайл во временный путь `/tmp/ege_audio_.`. +**Если прислали аудиозапись + ключи проверяющего:** +→ Распознать ответы, затем сверить с ключами и выставить баллы с объяснением ошибок. +--- + +### Режим 1: Только распознавание + +**Шаг 1 — Сохранить аудиофайл** ```python import os, time - ext = os.path.splitext(original_filename)[1] or ".mp3" tmp_path = f"/tmp/ege_audio_{int(time.time())}{ext}" with open(tmp_path, "wb") as f: f.write(audio_bytes) ``` -### Шаг 2 — Запустить recognition.py +**Шаг 2 — Запустить recognition.py** -**Через subprocess (рекомендуется):** +Через subprocess (рекомендуется): ```bash -python3 ~/zeroclaw-bot/recognition.py {tmp_path} --output json +python3 ~/zeroclaw-bot/recognition.py --output json ``` -**Через прямой импорт:** +Через прямой импорт: ```python import sys sys.path.insert(0, os.path.expanduser("~/zeroclaw-bot")) from recognition import process_audio - transcript, answers = process_audio(tmp_path, model_size="medium", verbose=False) -recognition_json = { - "transcript": transcript.text, - "answers": answers.to_dict(), - "unrecognized": answers.unrecognized, -} ``` -Результат — JSON: -- `transcript` — полный текст того, что сказал ученик -- `answers.task1` — {"A": "3", "B": "1", ...} -- `answers.task2_9` — {"2": "1", "3": "2", ...} -- `answers.task10_18` — {"10": "2", "11": "1", ...} -- `answers.unrecognized` — задания, которые не удалось извлечь (засчитать как 0) - -### Шаг 3 — Получить и распознать ключи -Если ключи пришли текстом — использовать напрямую. -Если пришло фото бланка с ключами — распознать через vision. - -### Шаг 4 — Передать в LLM для сверки и выставления баллов - -Сформируй промпт для LLM на основе результатов recognition.py. -Подставь реальные значения вместо плейсхолдеров: - +**Шаг 3 — Удалить временный файл** +```python +if os.path.exists(tmp_path): + os.remove(tmp_path) ``` -Ты эксперт-проверяющий ЕГЭ по английскому (аудирование). -Транскрипт ответов ученика (распознан через Whisper): +**Шаг 4 — Вывести распознанные ответы** +Таблица: задание | распознанный ответ +Если есть нераспознанные — явно отметить. +Сообщить: "Ответы распознаны. Пришлите правильные ответы (ключи) для выставления баллов." + +--- + +### Режим 2: Распознавание + оценка + +**Шаги 1–3** — те же, что в режиме 1 (сохранить, запустить, удалить). + +**Шаг 4 — Получить и распознать ключи** +Если ключи текстом — использовать напрямую. +Если ключи фото — распознать через vision. + +**Шаг 5 — Загрузить критерии** +Прочитай `references/english-listening-criteria.md`. + +**Шаг 6 — Передать в LLM для сверки** + +Промпт для модели (подставить реальные значения): +``` +Ты эксперт-проверяющий ЕГЭ по английскому (аудирование, 2026). + +Транскрипт ответов ученика (Whisper): [TRANSCRIPT] Извлечённые ответы ученика: -- Задание 1 (A-F): [TASK1] -- Задания 2-9: [TASK2_9] -- Задания 10-18: [TASK10_18] +- Задание 1 (A–F): [TASK1] +- Задания 2–3 (True/False/Not stated): [TASK2_3] +- Задания 4–9 (выбор 1/2/3): [TASK4_9] - Не распознаны (засчитать как 0): [UNRECOGNIZED] Правильные ответы (ключи): [KEYS] -Сверь ответы с ключами. 1 балл за совпадение, 0 — за несовпадение или отсутствие. +Сверь ответы с ключами. 1 балл за совпадение, 0 за несовпадение или отсутствие. Верни строго JSON без markdown: -{"results":{"task1":{"A":true},"task2_9":{"2":true},"task10_18":{"10":false}}, - "scores":{"task1":0,"task2_9":0,"task10_18":0,"total":0}, - "errors":["Задание 1B: ученик ответил 5, верный ответ 1"]} +{"results":{"task1":{"A":true},"task2_3":{"2":true},"task4_9":{"4":false}}, + "scores":{"task1":0,"task2_3":0,"task4_9":0,"total":0}, + "errors":["Задание 1B: ученик — 5, верный ответ — 1"]} ``` -Читай `references/english-listening-criteria.md` для максимальных баллов каждого блока. +**Шаг 7 — Вывести результат** -### Шаг 5 — Удалить временный файл +``` +## Результаты: Аудирование ЕГЭ (Английский язык, 2026) -Обязательно удали аудиофайл после получения ответа от LLM: +### Задание 1 — Установление соответствия (макс. 6 баллов) +| Высказывание | Ответ ученика | Ключ | Результат | +| A | 3 | 3 | + | +| B | 5 | 1 | - | +... +Баллов: X / 6 -```python -import os -if os.path.exists(tmp_path): - os.remove(tmp_path) +### Задания 2–3 — True / False / Not stated (макс. 2 балла) +... +Баллов: X / 2 + +### Задания 4–9 — Выбор ответа (макс. 6 баллов) +... +Баллов: X / 6 (или X / подблок) + +### Итого: XX / 12 + +### Ошибки с пояснением: +- Задание 1B: ученик ответил 5, верный ответ 1 +... + +[Если были нераспознанные:] +Задания X, Y не были распознаны в аудио и засчитаны как неверные (0 баллов). ``` -### Шаг 6 — Вывести результат пользователю - -Три блока (Задание 1 / Задания 2-9 / Задания 10-18): -колонки — задание, ответ ученика, ключ, результат (✓/✗). -Итог: баллы по каждому блоку + общий итог из 23. - -Если были нераспознанные задания — явно указать: -"Задания X, Y не были распознаны в аудио и засчитаны как неверные." --- -## Общие принципы проверки +## Общие принципы -- **Актуальность**: Критерии соответствуют демоверсии ФИПИ 2024–2025 -- **Строгость**: Придерживайся формулировок критериев, не занижай и не завышай -- **Пограничные случаи**: При сомнении между баллами — объясни оба варианта и выбери более обоснованный -- **Тон**: Конструктивный, поддерживающий. Это учебный инструмент, не карательный -- **Совместимость**: Скилл написан без привязки к конкретной модели. Работает с любым multimodal агентом, поддерживающим vision и аудио (Qwen3, GPT-4o, и др.) +- **Актуальность**: Критерии соответствуют ФИПИ ЕГЭ 2026 +- **Строгость**: Придерживайся формулировок критериев точно +- **Снятия**: Всегда объясняй конкретно что именно не выполнено и почему снят балл +- **Пограничные случаи**: При сомнении — объясни оба варианта, выбери более обоснованный +- **Тон**: Конструктивный, учебный инструмент — не карательный +- **Совместимость**: Скилл работает с любым multimodal агентом (Qwen3, GPT-4o и др.) From 88a17d528bf71ea7cdcdc1f87ab48013321cf2ba Mon Sep 17 00:00:00 2001 From: shuler7 Date: Sun, 19 Apr 2026 12:13:48 +0300 Subject: [PATCH 08/23] add ocr tests --- ege-checker/SKILL.md | 4 ++-- tests/ocr-accuracy.json | 42 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 tests/ocr-accuracy.json diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index bec151f..be8d1a2 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -138,13 +138,13 @@ with open(tmp_path, "wb") as f: Через subprocess (рекомендуется): ```bash -python3 ~/zeroclaw-bot/recognition.py --output json +python3 ~/.zeroclaw/recognition.py --output json ``` Через прямой импорт: ```python import sys -sys.path.insert(0, os.path.expanduser("~/zeroclaw-bot")) +sys.path.insert(0, os.path.expanduser("~/.zeroclaw")) from recognition import process_audio transcript, answers = process_audio(tmp_path, model_size="medium", verbose=False) ``` diff --git a/tests/ocr-accuracy.json b/tests/ocr-accuracy.json new file mode 100644 index 0000000..c829568 --- /dev/null +++ b/tests/ocr-accuracy.json @@ -0,0 +1,42 @@ +[ + { + "region": 1, + "surname": "Городничий", + "ocr": "Чем опасны неопределённые люди? Этому посвящён текст К.В.Гурифонова. Автор считает, что неопределённые люди опасны тем, что на первый взгляд они могут казаться для всех приятными и подходящими. Но их настоящий характер может раскрыться в самый неподходящий момент. Посмотрим, как данная мысль раскрывается в тексте. Гурифонов повествует о группе мальчиков, которые решили, должны ли они брать в своё тайное общество Вадю Лебова, по кличке Батон, который как раз и был неопределённым человеком. Автор пишет: «Этот Вадька Батон долгое время занимал меня как личность довольно загадочная. Почему-то многие хотели с ним дружить. Он был какой-то для всех подходящий. И с теми, и с этими, и не злой, и не добрый, и не очень жадный, и не очень умный, и не трусливый, и не сильный, и вроде бы не хитрец, и в то же время не простаки. Мог дружить с Лёвкой и Манькой, хотя Лёвка и Манька друг друга терпеть не могли». Мальчики решили довериться ему и посвятить в своё общество. Этот пример показывает, что к неопределённым людям легко привязаться и довериться им. Далее автор рассказывает о том, что Вадька предал их, когда они ему доверились. «Наконец Батон сказал: такой-то день. Мы пошли часов в пять вечера. Когда подошли к Держинскому подвороть, увидели на втором этаже в окне бледное лицо Батона. Мы прошли весь переулочок, на нас никто не напал... В памяти нет ничего, кроме ощущения досады и странного чувства: будто всё это — для нашего неудовольствия и собственного покоя — подстроил Вадько Батон». Читатель понимает, что неопределённый человек может показать свой настоящий характер в трудной ситуации и предать тех, кто ему доверял. Во втором примере показывается следствие произошедшего в первом. Мальчики доверились Вадьке, а тот их предал, ведь они не могли изначально увидеть понять его настоящий характер. Я согласен с тем, что неопределёнными людьми нельзя доверять, ведь ты не можешь заранее понять настоящий характер такого человека.", + "original": "Чем опасны неопределённые люди? Этой проблеме посвящён текст Ю. В. Трифонова. Автор считает, что неопределённые люди опасны тем, что на первый взгляд они могут казаться для всех приятными и подходящими. Но их настоящий характер может раскрыться в самый неподходящий момент. Рассмотрим, как данная мысль раскрывается в тексте. Трифонов повествует о группе мальчиков, которые решали, должны ли они брать в своё тайное общество Вадьку Глебова, по кличке Батон, который как раз и был неопределённым человеком. Автор пишет: «Этот Вадька Батон долгое время занимал меня как личность немного загадочная. Почему-то многие хотели с ним дружить. Он был какой-то для всех подходящий. И с теми, и с этими, и не злой, и не добрый, и не очень жадный, и не очень уж щедрый, и не трусливый, и не смельчак, и вроде бы не хитрец, и в то же время не простак... Мог дружить с Лёвкой и Манькой, хотя Лёвка и Манька друг друга терпеть не могли». Мальчики решили довериться ему и посвятить в своё общество. Этот пример показывает, что к неопределённым людям легко привязаться и довериться им. Далее автор рассказывает о том, что Вадька предал их, когда они ему доверились: «Наконец Батон сказал: такой-то день. Мы пошли часов в пять вечера. Когда подошли к Держинскому подворью, увидели на втором этаже в окне бледное лицо Батона. Мы прошли весь переулок, на нас никто не напал... В памяти нет ничего, кроме ощущения досады и странного чувства: будто всё это — для нашего неудовольствия и собственного покоя — подстроил Вадька Батон». Читатель понимает, что неопределённый человек может показать свой настоящий характер в трудной ситуации и предать тех, кто ему доверял. Во втором примере показывается следствие произошедшего в первом. Мальчики доверились Вадьке, а тот их предал, ведь они не могли изначально понять его настоящий характер. Я согласен с тем, что неопределённым людям нельзя доверять, ведь ты не можешь заранее понять настоящий характер такого человека.", + "accuracy": 97.8, + "comment": "Модель хорошо справилась с объемом, но есть ошибки в именах собственных («Гурифонов» вместо Трифонов, «Лебова» вместо Глебова) и окончаниях («переулочок» vs переулок)." + }, + { + "region": 1, + "surname": "Долгова", + "ocr": "Чем опасны «неопределённые» люди? Именно этот проблемный вопрос рассматривает Юрий Валентинович Трифонов в предложенном для анализа тексте. Автор считает, что неопределённым людям всегда ведёт. Такие люди умеют подстраиваться под каждого человека, но они опасны тем, что в любой момент могут оказаться предателями. Позиция Трифонова чётко прослеживается в одном из фрагментов текста, где автор пишет о Вадьке Глеbove. Вадька был ярким представителем неопределённых людей. Глебов находил общий язык со всеми. Друг автора создал тайное общество, в которое позвали Вадьку. Мальчик был очень рад такому предложению, но сказал, что в любой момент он сможет выйти из общества. Этим примером автор показывает, как ведёт себя неопределённая личность. Следует обратить внимание на фрагмент в тексте, где автор и его друзья решают дать отпор ребятам, которые били их в переулке. Вадька Глебов жил в том переулке и поддерживал связь с обидчиками. Ребята оповестили Вадьку о том, что пойдут в переулок давать отпор хулиганам. Когда наступил тот самый день, ребята не встретили обидчиков, так как Вадька сделал всё, чтобы они не увиделись. Этим примерол писатель хочет показать, как способен на предательство неопределённый человек. Эти примеры-иллюстрации дополняют друг друга. Первый пример показывает, что неопределённый человек сразу раскрывает свою сущность, а это важно заметить. Второй пример учит тому, что не нужно рассказывать о своих планах неопределённым людям, так как они способны на предательство. ~~Я согласна с позицией Трифонова, действительно~~ Я согласна с позицией Трифонова. Действительно, неопределённые люди очень опасны для общества. Например, в годы войны было много неопределённых людей, которые не могли понять за кого они воюют. Эти люди становились предателями и переходили на сторону зла. В заключение хочется сказать, что неопределённые люди наносят вред обществу и с ними лучше не вступать в контакт.", + "original": "Чем опасны «неопределённые» люди? Именно этот проблемный вопрос рассматривает Юрий Валентинович Трифонов в предложенном для анализа тексте. Автор считает, что неопределённым людям всегда везёт. Такие люди умеют подстраиваться под каждого человека, но они опасны тем, что в любой момент могут оказаться предателями. Позиция Трифонова чётко прослеживается в одном из фрагментов текста, где автор пишет о Вадьке Глебове. Вадька был ярким представителем неопределённых людей. Глебов находил общий язык со всеми. Друг автора создал тайное общество, в которое позвали Вадьку. Мальчик был очень рад такому предложению, но сказал, что в любой момент он сможет выйти из общества. Этим примером автор показывает, как ведёт себя неопределённая личность. Следует обратить внимание на фрагмент в тексте, где автор и его друзья решают дать отпор ребятам, которые побили их в переулке. Вадька Глебов жил в том переулке и поддерживал связь с обидчиками. Ребята оповестили Вадьку о том, что пойдут в переулок давать отпор хулиганам. Когда наступил тот самый день, ребята не встретили обидчиков, так как Вадька сделал всё, чтобы они не увиделись. Этим примером писатель хочет показать, как способен на предательство неопределённый человек. Эти примеры-иллюстрации дополняют друг друга. Первый пример показывает, что неопределённый человек сразу раскрывает свою сущность, а это важно заметить. Второй пример учит тому, что не нужно рассказывать о своих планах неопределённым людям, так как они способны на предательство. Я согласна с позицией Трифонова. Действительно, неопределённые люди очень опасны для общества. Например, в годы войны было много неопределённых людей, которые не могли понять за кого они воюют. Эти люди становились предателями и переходили на сторону зла. В заключение хочется сказать, что неопределённые люди наносят вред обществу и с ними лучше не вступать в контакт.", + "accuracy": 98.5, + "comment": "Очень высокое качество. Основная проблема — неумение обрабатывать зачеркнутый текст: модель распознала его как обычный, добавив лишние слова. Также есть латиница в слове «Глеbove»." + }, + { + "region": 1, + "surname": "Коджесав", + "ocr": "Чем опасны «неопределённые» люди? Над этим нам предлагает задуматься Ю.В. Трифонов. Для того чтобы сформулировать позицию автора по поставленной проблеме и показать, как она раскрыта в тексте, обратимся к предложениям 1-24 и 33-34, где повествуется о том, как герой-рассказчик и его друзья, основав ТОИВ (Тайное общество испытания воли), раздумывают над тем, приглашать ли в него их одноклассника Вадьку Глебова (прозвищем его было «Батон»), который был весьма загадочной личностью. Он сочетал в себе, казалось, все противоположные черты характера, при этом многие хотели с ним дружить. Батон не был очень жадным или щедрым, не добрым и не злым, не хитрым и не добрым. Он также хорошо общался как и с ребятами из Тоив, так и с хулиганами из Аерюгинского переулка, которые с ними враждовали. Мальчишки долго сомневались, но в итоге приняли его в своё общество, ведь, как отмечает сам герой-рассказчик, «люди, умеющие быть никакими, продвигаются далеко», и им всегда везёт. Мы понимаем: «неопределённые» люди, не имеющие чётко сформированных взглядов, приоритетов, так как они позволяют другим проявлять свои истинные намерения, чувства. Они всегда находятся «по-серединке», отчего люди к ним тянуться. Далее герой-рассказчик отмечает, что Вадька обрадовался приглашению, но попроси возможности в любой момент при желании выйти из ТОИВ. Ребята согласились, но позже осознали выгодность этого положения: зная об их тайне, он не был полностью с ними. Каждый раз, когда друзья планировали пойти в Аерюгинский переулк дать отпор хулиганам, Батон говорил, что день неподходящий, но они могут пойти и без него. Арузья сомневались и переживали, что он всё расскажет задирам, и план не реализуется. Однако в один день они пошли туда, но местные забияки, отчего мальчишкам на душе было досадно. У героя-рассказчика в воспоминаниях об этом случае только чувство разочарование, ощущение того, что Вадька для собственного благополучия и для их неудовольствия подстроил это. Мы видим: «неопределённые» люди не способны поддерживать доверительные отношения с другими, поскольку их жизненная позиция неточна, именно поэтому с ними сложно строить совместные цели, так как нет доверия к тому, кто никогда не придерживается чего-то одного в своих поступках. Приведённые примеры связаны уступительными отношениями и позволяют нам в полной мере осознать: несмотря на то, что «неопределённые» люди располагают к себе своей гибкостью и умением подстроиться под окружение, близкое общение построить с ними крайне трудно, ведь они не относят себя ни к какой нравственной категории, отчего их действия могут казаться сомнительными и вносящими в отношения недопонимание. Позиция Трифонова ясна: «никакие» люди хоть и достигают успехов и далеко продвигаются, доверять им сложно, особенно в вопросах моральных решений. Они могут способствовать внутренней неудовлетворённости в своём выборе человека в силу своей непостоянности и неопределённости. Я полностью согласен: «неопределённые» люди опасны своей непредсказуемостью, неуверенностью в собственных действиях. Они часто зависят от тех, кто их окружает. Говоря об этом, я вспоминаю своего бывшего друга Алексея, с которым мы познакомились в школе. Однажды я решил летом поговорить со своими друзьями о разногласиях", + "original": "Чем опасны «неопределённые» люди? Над этим нам предлагает задуматься Ю. В. Трифонов. Для того чтобы сформулировать позицию автора по поставленной проблеме и показать, как она раскрыта в тексте, обратимся к предложениям 1-24 и 33-37, где повествуется о том, как герой-рассказчик и его друзья, организовав ТОИВ (Тайное общество испытания воли), раздумывают над тем, приглашать ли в него их одноклассника Вадьку Глебова (прозвищем его было „Батон”), который был весьма загадочной личностью. Он сочетал в себе, казалось, все противоположные черты характера, притом многие хотели с ним дружить. Батон не был очень жадным или щедрым, не добрым и не злым, не хитрым и не добрым. Он также хорошо общался как и с ребятами из Тоив, так и с хулиганами из Дерюгинского переулка, которые с ними враждовали. Мальчишки долго сомневались, но в итоге приняли его в своё общество, ведь, как отмечает сам герой-рассказчик, «люди, умеющие быть никакими, продвигаются далеко», и им всегда везёт. Мы понимаем: «неопределённые» люди, не имеющие четко сформированных взглядов, приоритетов, так как они позволяют другим проявлять свои истинные намерения, чувства. Они всегда находятся «по-середине», отчего люди к ним тянуться. Далее герой-рассказчик отмечает, что Вадька обрадовался приглашению, но попросил возможности в любой момент при желании выйти из ТОИВ. Ребята согласились, но позже осознали выгодность этого положения: зная об их тайне, он не был полностью с ними. Каждый раз, когда друзья планировали пойти в Дерюгинский переулок дать отпор хулиганам, Батон говорил, что день неподходящий, но они могут пойти и без него. Друзья сомневались и переживали, что он всё расскажет задирам, и план не реализуется. Однако в один день они пошли туда, но местные забияки, отчего мальчишкам на душе было досадно. У героя-рассказчика в воспоминаниях об этом случае только чувство разочарования, ощущение того, что Вадька для собственного благополучия и для их неудовольствия подстроил это. Мы видим: «неопределённые» люди не способны поддерживать доверительные отношения с другими, поскольку их жизненная позиция неточна, именно поэтому с ними сложно строить совместные цели, так как нет доверия к тому, кто никогда не придерживается чего-то одного в своих поступках. Приведённые примеры связаны уступительными отношениями и позволяют нам в полной мере осознать: несмотря на то, что «неопределённые» люди располагают к себе своей гибкостью и умением подстроиться под окружение, близкое общение построить с ними крайне трудно, ведь они не относят себя ни к какой нравственной категории, отчего их действия могут казаться сомнительными и вносящими в отношения недопонимание. Позиция Трифонова ясна: «никакие» люди хоть и достигают успехов и далеко продвигаются, доверять им сложно, особенно в вопросах моральных решений. Они могут способствовать внутренней неудовлетворённости в своём выборе человека в силу своей непостоянности и неопределённости. Я полностью согласен: «неопределённые» люди опасны своей непредсказуемостью, неуверенностью в собственных действиях. Они часто зависят от тех, кто их окружает. Говоря об этом, я вспоминаю своего бывшего друга Алексея, с которым мы познакомились в школе. Однажды я решил летом поговорить со своими друзьями о разногласиях.", + "accuracy": 96.2, + "comment": "Средний результат. Много опечаток в сложных словах («Аерюгинского» вместо Дерюгинского) и пропуски слов (например, потерян глагол «были» перед «местные забияки»)." + }, + { + "region": 2, + "surname": "Абдрахманова", + "ocr": "Должны ли друзья поддерживать друг друга в учёбе и труде? Должны ли друзья поддерживать друг друга в учёбе и труде? Об этом в своём тексте пишет советская детская писательница Эсфирь Михайловна Энден. Автор считает, что друзья вас всегда поймут и помогут. В тексте говорится о двух друзьях. Лёня учился в детской музыкальной школе, играл на скрипке. Коля никогда не слушал, обзывал друга, поэтому Лёня бросил занятия музыкой. Однако в день выступления Коля чувствовал вину за всё, что произошло раньше, волновался за Лёню, был готов ему помочь, спрятал скрипку друга под пальто, чтобы уберечь её от дождя. Эти два примера дополняют друг друга и показывают, что нужно беречь дружбу. Я согласна с мнением автора, потому что, действительно, дружба - это самое важное, что может быть в жизни человека. Ярким примером произведения, в котором также говорится о дружбе, является роман Федора Достоевского, «Преступление и наказание». В произведении рассказывается о хороших взаимоотношениях Раскольникова и Разумихина. В то время, как Раскольников лежал на кровати и болел, Разумихин ухаживал за другом, помогал ему, поддерживал. Таким образом, хочу сказать, что в жизни каждого человека должен быть друг, который готов протянуть руку помощи в любой жизненной ситуации.", + "original": "Должны ли друзья поддерживать друг друга в учёбе и труде? Должны ли друзья поддерживать друг друга в учёбе и труде? Об этом в своём тексте пишет советская детская писательница Эсфирь Михайловна Эмден. Автор считает, что друзья вас всегда поймут и помогут. В тексте говорится о двух друзьях. Лёня учился в детской музыкальной школе, играл на скрипке. Коля никогда не слушал, обзывал друга, поэтому Лёня бросал занятия музыкой. Однако в день выступления Коля чувствовал вину за всё, что произошло раньше, волновался за Лёню, был готов ему помочь, спрятал скрипку друга под пальто, чтобы уберечь её от дождя. Эти два примера дополняют друг друга и показывают, что нужно беречь дружбу. Я согласна с мнением автора, потому что, действительно, дружба — это самое важное, что может быть в жизни человека. Ярким примером произведения, в котором также говорится о дружбе, является роман Федора Достоевского П«реступление и наказание». В произведении рассказывается о хороших взаимоотношениях Раскольникова и Разумихина. В то время, как Раскольников лежал на кровати и болел, Разумихин ухаживал за другом, помогал ему, поддерживал. Таким образом, хочу сказать, что в жизни каждого человека должен быть друг, который готов протянуть руку помощи в любой жизненной ситуации.", + "accuracy": 99.1, + "comment": "Почти идеальное распознавание. Единственная существенная ошибка в фамилии автора («Энден» вместо Эмден) и мелкая пунктуация (тире)." + }, + { + "region": 2, + "surname": "Александрова", + "ocr": "27. Должны ли друзья поддерживать друг друга в учёбе и труде? Именно эта проблема находится в центре внимания автора текста Эсфири Мильхайловны Эгиден. Автор считает, что друзья должны поддерживать друг друга в учёбе и труде. Ведь именно в этом проявляется настоящая дружба. Их поддержка помогает преодолеть возникшие трудности. Приведу примеры из текста, аргументирующие авторскую позицию. В тексте говорится о мальчике Коле, который пришёл посмотреть выступление своего друга Лёмы. Коля искренне переживал за друга, когда тот сбился в момент выступления. И после концерта, когда Лёмин учитель подошёл к Коле и спросил, как ему игра его друга, он решительно ответил, что Лёма играл хорошо. На этом примере мы видим, как важна поддержка друзей. Благодаря ей человек не отступит от своего дела и будет продолжать трудиться, несмотря на сложности. Также Коля, как настоящий друг, прояви заботу к Лене. После разговора с учителем они вышли на улицу и увидели, что идёт сильный дождь. Коля спрятал под своё пальто скрипку Лёми, чтобы она не намочила. Таким образом, мы видим, что друзья должны помогать друг другу чем могут, ведь именно в этом проявляется настоящая дружба. в труде и обучении, ведь в этом проявляется истинная дружба. Эти примеры, дополняющие друг друга, показывают, что друзья должны поддерживать друг друга в учёбе и труде. Я согласна с мнением автора. Действительно, друзья должны оказывать поддержку друг другу в труде и учёбе. Так, в романе Артура Конан Дойля «Этюд в багровых тонах» у главного героя Шерлока Холмса есть лучший друг, который помогает ему в расследовании, благодаря чему Шерлок успешно раскрывает преступление. Таким образом, мы видим, что дружеская поддержка очень важна, благодаря ей человек приходит к успеху в своем деле. В заключении хочу сказать, что каждому человеку стоит поддерживать своих друзей в учебе и труде.", + "original": "Должны ли друзья поддерживать друг друга в учебе и труде? Именно эта проблема находится в центре внимания автора текста Эсфирь Михайловны Эмден. Автор считает, что друзья должны поддерживать друг друга в учёбе и труде. Ведь именно в этом проявляется настоящая дружба. Дружеская поддержка помогает преодолеть возникшие трудности. Приведу примеры из текста, аргументирующие авторскую позицию. В тексте говорится о мальчике Коле, который пришёл посмотреть выступление своего друга Лёни. Коля искренне переживал за друга, когда тот сбился в момент выступления. И после концерта, когда Лёнин учитель подошёл к Коле и спросил, как ему игра его друга, он решительно ответил, что Лёня играл хорошо. На этом примере мы видим, как важна поддержка друзей. Благодаря ей человек не отступит от своего дела и будет продолжать трудиться, несмотря на сложности. Также Коля, как настоящий друг, проявил заботу к Лене. После разговора с учителем они вышли на улицу и увидели, что идёт сильный дождь. Коля спрятал под своё пальто скрипку Лёни, чтобы она не намокла. Таким образом, мы видим, что друзья должны помогать друг другу чем могут, в труде и обучении, ведь в этом проявляется истинная дружба. Эти примеры, дополняющие друг друга, показывают, что друзья должны поддерживать друг друга в учёбе и труде. Я согласна с мнением автора. Действительно, друзья должны оказывать поддержку друг другу в труде и учёбе. Так, в романе Артура Конан Дойля «Этюд в багровых тонах» у главного героя Шерлока Холмса есть лучший друг, который помогает ему в расследовании, благодаря чему Шерлок успешно раскрывает преступление. Таким образом, мы видим, что дружеская поддержка очень важна, благодаря ей человек приходит к успеху в своем деле. В заключении хочу сказать, что каждому человеку стоит поддерживать своих друзей в учебе и труде.", + "accuracy": 97.5, + "comment": "Модель ошиблась в фамилии автора («Эгиден» вместо Эмден) и имени героя («Лёма» вместо Лёня). Есть пропуски окончаний (например, «намочила» вместо намокла)." + } +] \ No newline at end of file From 4764b4cb6eacd34954b21031b66d2395fec03664 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Wed, 29 Apr 2026 23:53:32 +0300 Subject: [PATCH 09/23] add english transcriptions tests --- ege-checker/SKILL.md | 11 +- recognition.py => ege-checker/recognition.py | 0 tests/english-tester.py | 128 ++++++++++++ tests/transcriptions.json | 194 +++++++++++++++++++ 4 files changed, 323 insertions(+), 10 deletions(-) rename recognition.py => ege-checker/recognition.py (100%) create mode 100644 tests/english-tester.py create mode 100644 tests/transcriptions.json diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index be8d1a2..2643c19 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -136,17 +136,8 @@ with open(tmp_path, "wb") as f: **Шаг 2 — Запустить recognition.py** -Через subprocess (рекомендуется): ```bash -python3 ~/.zeroclaw/recognition.py --output json -``` - -Через прямой импорт: -```python -import sys -sys.path.insert(0, os.path.expanduser("~/.zeroclaw")) -from recognition import process_audio -transcript, answers = process_audio(tmp_path, model_size="medium", verbose=False) +python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py --output transcript ``` **Шаг 3 — Удалить временный файл** diff --git a/recognition.py b/ege-checker/recognition.py similarity index 100% rename from recognition.py rename to ege-checker/recognition.py diff --git a/tests/english-tester.py b/tests/english-tester.py new file mode 100644 index 0000000..ce334e2 --- /dev/null +++ b/tests/english-tester.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 +import subprocess +import json +import os +import sys +from pathlib import Path + + +def transcribe_file( + file_path: Path, script_path: Path, timeout_seconds: int = 60 +) -> str: + """ + Вызывает recognition.py для одного файла, возвращает транскрипцию. + """ + cmd = ["python3", str(script_path), "--output", "transcript", str(file_path)] + + try: + result = subprocess.run( + cmd, + capture_output=True, + text=True, + check=True, + encoding="utf-8", + timeout=timeout_seconds, # Добавлен таймаут + ) + # Предполагаем, что скрипт выводит транскрипцию в stdout + transcript = result.stdout.strip() + if not transcript: + print(f"Предупреждение: пустая транскрипция для {file_path}") + return transcript + except subprocess.TimeoutExpired: + error_msg = f"TIMEOUT: превышен лимит в {timeout_seconds} секунд" + print(f"Ошибка: {error_msg} для {file_path}") + return f"ERROR: {error_msg}" + except subprocess.CalledProcessError as e: + print(f"Ошибка при обработке {file_path}: {e}") + print(f"stderr: {e.stderr}") + return f"ERROR: {e.stderr}" + + +def main(): + # Пути + base_dir = Path( + r"/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/" + ) + regions = ["1-Республика_Адыгея", "2-Республика_Башкортостан"] + recognizer_script = Path.home() / "zeroclaw-bot" / "recognition.py" + + # Таймаут на транскрипцию одного файла (в секундах) + TIMEOUT_PER_FILE = 120 + + # Проверки + if not base_dir.exists(): + print(f"Ошибка: директория {base_dir} не найдена") + sys.exit(1) + + if not recognizer_script.exists(): + print(f"Ошибка: скрипт {recognizer_script} не найден") + sys.exit(1) + + # Собираем все .ogg файлы, кроме тех, где озвузичвается код участника + ogg_files = [] + for region in regions: + ogg_files.extend( + [ + file + for i, file in enumerate(list(Path(f"{base_dir}/{region}/").rglob("*.ogg"))) + if i % 5 != 0 + ] + ) + + print(f"Найдено {len(ogg_files)} .ogg файлов") + + results = [] + + for idx, ogg_path in enumerate(ogg_files, 1): + print(f"\n[{idx}/{len(ogg_files)}] Обработка: {ogg_path}") + + # Структура: .../{region}/{fio}/{file} + region = ogg_path.parent.parent.name + fio = ogg_path.parent.name + + print(f" Регион: {region}") + print(f" ФИО: {fio}") + print( + f" Транскрибирование (таймаут: {TIMEOUT_PER_FILE} сек)...", + end=" ", + flush=True, + ) + + transcript = transcribe_file(ogg_path, recognizer_script, TIMEOUT_PER_FILE) + + print("готово") + # Показываем первые 100 символов транскрипции, если она есть + preview = transcript[:100].replace("\n", " ") + if preview and not transcript.startswith("ERROR:"): + print(f" Транскрипция (начало): {preview}...") + elif transcript.startswith("ERROR:"): + print(f" {transcript}") + + results.append( + { + "region": region, + "fio": fio, + "transcript": transcript, + "file_path": str(ogg_path), + } + ) + + # Сохраняем JSON + output_file = Path.cwd() / "transcriptions.json" + with open(output_file, "w", encoding="utf-8") as f: + json.dump(results, f, ensure_ascii=False, indent=2) + + # Статистика + total_files = len(results) + error_files = sum(1 for r in results if r["transcript"].startswith("ERROR:")) + timeout_files = sum(1 for r in results if "TIMEOUT" in r["transcript"]) + success_files = total_files - error_files + + print(f"\n✅ Готово! Результаты сохранены в {output_file}") + print(f"Всего обработано файлов: {total_files}") + print(f" - Успешно: {success_files}") + print(f" - Ошибок: {error_files} (из них timeout: {timeout_files})") + + +if __name__ == "__main__": + main() diff --git a/tests/transcriptions.json b/tests/transcriptions.json new file mode 100644 index 0000000..c31fcc4 --- /dev/null +++ b/tests/transcriptions.json @@ -0,0 +1,194 @@ +[ + { + "region": "1-Республика_Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "It usually snows more in countries that are in the North. For instance, Japan, Russia or some parts of the USA may have hard snowfalls. Mountains are also the places which have a lot of snow. This is especially true for such countries as China. At the same time, there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come here. It's not every place in the world has snowfalls. People from hard countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it's wonderful to have a lot of snow, but it's not always the case. A heavy snowfall can paralyze the life of a city or a country. If snows is rare in a certain location, people there are not used to it and find it hard to commute or even go outside.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_1.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "How much variety of jobs do you have? What is the minimum age for a part-time job? What is required number of hours per week? What is the pay per hour?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_2.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "Usually I spend my weekend with my family and my friends. We are going to the parks or rivers and lakes or forests to walk with them. If it is among my friends, it's walking in the parks and going to the stadium. I think it's really interesting spending free time for my coming weekend. Me, my brother and our friends will go to the river and go to swim then. When the weekend is over, I feel sad because my weekend is really funny and I feel happy when I have a weekend. I would like to spend more time outside with my friends.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_3.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "Hi there! I have found two photos for our school project on doing homework. I'd like to tell you about them. In the first picture one can see a girl. She is doing homework. There are a girl with her mom that is doing homework together in the second picture. Talking about the differences, the key difference is in the first picture girl doing homework alone, while in the second picture girl doing homework with her parents. I think these photos are perfect for our project because they illustrate different kinds of doing homework. I believe that the two types of doing homework have their advantages and disadvantages. As for the advantages, doing homework alone can help you for better concentration. What about doing homework with somebody you can't do it. We'll discuss about the disadvantages. As for doing homework alone, I can say that these disadvantages are the risk of getting worth your attention and doing incorrect answers. One downside of doing homework together is that you can have a fear of taking incorrect answers. Overall, any kind of doing homework is beneficial for our education. I'd prefer doing homework alone because that way I have a lot of concentration of my job. That's all I wanted to tell you. Bye!", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_4.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "It usually snows more in countries that are in the north. For instance Japan, Russia or some parts of the USA may have large snowfalls. Mountains are also the place which have a lot of snow. It is especially true for such countries as China. At the same time there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come there. It is not every place in the world has snowfalls. People from hot countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it is wonderful to have a lot of snow, but it is not always the case. Heavy snow can paralyze the life of a city or a country. If snow is rare in a certain location, people are not used to it and find it hard to commute or even go outside.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_1.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "What variety of jobs you have to start there, working, pay as much as you pay per hour.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_2.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "I usually spend my weekend with my friends. We usually go to the cinema or play computer games. It's sport. I like to do some exercise in the gym. My plans at the weekend is go to trip to the mountain. We have planned this with my friends. I feel so bad because when it's over, I feel so bad. But sometimes I feel good because I can go to the school. I like to change my daily routine. I want to do more homework. It's important for me.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_3.ogg" + }, + { + "region": "1-Республика_Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_4.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It retains as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes, and oceans. The water in the oceans is home to millions of sea creatures, and the water in the sea streams, rivers, and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rain water. It makes the air fresh and clean.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_1.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "Where is location? What cost of delivery? Where special location decorations? Where is the potted flowers?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_2.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "In my daily life, I use my mobile phone and television because I chat with my friends and call my mom. The digital technology that makes my life easier is my telephone because I chat with my friends, no more information. The best features on MedKindness is television. In my opinion, the famous Russian list is Mikhail Vasilyevich Lomonosov, the Russian scientist who knows a scientist like math and he is so curious. I think I don't see my life without my mobile phone because it keeps more information for me and I chat with my friends and call my mom. It improves my life and I don't see the life without it.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_3.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "Hi Kate, I have an hour project for you in two pictures we have seen. In the first pictures we see girls who play the computer games and she liked it because the computer game have a brain side and improve your brain explanation. In the second photo we have seen girls and their mom who play the computer games and she liked it because they have a big chest. In disadvantages, however, I can say advantages or disadvantages. In advantages, first picture, we can see that girl playing and improve your skills in computer game. In two pictures we have seen the brain-heart game, but disadvantages our pictures. In the first pictures, girls save more time for that and in the second pictures, she will be angry about that your game is disappointed. In two disadvantages, what the most time kills because she said them. I prefer picture number one because the girl plays the computer game and she likes to play the computer game. In the second pictures, girls save more time for that and in the third pictures, girls save more time for that and she will be angry about that your game is disappointed. I love computer game and what about them. I wait your opinion.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_4.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_1.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "Where is your flower shop located? What is the cost of delivery? Are there any special occasion decorations? Are potted flowers available?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_2.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "In my daily life I usually use such gadgets as smartphone, TV and personal computer. Modern technologies makes our life easier in that way that you don't need to go to the library to read some necessary information. It's more convenient now to go shopping or surfing the net than before. Well, I think the best invention of mankind is Internet because it allows us to do basically everything. You basically can't imagine our everyday life without Internet, without the Internet. Well, there is famous Russian inventor of a radio. His name is Popov. He invented radio before anyone else, as far as I know. Well, I think I could live without smartphone for a month because it's not that hard to avoid all these benefits that smartphone brings. But I have to admit it would be quite difficult.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_3.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "Hi John, how are you? I've just found two pictures that are suitable for our school project. They're games people like. Let me quickly describe them. One of the pictures shows a girl playing computer games. The other picture shows a mother with her daughter playing chess. The main difference between these two photos is that it's two different types of games. As for the advantages of playing computer games, I would like to say that it develops quick reaction. Also, it develops your social skills because you have to communicate with your teammates in the game. As for the advantages of checkmates, I would like to say that it develops your logical thinking. Moreover, it allows you to analyze, it teaches you to analyze situation and make right decisions very fast. As for disadvantages, however, there are also disadvantages. Computer gaming actually makes your eyesight, makes your mental health worse. Also, it's bad for your eyesight. Checkmates also has some withdrawals, such as badly influence your physical condition. Your posture can get worse and you feel worse about your physical condition. Personally, I would prefer computer gaming because I'm keen on games and other stuff because I like to play games with my friends. That's all for now. Keep in touch. Bye-bye.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_4.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Панова_8021392635", + "transcript": "Rain is an important part of the water cycle which never stops in our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams. Rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_1.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Панова_8021392635", + "transcript": "What is the location of the flower store? Stop delivering. We have special occasion for decorations. Have any potted flowers?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_2.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Панова_8021392635", + "transcript": "In my daily life, I use phone. Also, I usually use TV. Technology people teaching online also they can also create a to live without mobile phone for month that's all because or the net a bit serves in it", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_3.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Панова_8021392635", + "transcript": "I found two photos for our project, the games, people like, and I'd like to tell you about them. Let me describe them for you. On picture shows a girl who is playing on the computer. In the other picture there are mom and there is a woman with a daughter who are playing in the chess. However, these photos have some differences. The key difference is that the first photo depicts the video games, while in the second photo there is intellect board games. These pictures perfectly suit our project because both of them illustrate types of games. I believe that both types of games presented in the pictures are advantages and disadvantages. Talking about the advantages, the best thing about video games is that it's more funny. At the same time, board games are great because they develop your thinking. As for the disadvantages of video games, one of them is that it's more expensive. Also, there is a major drawback with games that can be boring. I would prefer video games because that's all for now. I'll be waiting for your opinion on the photos.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_4.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_1.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "What is the location of your flowers shop? What is the cost of delivery? Do you provide any special occasion decorations for flowers? What potted flowers do you have?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_2.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "Personally, in my daily life, I use phone, notebook and computer. Also, I use headphones and I find it very useful. I think digital technologies make our life easier in so many ways. For example, we can find whatever we want in any time just using the Internet. Personally, I think that the best invention of the kind thing is our headphones. They help to listen to music anytime and not bother anyone with your own music. I know famous Russian inventor Lomonosov. He made a huge impact on the science of the whole world. He invented telescope. Unfortunately, I would say that I would not be able to live without mobile phone for a month. I think that because I need to listen to music everyday and mobile phone gives me an ability to do it.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_3.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "Hey Kate, I've just found two pictures relatable for our project, the games people like, but for some technical issues, I can't send them to you right now. So let me describe them. Both pictures are representing the types of games. One picture shows a girl playing her computer with her headphones on. The other picture shows two women playing chess. The main difference between these pictures is that one picture shows digital type of games and the other picture shows old-fashioned type of games. Both types of games have their advantages. For example, digital games are popular among teenagers and there you can find new friends. As for the old-fashioned games, they make our mind stronger. Meanwhile, both types of games have disadvantages too. For example, digital games can be uncontrolled, especially among children, and you can have an addiction from them. As for the old-fashioned games, for some people they can be boring, especially for children. As for me, I prefer old-fashioned games because they remind me of my childhood. So what do you think about these pictures? Should we take them? Tell me later. Bye-bye.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_4.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waders the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_1.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "Where is your flower shop located? How much does the delivery cost? Do you offer any special occasion decorations? What is the flower pot?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_2.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "I use smartphone and laptop every day. I think that these gadgets are very important for people, because these digital gadgets makes life easier. In my opinion, Internet is the largest source of information. That's why people can find a lot of information very fast and easy. Besides, I think that with smartphone, I think that with smartphone, I think that with smartphone communicate with relatives and friends very easy. I think that the best inventions of mankind is car, because car makes our life much easier. I think that because cars can help people to go in other places very fast and in convenient conditions. I think that Pavel Durov is the famous Russian inventor. Pavel Durov is the founder of Telegram and other messaging platforms. I think that Pavel Durov really makes our life easier, because he is a great man. I think I will not live without smartphone a month. I think that because smartphone is very useful thing for me. I use my smartphone a lot of days, a lot of hours. I use them to chatting with my friends and relatives and to find information. That's why I think that smartphone is very important for me.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_3.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for... Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for our project and I'd like to tell you about them and share my ideas. The first picture depicts a young lady who is playing computer games. The other one depicts two young girls who are playing chess. In my opinion, these photos are perfectly suitable for our project because they show two types of games, namely playing computer games and playing intellectual games. I think that both types of games have their advantages. For example, playing computer games can be more interesting and funnier than other types of games. As for playing intellectual games, I think that these games can improve their cleverness and strategic skills. Speaking of disadvantages, I reckon that playing computer games can be harmful for kids' health. As for playing intellectual games, I think that playing intellectual games can be boring for kids. As for me, I prefer playing computer games because it is more interesting for me and I'd like to play computer games with my friends. That's all for now. I hope you like the photos and my ideas.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_4.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "Rain is an important part of the water cycle, which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the Earth is cold in wind and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures. And the water in the streams, rivers and lakes is home to fresh water fish and other water animals. Secondly, rain provides the water trees and other planets need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_1.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "Where the flower shop is located? How much does cost delivery? Do you provide any special occasion decorations? Do you have potted flowers?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_2.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "I usually use mobile phone for any activity. Also, I often times use computer for making projects or making my homework. I think digital gadgets... It makes easy to search for exact information. Also, it helps us to calculate many things. The best invention is computer. I think computer is the best invention of human. It provided for humanity... Yes, it provided for humanity to... Because it help... I know Mendeleev. He invented a periodic table of chemical elements. I think I wouldn't be able to live a month without a mobile phone. It helps me to communicate with my friends. It helps me to communicate with my friends.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_3.ogg" + }, + { + "region": "2-Республика_Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "Hello John, I have just found two photos from our school project, the games people like, and I'd like to describe them and share my ideas. In the first picture you can see a girl playing a computer game. She's wearing headphones and she looks very confident. In the second picture you can see a daughter playing chess with her mother. They look happy and they enjoy the game. Both pictures depict two different types of games. In the first picture it is computer games, in the second picture it is chess. These types of games have their own advantages. Computer games are usually very interesting to play, and also it helps children to grow their mind. Chess helps people to train their brain, and it is easy to play it in any place where you want. They have their own advantages. For example, computer games can hurt your eyes if you use the computer for a long period of time. Also, you can't take the computer in the park or in the nature. Chess has a drawback too. The rules are hard and difficult to follow.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_4.ogg" + } +] \ No newline at end of file From b263661b9f5f8a05ff23b88ec29e91b5d2b3e0e1 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Thu, 30 Apr 2026 10:33:39 +0300 Subject: [PATCH 10/23] update english criterias, skill --- ege-checker/SKILL.md | 101 +-- ege-checker/recognition.py | 713 ++++++------------ .../references/english-listening-criteria.md | 137 ++-- requirements.txt | 4 +- tests/english-tester.py | 17 +- tests/ocr-accuracy.json | 82 +- transcriptions.json | 50 ++ 7 files changed, 427 insertions(+), 677 deletions(-) create mode 100644 transcriptions.json diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index 2643c19..5456e31 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -19,7 +19,7 @@ description: > | Модуль | Вход — только распознавание | Вход — распознавание + оценка | |--------|----------------------------|-------------------------------| | Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема | -| Аудирование (английский) | Аудиозапись | Аудиозапись + ключи проверяющего | +| Аудирование (английский) | Аудиозапись | Аудиозапись | --- @@ -114,18 +114,14 @@ description: > ### Логика запуска -**Если прислали только аудиозапись (без ключей):** -→ Только распознать ответы ученика через recognition.py и вывести их таблицей. -→ Сообщить: "Ответы распознаны. Чтобы выставить баллы, пришлите правильные ответы (ключи)." - -**Если прислали аудиозапись + ключи проверяющего:** -→ Распознать ответы, затем сверить с ключами и выставить баллы с объяснением ошибок. +**Если прислали аудиозапись:** +→ Распознать ответы ученика через recognition.py и вывести их списком. +→ Сверить полученные ответы по критериям и сообщить баллы. --- -### Режим 1: Только распознавание - **Шаг 1 — Сохранить аудиофайл** + ```python import os, time ext = os.path.splitext(original_filename)[1] or ".mp3" @@ -137,87 +133,30 @@ with open(tmp_path, "wb") as f: **Шаг 2 — Запустить recognition.py** ```bash -python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py --output transcript +python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py ``` **Шаг 3 — Удалить временный файл** + ```python if os.path.exists(tmp_path): os.remove(tmp_path) ``` -**Шаг 4 — Вывести распознанные ответы** -Таблица: задание | распознанный ответ +**Шаг 4 - Загрузить критерии** + +Прочитай `references/english-listening-criteria.md` — критерии 1-4 задания с баллами (ЕГЭ 2026). + +**Шаг 5 — Оценить задания по критериям** + +Для каждого критерия: +- Объясни снятие баллов — что именно не выполнено и почему +- Выставь балл + +**Шаг 6 — Итоговый вывод** + +Список: задание - распознанный ответ - выставленный балл - обьяснение оценки Если есть нераспознанные — явно отметить. -Сообщить: "Ответы распознаны. Пришлите правильные ответы (ключи) для выставления баллов." - ---- - -### Режим 2: Распознавание + оценка - -**Шаги 1–3** — те же, что в режиме 1 (сохранить, запустить, удалить). - -**Шаг 4 — Получить и распознать ключи** -Если ключи текстом — использовать напрямую. -Если ключи фото — распознать через vision. - -**Шаг 5 — Загрузить критерии** -Прочитай `references/english-listening-criteria.md`. - -**Шаг 6 — Передать в LLM для сверки** - -Промпт для модели (подставить реальные значения): -``` -Ты эксперт-проверяющий ЕГЭ по английскому (аудирование, 2026). - -Транскрипт ответов ученика (Whisper): -[TRANSCRIPT] - -Извлечённые ответы ученика: -- Задание 1 (A–F): [TASK1] -- Задания 2–3 (True/False/Not stated): [TASK2_3] -- Задания 4–9 (выбор 1/2/3): [TASK4_9] -- Не распознаны (засчитать как 0): [UNRECOGNIZED] - -Правильные ответы (ключи): -[KEYS] - -Сверь ответы с ключами. 1 балл за совпадение, 0 за несовпадение или отсутствие. -Верни строго JSON без markdown: -{"results":{"task1":{"A":true},"task2_3":{"2":true},"task4_9":{"4":false}}, - "scores":{"task1":0,"task2_3":0,"task4_9":0,"total":0}, - "errors":["Задание 1B: ученик — 5, верный ответ — 1"]} -``` - -**Шаг 7 — Вывести результат** - -``` -## Результаты: Аудирование ЕГЭ (Английский язык, 2026) - -### Задание 1 — Установление соответствия (макс. 6 баллов) -| Высказывание | Ответ ученика | Ключ | Результат | -| A | 3 | 3 | + | -| B | 5 | 1 | - | -... -Баллов: X / 6 - -### Задания 2–3 — True / False / Not stated (макс. 2 балла) -... -Баллов: X / 2 - -### Задания 4–9 — Выбор ответа (макс. 6 баллов) -... -Баллов: X / 6 (или X / подблок) - -### Итого: XX / 12 - -### Ошибки с пояснением: -- Задание 1B: ученик ответил 5, верный ответ 1 -... - -[Если были нераспознанные:] -Задания X, Y не были распознаны в аудио и засчитаны как неверные (0 баллов). -``` --- diff --git a/ege-checker/recognition.py b/ege-checker/recognition.py index 646ca40..e97f4bd 100644 --- a/ege-checker/recognition.py +++ b/ege-checker/recognition.py @@ -1,503 +1,210 @@ -""" -recognition.py — модуль распознавания аудиофайла с ответами ученика ЕГЭ (аудирование, английский язык). - -Зависимости: - pip install faster-whisper - -Использование: - from recognition import transcribe, extract_answers - - # Полный pipeline: аудио -> транскрипт -> структурированные ответы - result = transcribe("student_answers.mp3") - answers = extract_answers(result.text) - print(answers) -""" - -from __future__ import annotations - -import re -import logging -from dataclasses import dataclass, field -from pathlib import Path - -logger = logging.getLogger(__name__) - -# --------------------------------------------------------------------------- -# Константы -# --------------------------------------------------------------------------- - -# Модели faster-whisper по убыванию скорости / возрастанию качества: -# tiny, base, small, medium, large-v2, large-v3 -DEFAULT_MODEL = "medium" - -# Подсказка для Whisper — описывает формат ответов ученика. -# Критически важна для правильного распознавания "one/two/three" как цифр -# и "A equals 3" как ответа на задание 1. -WHISPER_PROMPT = ( - "Student answers to EGE English listening exam. " - "Task one matching: speaker A answer three, speaker B answer one, " - "speaker C answer five, speaker D answer seven, speaker E answer two, speaker F answer four. " - "Tasks two through nine True False Not Stated: " - "task two true, task three false, task four not stated. " - "Tasks ten through eighteen multiple choice one two or three: " - "task ten two, task eleven one, task twelve three." -) - - -# --------------------------------------------------------------------------- -# Структуры данных -# --------------------------------------------------------------------------- - -@dataclass -class TranscriptResult: - """Результат транскрипции аудиофайла.""" - text: str # Полный текст транскрипта - language: str # Определённый язык ("en") - duration_seconds: float # Длительность аудио в секундах - segments: list[dict] = field(default_factory=list) # Детальные сегменты с таймкодами - model_used: str = DEFAULT_MODEL - - -@dataclass -class StudentAnswers: - """Структурированные ответы ученика, извлечённые из транскрипта.""" - - # Задание 1: соответствие A–F → цифра 1–7 - task1: dict[str, str] = field(default_factory=dict) # {"A": "3", "B": "1", ...} - - # Задания 2–9: True(1) / False(2) / Not Stated(3) - task2_9: dict[int, str] = field(default_factory=dict) # {2: "1", 3: "2", ...} - - # Задания 10–18: выбор из вариантов 1/2/3 - task10_18: dict[int, str] = field(default_factory=dict) # {10: "2", 11: "1", ...} - - # Задания, которые не удалось распознать - unrecognized: list[str] = field(default_factory=list) - - def to_dict(self) -> dict: - return { - "task1": self.task1, - "task2_9": {str(k): v for k, v in self.task2_9.items()}, - "task10_18": {str(k): v for k, v in self.task10_18.items()}, - "unrecognized": self.unrecognized, - } - - def summary(self) -> str: - """Читаемое представление для вывода агенту / в лог.""" - lines = ["=== Распознанные ответы ученика ==="] - - if self.task1: - lines.append("\nЗадание 1 (соответствие):") - for letter in "ABCDEF": - ans = self.task1.get(letter, "?") - lines.append(f" {letter} → {ans}") - - if self.task2_9: - lines.append("\nЗадания 2–9 (True/False/Not Stated):") - labels = {"1": "True", "2": "False", "3": "Not Stated"} - for task_num in range(2, 10): - ans = self.task2_9.get(task_num, "?") - label = labels.get(ans, ans) - lines.append(f" Задание {task_num}: {ans} ({label})") - - if self.task10_18: - lines.append("\nЗадания 10–18 (выбор):") - for task_num in range(10, 19): - ans = self.task10_18.get(task_num, "?") - lines.append(f" Задание {task_num}: {ans}") - - if self.unrecognized: - lines.append(f"\nНе распознано: {', '.join(self.unrecognized)}") - - return "\n".join(lines) - - -# --------------------------------------------------------------------------- -# Транскрипция -# --------------------------------------------------------------------------- - -def transcribe( - audio_path: str | Path, - model_size: str = DEFAULT_MODEL, - device: str = "auto", - compute_type: str = "auto", - language: str = "en", - beam_size: int = 5, -) -> TranscriptResult: - """ - Транскрибирует аудиофайл с ответами ученика. - - Args: - audio_path: Путь к аудиофайлу (MP3, WAV, M4A, OGG, WEBM, FLAC). - model_size: Размер модели Whisper: tiny/base/small/medium/large-v2/large-v3. - medium — хороший баланс скорость/качество для ЕГЭ. - large-v3 — максимальное качество, медленнее. - device: "auto" | "cpu" | "cuda". "auto" выберет GPU если доступен. - compute_type: "auto" | "int8" | "float16" | "float32". - "auto" подберёт оптимальный тип для устройства. - language: Язык аудио. "en" для ответов на английском. - beam_size: Ширина луча beam search. 5 — стандарт, выше = точнее но медленнее. - - Returns: - TranscriptResult с текстом, языком, длительностью и сегментами. - - Raises: - FileNotFoundError: Если аудиофайл не найден. - RuntimeError: Если faster-whisper не установлен. - """ - try: - from faster_whisper import WhisperModel - except ImportError: - raise RuntimeError( - "faster-whisper не установлен. Установите: pip install faster-whisper" - ) - - audio_path = Path(audio_path) - if not audio_path.exists(): - raise FileNotFoundError(f"Аудиофайл не найден: {audio_path}") - - # Автовыбор устройства и типа вычислений - resolved_device, resolved_compute = _resolve_device(device, compute_type) - - logger.info( - "Загрузка модели %s на %s (%s)...", - model_size, resolved_device, resolved_compute - ) - - model = WhisperModel( - model_size, - device=resolved_device, - compute_type=resolved_compute, - ) - - logger.info("Транскрибирую: %s", audio_path.name) - - segments_gen, info = model.transcribe( - str(audio_path), - language=language, - beam_size=beam_size, - initial_prompt=WHISPER_PROMPT, - word_timestamps=False, - vad_filter=True, # Фильтрация тишины — полезно для записей с паузами - vad_parameters={ - "min_silence_duration_ms": 500, # Паузы >0.5с считаются тишиной - "speech_pad_ms": 200, - }, - ) - - # Материализуем генератор сегментов - segments = [] - full_text_parts = [] - - for seg in segments_gen: - segments.append({ - "start": round(seg.start, 2), - "end": round(seg.end, 2), - "text": seg.text.strip(), - }) - full_text_parts.append(seg.text.strip()) - - full_text = " ".join(full_text_parts) - - logger.info( - "Транскрипция завершена. Длительность: %.1f сек, слов ~%d", - info.duration, len(full_text.split()) - ) - - return TranscriptResult( - text=full_text, - language=info.language, - duration_seconds=round(info.duration, 1), - segments=segments, - model_used=model_size, - ) - - -def _resolve_device(device: str, compute_type: str) -> tuple[str, str]: - """Определяет оптимальное устройство и тип вычислений.""" - if device != "auto" and compute_type != "auto": - return device, compute_type - - # Проверяем наличие CUDA - try: - from torch import cuda - has_cuda = cuda.is_available() - except ImportError: - has_cuda = False - - if device == "auto": - device = "cuda" if has_cuda else "cpu" - - if compute_type == "auto": - if device == "cuda": - compute_type = "float16" # GPU: float16 быстрее и точнее чем int8 - else: - compute_type = "int8" # CPU: int8 значительно быстрее float32 - - return device, compute_type - - -# --------------------------------------------------------------------------- -# Извлечение ответов из транскрипта -# --------------------------------------------------------------------------- - -def extract_answers(transcript_text: str) -> StudentAnswers: - """ - Извлекает структурированные ответы из текста транскрипта. - - Обрабатывает разные форматы речи ученика: - - "A three", "speaker A answer three", "A equals 3", "A — три" - - "task two true", "number two true", "two — true", "2 true" - - "task ten two", "ten — 2", "question ten answer two" - - Args: - transcript_text: Текст транскрипта от Whisper. - - Returns: - StudentAnswers со структурированными ответами. - """ - answers = StudentAnswers() - text = transcript_text.lower().strip() - - _extract_task1(text, answers) - _extract_task2_9(text, answers) - _extract_task10_18(text, answers) - - logger.debug("Извлечено ответов: task1=%d, task2_9=%d, task10_18=%d, нераспознано=%d", - len(answers.task1), len(answers.task2_9), - len(answers.task10_18), len(answers.unrecognized)) - - return answers - - -def _extract_task1(text: str, answers: StudentAnswers) -> None: - """ - Задание 1: соответствие A–F → цифра 1–7. - Примеры: "A three", "speaker A answer 3", "A equals three", "A — 3" - """ - # Числа словами → цифры - word_to_digit = { - "one": "1", "two": "2", "three": "3", "four": "4", - "five": "5", "six": "6", "seven": "7", - # На случай русских ответов - "один": "1", "два": "2", "три": "3", "четыре": "4", - "пять": "5", "шесть": "6", "семь": "7", - } - - for letter in "abcdef": - # Паттерн: буква, затем необязательный разделитель, затем цифра/слово - pattern = ( - rf"(?:speaker\s+)?{letter}" - rf"(?:\s+(?:answer|equals|is|—|-|:))?" - rf"\s+" - rf"({_digit_or_word_pattern(1, 7)})" - ) - match = re.search(pattern, text) - if match: - raw = match.group(1).strip() - digit = word_to_digit.get(raw, raw) if not raw.isdigit() else raw - if digit in [str(i) for i in range(1, 8)]: - answers.task1[letter.upper()] = digit - else: - answers.unrecognized.append(f"1{letter.upper()}") - else: - answers.unrecognized.append(f"1{letter.upper()}") - - -def _extract_task2_9(text: str, answers: StudentAnswers) -> None: - """ - Задания 2–9: True(1) / False(2) / Not Stated(3). - Примеры: "task two true", "number 3 false", "four not stated", "5 — 2" - """ - tfs_map = { - "true": "1", "1": "1", - "false": "2", "2": "2", - "not stated": "3", "not_stated": "3", "3": "3", - } - - num_words = { - "two": 2, "three": 3, "four": 4, "five": 5, - "six": 6, "seven": 7, "eight": 8, "nine": 9, - "2": 2, "3": 3, "4": 4, "5": 5, - "6": 6, "7": 7, "8": 8, "9": 9, - } - - for word, num in num_words.items(): - pattern = ( - rf"(?:task|number|question|задание)?\s*{re.escape(word)}" - rf"(?:\s+(?:is|answer|—|-|:))?" - rf"\s+" - rf"(true|false|not\s+stated|not_stated|[123])" - ) - match = re.search(pattern, text) - if match: - raw = match.group(1).strip().replace(" ", "_") - digit = tfs_map.get(raw) or tfs_map.get(raw.replace("_", " ")) - if digit: - answers.task2_9[num] = digit - else: - answers.unrecognized.append(str(num)) - else: - answers.unrecognized.append(str(num)) - - -def _extract_task10_18(text: str, answers: StudentAnswers) -> None: - """ - Задания 10–18: выбор из вариантов 1/2/3. - Примеры: "task ten two", "eleven — 1", "question 12 answer three" - """ - word_to_digit_choice = { - "one": "1", "two": "2", "three": "3", - "1": "1", "2": "2", "3": "3", - } - - num_words = { - "ten": 10, "eleven": 11, "twelve": 12, "thirteen": 13, - "fourteen": 14, "fifteen": 15, "sixteen": 16, - "seventeen": 17, "eighteen": 18, - "10": 10, "11": 11, "12": 12, "13": 13, - "14": 14, "15": 15, "16": 16, "17": 17, "18": 18, - } - - for word, num in num_words.items(): - pattern = ( - rf"(?:task|number|question|задание)?\s*{re.escape(word)}" - rf"(?:\s+(?:is|answer|—|-|:))?" - rf"\s+" - rf"({_digit_or_word_pattern(1, 3)})" - ) - match = re.search(pattern, text) - if match: - raw = match.group(1).strip() - digit = word_to_digit_choice.get(raw) - if digit: - answers.task10_18[num] = digit - else: - answers.unrecognized.append(str(num)) - else: - answers.unrecognized.append(str(num)) - - -def _digit_or_word_pattern(min_val: int, max_val: int) -> str: - """Строит regex-паттерн для диапазона цифр и их словесных форм.""" - digits = [str(i) for i in range(min_val, max_val + 1)] - words = { - 1: "one", 2: "two", 3: "three", 4: "four", 5: "five", - 6: "six", 7: "seven", 8: "eight", 9: "nine", 10: "ten", - 11: "eleven", 12: "twelve", 13: "thirteen", 14: "fourteen", - 15: "fifteen", 16: "sixteen", 17: "seventeen", 18: "eighteen", - } - options = digits + [words[i] for i in range(min_val, max_val + 1) if i in words] - return "(" + "|".join(sorted(options, key=len, reverse=True)) + ")" - - -# --------------------------------------------------------------------------- -# Удобный pipeline -# --------------------------------------------------------------------------- - -def process_audio( - audio_path: str | Path, - model_size: str = DEFAULT_MODEL, - device: str = "auto", - verbose: bool = False, -) -> tuple[TranscriptResult, StudentAnswers]: - """ - Полный pipeline: аудиофайл → транскрипт → структурированные ответы. - - Args: - audio_path: Путь к аудиофайлу. - model_size: Размер модели Whisper (medium по умолчанию). - device: "auto" | "cpu" | "cuda". - verbose: Если True — выводить промежуточные результаты в stdout. - - Returns: - Кортеж (TranscriptResult, StudentAnswers). - - Example: - result, answers = process_audio("student.mp3") - print(answers.summary()) - # Передать answers.to_dict() агенту для сверки с ключами - """ - if verbose: - print(f"[1/2] Транскрибирую {Path(audio_path).name} (модель: {model_size})...") - - transcript = transcribe(audio_path, model_size=model_size, device=device) - - if verbose: - print(f" Длительность: {transcript.duration_seconds} сек") - print(f" Транскрипт: {transcript.text[:120]}...") - print("[2/2] Извлекаю ответы...") - - answers = extract_answers(transcript.text) - - if verbose: - print(answers.summary()) - - return transcript, answers - - -# --------------------------------------------------------------------------- -# CLI -# --------------------------------------------------------------------------- - -if __name__ == "__main__": - import argparse - import json - import sys - - logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") - - parser = argparse.ArgumentParser( - description="Распознавание аудиоответов ЕГЭ (аудирование, английский язык)" - ) - parser.add_argument("audio", help="Путь к аудиофайлу") - parser.add_argument( - "--model", default=DEFAULT_MODEL, - choices=["tiny", "base", "small", "medium", "large-v2", "large-v3"], - help=f"Размер модели Whisper (по умолчанию: {DEFAULT_MODEL})" - ) - parser.add_argument( - "--device", default="auto", - choices=["auto", "cpu", "cuda"], - help="Устройство для инференса (по умолчанию: auto)" - ) - parser.add_argument( - "--output", choices=["summary", "json", "transcript"], - default="summary", - help="Формат вывода: summary (читаемый), json (машинный), transcript (сырой текст)" - ) - parser.add_argument( - "--transcript-only", action="store_true", - help="Только транскрипция без извлечения ответов" - ) - - args = parser.parse_args() - - try: - if args.transcript_only or args.output == "transcript": - result = transcribe(args.audio, model_size=args.model, device=args.device) - print(result.text) - else: - result, answers = process_audio( - args.audio, - model_size=args.model, - device=args.device, - verbose=(args.output == "summary"), - ) - - if args.output == "json": - output = { - "transcript": result.text, - "language": result.language, - "duration_seconds": result.duration_seconds, - "model_used": result.model_used, - "answers": answers.to_dict(), - } - print(json.dumps(output, ensure_ascii=False, indent=2)) - elif args.output == "summary": - # verbose=True уже вывел всё в process_audio - pass - - except (FileNotFoundError, RuntimeError) as e: - print(f"Ошибка: {e}", file=sys.stderr) - sys.exit(1) +""" +recognition.py — модуль распознавания аудиофайла с ответами ученика ЕГЭ (аудирование, английский язык). + +Зависимости: + pip install faster-whisper +""" + +from __future__ import annotations + +import re +import logging +from dataclasses import dataclass, field +from pathlib import Path + +logger = logging.getLogger(__name__) + +# --------------------------------------------------------------------------- +# Константы +# --------------------------------------------------------------------------- + +# Модели faster-whisper по убыванию скорости / возрастанию качества: +# tiny, base, small, medium, large-v2, large-v3 +DEFAULT_MODEL = "medium" + +# Подсказка для Whisper — описывает формат ответов ученика. +# Критически важна для правильного распознавания "one/two/three" как цифр +# и "A equals 3" как ответа на задание 1. +WHISPER_PROMPT = ( + "Student answers to EGE English listening exam. " + "Task one matching: speaker A answer three, speaker B answer one, " + "speaker C answer five, speaker D answer seven, speaker E answer two, speaker F answer four. " + "Tasks two through nine True False Not Stated: " + "task two true, task three false, task four not stated. " + "Tasks ten through eighteen multiple choice one two or three: " + "task ten two, task eleven one, task twelve three." +) + + +# --------------------------------------------------------------------------- +# Структуры данных +# --------------------------------------------------------------------------- + +@dataclass +class TranscriptResult: + """Результат транскрипции аудиофайла.""" + text: str # Полный текст транскрипта + language: str # Определённый язык ("en") + duration_seconds: float # Длительность аудио в секундах + segments: list[dict] = field(default_factory=list) # Детальные сегменты с таймкодами + model_used: str = DEFAULT_MODEL + + +# --------------------------------------------------------------------------- +# Транскрипция +# --------------------------------------------------------------------------- + +def transcribe( + audio_path: str | Path, + model_size: str = DEFAULT_MODEL, + device: str = "auto", + compute_type: str = "auto", + language: str = "en", + beam_size: int = 5, +) -> TranscriptResult: + """ + Транскрибирует аудиофайл с ответами ученика. + + Args: + audio_path: Путь к аудиофайлу (MP3, WAV, M4A, OGG, WEBM, FLAC). + model_size: Размер модели Whisper: tiny/base/small/medium/large-v2/large-v3. + medium — хороший баланс скорость/качество для ЕГЭ. + large-v3 — максимальное качество, медленнее. + device: "auto" | "cpu" | "cuda". "auto" выберет GPU если доступен. + compute_type: "auto" | "int8" | "float16" | "float32". + "auto" подберёт оптимальный тип для устройства. + language: Язык аудио. "en" для ответов на английском. + beam_size: Ширина луча beam search. 5 — стандарт, выше = точнее но медленнее. + + Returns: + TranscriptResult с текстом, языком, длительностью и сегментами. + + Raises: + FileNotFoundError: Если аудиофайл не найден. + RuntimeError: Если faster-whisper не установлен. + """ + try: + from faster_whisper import WhisperModel + except ImportError: + raise RuntimeError( + "faster-whisper не установлен. Установите: pip install faster-whisper" + ) + + audio_path = Path(audio_path) + if not audio_path.exists(): + raise FileNotFoundError(f"Аудиофайл не найден: {audio_path}") + + # Автовыбор устройства и типа вычислений + resolved_device, resolved_compute = _resolve_device(device, compute_type) + + logger.info( + "Загрузка модели %s на %s (%s)...", + model_size, resolved_device, resolved_compute + ) + + model = WhisperModel( + model_size, + device=resolved_device, + compute_type=resolved_compute, + ) + + logger.info("Транскрибирую: %s", audio_path.name) + + segments_gen, info = model.transcribe( + str(audio_path), + language=language, + beam_size=beam_size, + initial_prompt=WHISPER_PROMPT, + word_timestamps=False, + vad_filter=True, # Фильтрация тишины — полезно для записей с паузами + vad_parameters={ + "min_silence_duration_ms": 500, # Паузы >0.5с считаются тишиной + "speech_pad_ms": 200, + }, + ) + + # Материализуем генератор сегментов + segments = [] + full_text_parts = [] + + for seg in segments_gen: + segments.append({ + "start": round(seg.start, 2), + "end": round(seg.end, 2), + "text": seg.text.strip(), + }) + full_text_parts.append(seg.text.strip()) + + full_text = " ".join(full_text_parts) + + logger.info( + "Транскрипция завершена. Длительность: %.1f сек, слов ~%d", + info.duration, len(full_text.split()) + ) + + return TranscriptResult( + text=full_text, + language=info.language, + duration_seconds=round(info.duration, 1), + segments=segments, + model_used=model_size, + ) + + +def _resolve_device(device: str, compute_type: str) -> tuple[str, str]: + """Определяет оптимальное устройство и тип вычислений.""" + if device != "auto" and compute_type != "auto": + return device, compute_type + + # Проверяем наличие CUDA + try: + from torch import cuda + has_cuda = cuda.is_available() + except ImportError: + has_cuda = False + + if device == "auto": + device = "cuda" if has_cuda else "cpu" + + if compute_type == "auto": + if device == "cuda": + compute_type = "float16" # GPU: float16 быстрее и точнее чем int8 + else: + compute_type = "int8" # CPU: int8 значительно быстрее float32 + + return device, compute_type + + +# --------------------------------------------------------------------------- +# CLI +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + import argparse + import sys + + logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") + + parser = argparse.ArgumentParser( + description="Распознавание аудиоответов ЕГЭ (аудирование, английский язык)" + ) + parser.add_argument("audio", help="Путь к аудиофайлу") + parser.add_argument( + "--model", default=DEFAULT_MODEL, + choices=["tiny", "base", "small", "medium", "large-v2", "large-v3"], + help=f"Размер модели Whisper (по умолчанию: {DEFAULT_MODEL})" + ) + parser.add_argument( + "--device", default="auto", + choices=["auto", "cpu", "cuda"], + help="Устройство для инференса (по умолчанию: auto)" + ) + + args = parser.parse_args() + + try: + result = transcribe(args.audio, model_size=args.model, device=args.device) + print(result.text) + except (FileNotFoundError, RuntimeError) as e: + print(f"Ошибка: {e}", file=sys.stderr) + sys.exit(1) diff --git a/ege-checker/references/english-listening-criteria.md b/ege-checker/references/english-listening-criteria.md index 91f50b1..e771083 100644 --- a/ege-checker/references/english-listening-criteria.md +++ b/ege-checker/references/english-listening-criteria.md @@ -1,78 +1,125 @@ -# Критерии оценивания раздела "Аудирование" ЕГЭ по английскому языку +# Критерии оценивания раздела "Говорение" ЕГЭ по английскому языку ## Источник: ФИПИ, спецификация ЕГЭ 2026 --- -## Структура раздела "Аудирование" +## Структура раздела "Говорение" -Раздел состоит из 9 заданий (задания 1–9), максимум — 12 первичных баллов. -Каждое задание = 1 балл за верный ответ, 0 за неверный. -Критерии объективные — только совпадение с ключом, никакой субъективной оценки. +4 задания, максимум — 20 первичных баллов. + +| Задание | Тип | Макс. баллов | +|---------|-----|-------------| +| 1 | Чтение вслух | 1 | +| 2 | Диалог-расспрос (вопросы) | 4 | +| 3 | Диалог-интервью (ответы) | 5 | +| 4 | Монологическое высказывание | 10 | +| | **Итого** | **20** | --- -## Задание 1 — Установление соответствия (1 задание, 6 баллов) +## Задание 1 — Чтение вслух (0–1 балл) -Формат: ученик слышит 6 высказываний от 6 говорящих. Нужно установить соответствие -каждого высказывания одному из 7 утверждений (одно утверждение — лишнее). - -Ответ: буква A–F → цифра 1–7. -Оценивание: 1 балл за каждое верное соответствие, максимум 6 баллов. -Пример ответа ученика: A–3, B–1, C–5, D–7, E–2, F–4. +| Балл | Критерий | +|------|----------| +| 1 | Речь воспринимается легко: необоснованные паузы отсутствуют; фразовое ударение и интонационные контуры, произношение слов без нарушений нормы. Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл | +| 0 | Речь воспринимается с трудом из-за большого количества неестественных пауз, запинок, неверной расстановки ударений и ошибок в произношении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл | --- -## Задания 2–3 — Верно / Неверно / В тексте не сказано (2 задания, 2 балла) +## Задание 2 — Диалог-расспрос: вопросы (4 вопроса × 0–1 балл = 4 балла) -Формат: ученик слышит диалог. По 2 утверждения, нужно определить: -- 1 (True) — утверждение соответствует диалогу -- 2 (False) — утверждение противоречит диалогу -- 3 (Not stated) — информация в диалоге не упоминается +Ученик задаёт 4 вопроса по заданной теме. -Оценивание: 1 балл за каждый верный ответ, максимум 2 балла. +| Балл | Критерий | +|------|----------| +| 1 | Вопрос по содержанию отвечает поставленной задаче; имеет правильную грамматическую форму прямого вопроса; возможные фонетические и лексические погрешности не затрудняют восприятия | +| 0 | Вопрос не задан, ИЛИ заданный вопрос по содержанию не отвечает поставленной задаче, И/ИЛИ не имеет правильной грамматической формы прямого вопроса, И/ИЛИ фонетические и лексические ошибки препятствуют коммуникации | --- -## Задания 4–9 — Выбор из трёх вариантов (6 заданий, 6 баллов) +## Задание 3 — Диалог-интервью: ответы (5 ответов × 0–1 балл = 5 баллов) -Формат: ученик слышит 6 монологов/диалогов. К каждому — вопрос с 3 вариантами ответа. -Нужно выбрать верный вариант: 1, 2 или 3. +Ученик отвечает на 5 вопросов интервьюера. -Оценивание: 1 балл за каждый верный ответ, максимум 6 баллов (2 задания по 3 баллов). - -> Примечание по структуре: в разных вариантах ФИПИ количество заданий блоков может -> незначительно варьироваться. Агент должен ориентироваться на фактические ключи -> проверяющего, а не на фиксированную нумерацию выше. +| Балл | Критерий | +|------|----------| +| 1 | Дан полный и точный ответ на запрос информации: 2–3 коммуникативно обусловленные фразы, в которых отсутствуют элементарные лексико-грамматические и/или фонетические ошибки | +| 0 | Ответ на вопрос не дан, ИЛИ содержание ответа не соответствует запросу информации, ИЛИ ответ содержит менее 2 фраз, ИЛИ в ответе имеются элементарные лексико-грамматические и/или фонетические ошибки (в том числе когда ответ носит характер набора слов) | --- -## Итоговая таблица +## Задание 4 — Монологическое высказывание (0–10 баллов по 3 критериям) -| Блок | Задания | Тип | Макс. баллов | -|------|---------|-----|-------------| -| Соответствие | 1 | A–F → 1–7 | 6 | -| True/False/Not stated | 2–3 | 1/2/3 | 2 | -| Выбор ответа | 4–9 | 1/2/3 | 6 (иногда делится на подблоки) | -| | | **Итого** | **12** | +Тематическое монологическое высказывание высокого уровня с элементами описания и рассуждения. + +### Критерий 1: Решение коммуникативной задачи / Содержание (0–4 балла) + +| Балл | Критерий | +|------|----------| +| 4 | Коммуникативная задача выполнена полностью — содержание полно, точно и развёрнуто отражает все аспекты, указанные в задании (12–15 фраз) | +| 3 | Коммуникативная задача выполнена в основном: 1 аспект не раскрыт (остальные раскрыты полно) ИЛИ 1–2 аспекта раскрыты неполно/неточно (12–15 фраз) | +| 2 | Коммуникативная задача выполнена не полностью: 1 аспект не раскрыт и 1 раскрыт неполно/неточно ИЛИ 3 аспекта раскрыты неполно/неточно (10–11 фраз) | +| 1 | Коммуникативная задача выполнена частично: 1 аспект не раскрыт и 2 раскрыты неполно/неточно, ИЛИ 2 аспекта не раскрыты (остальные раскрыты полно), ИЛИ все аспекты раскрыты неполно/неточно (8–9 фраз) | +| 0 | Коммуникативная задача выполнена менее чем на 50%: 3 или более аспекта не раскрыты, ИЛИ 2 аспекта не раскрыты и 1 и более раскрыты неполно/неточно, ИЛИ 1 аспект не раскрыт и остальные раскрыты неполно/неточно, ИЛИ объём высказывания — 7 и менее фраз | + +### Критерий 2: Организация высказывания (0–3 балла) + +| Балл | Критерий | +|------|----------| +| 3 | Высказывание логично; имеет завершённый характер (есть вступительная фраза с обращением к другу И заключительная фраза); средства логической связи используются правильно. Допускается 1 ошибка в логичности/средствах логической связи | +| 2 | Высказывание в основном логично и имеет достаточно завершённый характер (есть вступительная фраза с обращением к другу И заключительная фраза); имеются 2–3 ошибки в логичности/средствах логической связи | +| 1 | Высказывание не имеет завершённого характера: отсутствует вступительная ИЛИ заключительная фраза, И/ИЛИ имеются 4–5 ошибок в логичности/средствах логической связи | +| 0 | Высказывание не имеет завершённого характера: отсутствуют вступительная И заключительная фразы, И/ИЛИ имеются 6 и более ошибок в логичности/средствах логической связи | + +### Критерий 3: Языковое оформление (0–3 балла) + +| Балл | Критерий | +|------|----------| +| 3 | Словарный запас, грамматические структуры, фонетическое оформление соответствуют задаче. Допускается не более 3 негрубых лексико-грамматических ошибок И/ИЛИ не более 3 негрубых фонетических ошибок | +| 2 | Словарный запас, грамматика, фонетика в основном соответствуют задаче. Допускается не более 4–5 лексико-грамматических (из них не более 2 грубых) И/ИЛИ не более 4–5 фонетических ошибок (из них не более 2 грубых) | +| 1 | Языковое оформление частично соответствует задаче. Допускается не более 6–7 лексико-грамматических (из них не более 3 грубых) И/ИЛИ не более 6–7 фонетических ошибок (из них не более 3 грубых) | +| 0 | Понимание высказывания затруднено из-за многочисленных ошибок: 8 и более лексико-грамматических ошибок ИЛИ 4 и более грубых лексико-грамматических ошибок, И/ИЛИ 8 и более фонетических ошибок ИЛИ 4 и более грубых фонетических ошибок, ИЛИ ответ носит характер набора слов | + +### Итоговая таблица задания 4 + +| Критерий | Макс. баллов | +|----------|-------------| +| 1. Решение коммуникативной задачи (содержание) | 4 | +| 2. Организация высказывания | 3 | +| 3. Языковое оформление | 3 | +| **Итого за задание 4** | **10** | --- ## Алгоритм проверки агентом ### Что нужно для оценки -1. Распознанные ответы ученика (из аудиозаписи через recognition.py) -2. Правильные ответы (ключи) от проверяющего +1. Аудиозапись ответа ученика (транскрибируется через recognition.py) +2. Задание (текст для чтения вслух, тема интервью, план монолога и т.д.) -### Логика сверки -- Задание 1: совпадение буква → цифра (A=3 у ученика, A=3 в ключе → 1 балл) -- Задания 2–9: совпадение цифры (ученик: 1, ключ: 1 → 1 балл) -- Нераспознанный ответ ("?") → 0 баллов -- Регистр не важен: "TRUE", "true", "T" — одно и то же -- Для соответствий принимать форматы: "A3", "A-3", "A=3", "A — 3" +### Логика оценки по заданиям + +**Задание 1 (чтение вслух):** +- Считать фонетические ошибки по транскрипту +- Отметить паузы и запинки если есть +- Вынести 0 или 1 балл с обоснованием + +**Задание 2 (вопросы):** +- Оценить каждый из 4 вопросов отдельно (0 или 1) +- Проверить: соответствие теме + грамматическая форма прямого вопроса + понятность + +**Задание 3 (ответы):** +- Оценить каждый из 5 ответов отдельно (0 или 1) +- Проверить: полнота (2–3 фразы) + соответствие вопросу + отсутствие грубых ошибок + +**Задание 4 (монолог):** +- К1: посчитать аспекты из задания, проверить раскрытие каждого + подсчитать фразы +- К2: проверить наличие вступления с обращением, заключения, логических связок +- К3: посчитать лексико-грамматические и фонетические ошибки, разделить на грубые/негрубые ### Формат вывода -Три блока с таблицами: задание | ответ ученика | ключ | результат (+ или -) -Итог по каждому блоку + общий итог из 12. -Список ошибок с пояснением: "Задание 1B: ученик — 5, верный ответ — 1". -Если есть нераспознанные задания — явно указать какие и что они засчитаны как 0. +Для каждого задания: балл + краткое обоснование со ссылкой на критерий. +Итоговая таблица: задание | балл | макс. +Общий итог из 20. +При наличии ошибок — конкретные примеры из транскрипта. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 2ab3ceb..e7ba3e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -faster-whisper==1.2.1 -torch==2.11.0 +faster-whisper==1.2.1 +torch==2.11.0 diff --git a/tests/english-tester.py b/tests/english-tester.py index ce334e2..9f6ad04 100644 --- a/tests/english-tester.py +++ b/tests/english-tester.py @@ -21,7 +21,7 @@ def transcribe_file( text=True, check=True, encoding="utf-8", - timeout=timeout_seconds, # Добавлен таймаут + timeout=timeout_seconds, ) # Предполагаем, что скрипт выводит транскрипцию в stdout transcript = result.stdout.strip() @@ -41,10 +41,10 @@ def transcribe_file( def main(): # Пути base_dir = Path( - r"/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/" + r"/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/" ) - regions = ["1-Республика_Адыгея", "2-Республика_Башкортостан"] - recognizer_script = Path.home() / "zeroclaw-bot" / "recognition.py" + regions = ["1-Республика Адыгея"] + recognizer_script = Path.home() / ".zeroclaw" / "workspace" / "skills" / "ege-checker" / "recognition.py" # Таймаут на транскрипцию одного файла (в секундах) TIMEOUT_PER_FILE = 120 @@ -109,8 +109,15 @@ def main(): # Сохраняем JSON output_file = Path.cwd() / "transcriptions.json" + if Path.exists(output_file): + with open(output_file, "r", encoding="utf-8") as f: + results_to_file: list = json.load(f) + results_to_file.extend(results) + else: + results_to_file = results + with open(output_file, "w", encoding="utf-8") as f: - json.dump(results, f, ensure_ascii=False, indent=2) + json.dump(results_to_file, f, ensure_ascii=False, indent=2) # Статистика total_files = len(results) diff --git a/tests/ocr-accuracy.json b/tests/ocr-accuracy.json index c829568..10fef97 100644 --- a/tests/ocr-accuracy.json +++ b/tests/ocr-accuracy.json @@ -1,42 +1,42 @@ -[ - { - "region": 1, - "surname": "Городничий", - "ocr": "Чем опасны неопределённые люди? Этому посвящён текст К.В.Гурифонова. Автор считает, что неопределённые люди опасны тем, что на первый взгляд они могут казаться для всех приятными и подходящими. Но их настоящий характер может раскрыться в самый неподходящий момент. Посмотрим, как данная мысль раскрывается в тексте. Гурифонов повествует о группе мальчиков, которые решили, должны ли они брать в своё тайное общество Вадю Лебова, по кличке Батон, который как раз и был неопределённым человеком. Автор пишет: «Этот Вадька Батон долгое время занимал меня как личность довольно загадочная. Почему-то многие хотели с ним дружить. Он был какой-то для всех подходящий. И с теми, и с этими, и не злой, и не добрый, и не очень жадный, и не очень умный, и не трусливый, и не сильный, и вроде бы не хитрец, и в то же время не простаки. Мог дружить с Лёвкой и Манькой, хотя Лёвка и Манька друг друга терпеть не могли». Мальчики решили довериться ему и посвятить в своё общество. Этот пример показывает, что к неопределённым людям легко привязаться и довериться им. Далее автор рассказывает о том, что Вадька предал их, когда они ему доверились. «Наконец Батон сказал: такой-то день. Мы пошли часов в пять вечера. Когда подошли к Держинскому подвороть, увидели на втором этаже в окне бледное лицо Батона. Мы прошли весь переулочок, на нас никто не напал... В памяти нет ничего, кроме ощущения досады и странного чувства: будто всё это — для нашего неудовольствия и собственного покоя — подстроил Вадько Батон». Читатель понимает, что неопределённый человек может показать свой настоящий характер в трудной ситуации и предать тех, кто ему доверял. Во втором примере показывается следствие произошедшего в первом. Мальчики доверились Вадьке, а тот их предал, ведь они не могли изначально увидеть понять его настоящий характер. Я согласен с тем, что неопределёнными людьми нельзя доверять, ведь ты не можешь заранее понять настоящий характер такого человека.", - "original": "Чем опасны неопределённые люди? Этой проблеме посвящён текст Ю. В. Трифонова. Автор считает, что неопределённые люди опасны тем, что на первый взгляд они могут казаться для всех приятными и подходящими. Но их настоящий характер может раскрыться в самый неподходящий момент. Рассмотрим, как данная мысль раскрывается в тексте. Трифонов повествует о группе мальчиков, которые решали, должны ли они брать в своё тайное общество Вадьку Глебова, по кличке Батон, который как раз и был неопределённым человеком. Автор пишет: «Этот Вадька Батон долгое время занимал меня как личность немного загадочная. Почему-то многие хотели с ним дружить. Он был какой-то для всех подходящий. И с теми, и с этими, и не злой, и не добрый, и не очень жадный, и не очень уж щедрый, и не трусливый, и не смельчак, и вроде бы не хитрец, и в то же время не простак... Мог дружить с Лёвкой и Манькой, хотя Лёвка и Манька друг друга терпеть не могли». Мальчики решили довериться ему и посвятить в своё общество. Этот пример показывает, что к неопределённым людям легко привязаться и довериться им. Далее автор рассказывает о том, что Вадька предал их, когда они ему доверились: «Наконец Батон сказал: такой-то день. Мы пошли часов в пять вечера. Когда подошли к Держинскому подворью, увидели на втором этаже в окне бледное лицо Батона. Мы прошли весь переулок, на нас никто не напал... В памяти нет ничего, кроме ощущения досады и странного чувства: будто всё это — для нашего неудовольствия и собственного покоя — подстроил Вадька Батон». Читатель понимает, что неопределённый человек может показать свой настоящий характер в трудной ситуации и предать тех, кто ему доверял. Во втором примере показывается следствие произошедшего в первом. Мальчики доверились Вадьке, а тот их предал, ведь они не могли изначально понять его настоящий характер. Я согласен с тем, что неопределённым людям нельзя доверять, ведь ты не можешь заранее понять настоящий характер такого человека.", - "accuracy": 97.8, - "comment": "Модель хорошо справилась с объемом, но есть ошибки в именах собственных («Гурифонов» вместо Трифонов, «Лебова» вместо Глебова) и окончаниях («переулочок» vs переулок)." - }, - { - "region": 1, - "surname": "Долгова", - "ocr": "Чем опасны «неопределённые» люди? Именно этот проблемный вопрос рассматривает Юрий Валентинович Трифонов в предложенном для анализа тексте. Автор считает, что неопределённым людям всегда ведёт. Такие люди умеют подстраиваться под каждого человека, но они опасны тем, что в любой момент могут оказаться предателями. Позиция Трифонова чётко прослеживается в одном из фрагментов текста, где автор пишет о Вадьке Глеbove. Вадька был ярким представителем неопределённых людей. Глебов находил общий язык со всеми. Друг автора создал тайное общество, в которое позвали Вадьку. Мальчик был очень рад такому предложению, но сказал, что в любой момент он сможет выйти из общества. Этим примером автор показывает, как ведёт себя неопределённая личность. Следует обратить внимание на фрагмент в тексте, где автор и его друзья решают дать отпор ребятам, которые били их в переулке. Вадька Глебов жил в том переулке и поддерживал связь с обидчиками. Ребята оповестили Вадьку о том, что пойдут в переулок давать отпор хулиганам. Когда наступил тот самый день, ребята не встретили обидчиков, так как Вадька сделал всё, чтобы они не увиделись. Этим примерол писатель хочет показать, как способен на предательство неопределённый человек. Эти примеры-иллюстрации дополняют друг друга. Первый пример показывает, что неопределённый человек сразу раскрывает свою сущность, а это важно заметить. Второй пример учит тому, что не нужно рассказывать о своих планах неопределённым людям, так как они способны на предательство. ~~Я согласна с позицией Трифонова, действительно~~ Я согласна с позицией Трифонова. Действительно, неопределённые люди очень опасны для общества. Например, в годы войны было много неопределённых людей, которые не могли понять за кого они воюют. Эти люди становились предателями и переходили на сторону зла. В заключение хочется сказать, что неопределённые люди наносят вред обществу и с ними лучше не вступать в контакт.", - "original": "Чем опасны «неопределённые» люди? Именно этот проблемный вопрос рассматривает Юрий Валентинович Трифонов в предложенном для анализа тексте. Автор считает, что неопределённым людям всегда везёт. Такие люди умеют подстраиваться под каждого человека, но они опасны тем, что в любой момент могут оказаться предателями. Позиция Трифонова чётко прослеживается в одном из фрагментов текста, где автор пишет о Вадьке Глебове. Вадька был ярким представителем неопределённых людей. Глебов находил общий язык со всеми. Друг автора создал тайное общество, в которое позвали Вадьку. Мальчик был очень рад такому предложению, но сказал, что в любой момент он сможет выйти из общества. Этим примером автор показывает, как ведёт себя неопределённая личность. Следует обратить внимание на фрагмент в тексте, где автор и его друзья решают дать отпор ребятам, которые побили их в переулке. Вадька Глебов жил в том переулке и поддерживал связь с обидчиками. Ребята оповестили Вадьку о том, что пойдут в переулок давать отпор хулиганам. Когда наступил тот самый день, ребята не встретили обидчиков, так как Вадька сделал всё, чтобы они не увиделись. Этим примером писатель хочет показать, как способен на предательство неопределённый человек. Эти примеры-иллюстрации дополняют друг друга. Первый пример показывает, что неопределённый человек сразу раскрывает свою сущность, а это важно заметить. Второй пример учит тому, что не нужно рассказывать о своих планах неопределённым людям, так как они способны на предательство. Я согласна с позицией Трифонова. Действительно, неопределённые люди очень опасны для общества. Например, в годы войны было много неопределённых людей, которые не могли понять за кого они воюют. Эти люди становились предателями и переходили на сторону зла. В заключение хочется сказать, что неопределённые люди наносят вред обществу и с ними лучше не вступать в контакт.", - "accuracy": 98.5, - "comment": "Очень высокое качество. Основная проблема — неумение обрабатывать зачеркнутый текст: модель распознала его как обычный, добавив лишние слова. Также есть латиница в слове «Глеbove»." - }, - { - "region": 1, - "surname": "Коджесав", - "ocr": "Чем опасны «неопределённые» люди? Над этим нам предлагает задуматься Ю.В. Трифонов. Для того чтобы сформулировать позицию автора по поставленной проблеме и показать, как она раскрыта в тексте, обратимся к предложениям 1-24 и 33-34, где повествуется о том, как герой-рассказчик и его друзья, основав ТОИВ (Тайное общество испытания воли), раздумывают над тем, приглашать ли в него их одноклассника Вадьку Глебова (прозвищем его было «Батон»), который был весьма загадочной личностью. Он сочетал в себе, казалось, все противоположные черты характера, при этом многие хотели с ним дружить. Батон не был очень жадным или щедрым, не добрым и не злым, не хитрым и не добрым. Он также хорошо общался как и с ребятами из Тоив, так и с хулиганами из Аерюгинского переулка, которые с ними враждовали. Мальчишки долго сомневались, но в итоге приняли его в своё общество, ведь, как отмечает сам герой-рассказчик, «люди, умеющие быть никакими, продвигаются далеко», и им всегда везёт. Мы понимаем: «неопределённые» люди, не имеющие чётко сформированных взглядов, приоритетов, так как они позволяют другим проявлять свои истинные намерения, чувства. Они всегда находятся «по-серединке», отчего люди к ним тянуться. Далее герой-рассказчик отмечает, что Вадька обрадовался приглашению, но попроси возможности в любой момент при желании выйти из ТОИВ. Ребята согласились, но позже осознали выгодность этого положения: зная об их тайне, он не был полностью с ними. Каждый раз, когда друзья планировали пойти в Аерюгинский переулк дать отпор хулиганам, Батон говорил, что день неподходящий, но они могут пойти и без него. Арузья сомневались и переживали, что он всё расскажет задирам, и план не реализуется. Однако в один день они пошли туда, но местные забияки, отчего мальчишкам на душе было досадно. У героя-рассказчика в воспоминаниях об этом случае только чувство разочарование, ощущение того, что Вадька для собственного благополучия и для их неудовольствия подстроил это. Мы видим: «неопределённые» люди не способны поддерживать доверительные отношения с другими, поскольку их жизненная позиция неточна, именно поэтому с ними сложно строить совместные цели, так как нет доверия к тому, кто никогда не придерживается чего-то одного в своих поступках. Приведённые примеры связаны уступительными отношениями и позволяют нам в полной мере осознать: несмотря на то, что «неопределённые» люди располагают к себе своей гибкостью и умением подстроиться под окружение, близкое общение построить с ними крайне трудно, ведь они не относят себя ни к какой нравственной категории, отчего их действия могут казаться сомнительными и вносящими в отношения недопонимание. Позиция Трифонова ясна: «никакие» люди хоть и достигают успехов и далеко продвигаются, доверять им сложно, особенно в вопросах моральных решений. Они могут способствовать внутренней неудовлетворённости в своём выборе человека в силу своей непостоянности и неопределённости. Я полностью согласен: «неопределённые» люди опасны своей непредсказуемостью, неуверенностью в собственных действиях. Они часто зависят от тех, кто их окружает. Говоря об этом, я вспоминаю своего бывшего друга Алексея, с которым мы познакомились в школе. Однажды я решил летом поговорить со своими друзьями о разногласиях", - "original": "Чем опасны «неопределённые» люди? Над этим нам предлагает задуматься Ю. В. Трифонов. Для того чтобы сформулировать позицию автора по поставленной проблеме и показать, как она раскрыта в тексте, обратимся к предложениям 1-24 и 33-37, где повествуется о том, как герой-рассказчик и его друзья, организовав ТОИВ (Тайное общество испытания воли), раздумывают над тем, приглашать ли в него их одноклассника Вадьку Глебова (прозвищем его было „Батон”), который был весьма загадочной личностью. Он сочетал в себе, казалось, все противоположные черты характера, притом многие хотели с ним дружить. Батон не был очень жадным или щедрым, не добрым и не злым, не хитрым и не добрым. Он также хорошо общался как и с ребятами из Тоив, так и с хулиганами из Дерюгинского переулка, которые с ними враждовали. Мальчишки долго сомневались, но в итоге приняли его в своё общество, ведь, как отмечает сам герой-рассказчик, «люди, умеющие быть никакими, продвигаются далеко», и им всегда везёт. Мы понимаем: «неопределённые» люди, не имеющие четко сформированных взглядов, приоритетов, так как они позволяют другим проявлять свои истинные намерения, чувства. Они всегда находятся «по-середине», отчего люди к ним тянуться. Далее герой-рассказчик отмечает, что Вадька обрадовался приглашению, но попросил возможности в любой момент при желании выйти из ТОИВ. Ребята согласились, но позже осознали выгодность этого положения: зная об их тайне, он не был полностью с ними. Каждый раз, когда друзья планировали пойти в Дерюгинский переулок дать отпор хулиганам, Батон говорил, что день неподходящий, но они могут пойти и без него. Друзья сомневались и переживали, что он всё расскажет задирам, и план не реализуется. Однако в один день они пошли туда, но местные забияки, отчего мальчишкам на душе было досадно. У героя-рассказчика в воспоминаниях об этом случае только чувство разочарования, ощущение того, что Вадька для собственного благополучия и для их неудовольствия подстроил это. Мы видим: «неопределённые» люди не способны поддерживать доверительные отношения с другими, поскольку их жизненная позиция неточна, именно поэтому с ними сложно строить совместные цели, так как нет доверия к тому, кто никогда не придерживается чего-то одного в своих поступках. Приведённые примеры связаны уступительными отношениями и позволяют нам в полной мере осознать: несмотря на то, что «неопределённые» люди располагают к себе своей гибкостью и умением подстроиться под окружение, близкое общение построить с ними крайне трудно, ведь они не относят себя ни к какой нравственной категории, отчего их действия могут казаться сомнительными и вносящими в отношения недопонимание. Позиция Трифонова ясна: «никакие» люди хоть и достигают успехов и далеко продвигаются, доверять им сложно, особенно в вопросах моральных решений. Они могут способствовать внутренней неудовлетворённости в своём выборе человека в силу своей непостоянности и неопределённости. Я полностью согласен: «неопределённые» люди опасны своей непредсказуемостью, неуверенностью в собственных действиях. Они часто зависят от тех, кто их окружает. Говоря об этом, я вспоминаю своего бывшего друга Алексея, с которым мы познакомились в школе. Однажды я решил летом поговорить со своими друзьями о разногласиях.", - "accuracy": 96.2, - "comment": "Средний результат. Много опечаток в сложных словах («Аерюгинского» вместо Дерюгинского) и пропуски слов (например, потерян глагол «были» перед «местные забияки»)." - }, - { - "region": 2, - "surname": "Абдрахманова", - "ocr": "Должны ли друзья поддерживать друг друга в учёбе и труде? Должны ли друзья поддерживать друг друга в учёбе и труде? Об этом в своём тексте пишет советская детская писательница Эсфирь Михайловна Энден. Автор считает, что друзья вас всегда поймут и помогут. В тексте говорится о двух друзьях. Лёня учился в детской музыкальной школе, играл на скрипке. Коля никогда не слушал, обзывал друга, поэтому Лёня бросил занятия музыкой. Однако в день выступления Коля чувствовал вину за всё, что произошло раньше, волновался за Лёню, был готов ему помочь, спрятал скрипку друга под пальто, чтобы уберечь её от дождя. Эти два примера дополняют друг друга и показывают, что нужно беречь дружбу. Я согласна с мнением автора, потому что, действительно, дружба - это самое важное, что может быть в жизни человека. Ярким примером произведения, в котором также говорится о дружбе, является роман Федора Достоевского, «Преступление и наказание». В произведении рассказывается о хороших взаимоотношениях Раскольникова и Разумихина. В то время, как Раскольников лежал на кровати и болел, Разумихин ухаживал за другом, помогал ему, поддерживал. Таким образом, хочу сказать, что в жизни каждого человека должен быть друг, который готов протянуть руку помощи в любой жизненной ситуации.", - "original": "Должны ли друзья поддерживать друг друга в учёбе и труде? Должны ли друзья поддерживать друг друга в учёбе и труде? Об этом в своём тексте пишет советская детская писательница Эсфирь Михайловна Эмден. Автор считает, что друзья вас всегда поймут и помогут. В тексте говорится о двух друзьях. Лёня учился в детской музыкальной школе, играл на скрипке. Коля никогда не слушал, обзывал друга, поэтому Лёня бросал занятия музыкой. Однако в день выступления Коля чувствовал вину за всё, что произошло раньше, волновался за Лёню, был готов ему помочь, спрятал скрипку друга под пальто, чтобы уберечь её от дождя. Эти два примера дополняют друг друга и показывают, что нужно беречь дружбу. Я согласна с мнением автора, потому что, действительно, дружба — это самое важное, что может быть в жизни человека. Ярким примером произведения, в котором также говорится о дружбе, является роман Федора Достоевского П«реступление и наказание». В произведении рассказывается о хороших взаимоотношениях Раскольникова и Разумихина. В то время, как Раскольников лежал на кровати и болел, Разумихин ухаживал за другом, помогал ему, поддерживал. Таким образом, хочу сказать, что в жизни каждого человека должен быть друг, который готов протянуть руку помощи в любой жизненной ситуации.", - "accuracy": 99.1, - "comment": "Почти идеальное распознавание. Единственная существенная ошибка в фамилии автора («Энден» вместо Эмден) и мелкая пунктуация (тире)." - }, - { - "region": 2, - "surname": "Александрова", - "ocr": "27. Должны ли друзья поддерживать друг друга в учёбе и труде? Именно эта проблема находится в центре внимания автора текста Эсфири Мильхайловны Эгиден. Автор считает, что друзья должны поддерживать друг друга в учёбе и труде. Ведь именно в этом проявляется настоящая дружба. Их поддержка помогает преодолеть возникшие трудности. Приведу примеры из текста, аргументирующие авторскую позицию. В тексте говорится о мальчике Коле, который пришёл посмотреть выступление своего друга Лёмы. Коля искренне переживал за друга, когда тот сбился в момент выступления. И после концерта, когда Лёмин учитель подошёл к Коле и спросил, как ему игра его друга, он решительно ответил, что Лёма играл хорошо. На этом примере мы видим, как важна поддержка друзей. Благодаря ей человек не отступит от своего дела и будет продолжать трудиться, несмотря на сложности. Также Коля, как настоящий друг, прояви заботу к Лене. После разговора с учителем они вышли на улицу и увидели, что идёт сильный дождь. Коля спрятал под своё пальто скрипку Лёми, чтобы она не намочила. Таким образом, мы видим, что друзья должны помогать друг другу чем могут, ведь именно в этом проявляется настоящая дружба. в труде и обучении, ведь в этом проявляется истинная дружба. Эти примеры, дополняющие друг друга, показывают, что друзья должны поддерживать друг друга в учёбе и труде. Я согласна с мнением автора. Действительно, друзья должны оказывать поддержку друг другу в труде и учёбе. Так, в романе Артура Конан Дойля «Этюд в багровых тонах» у главного героя Шерлока Холмса есть лучший друг, который помогает ему в расследовании, благодаря чему Шерлок успешно раскрывает преступление. Таким образом, мы видим, что дружеская поддержка очень важна, благодаря ей человек приходит к успеху в своем деле. В заключении хочу сказать, что каждому человеку стоит поддерживать своих друзей в учебе и труде.", - "original": "Должны ли друзья поддерживать друг друга в учебе и труде? Именно эта проблема находится в центре внимания автора текста Эсфирь Михайловны Эмден. Автор считает, что друзья должны поддерживать друг друга в учёбе и труде. Ведь именно в этом проявляется настоящая дружба. Дружеская поддержка помогает преодолеть возникшие трудности. Приведу примеры из текста, аргументирующие авторскую позицию. В тексте говорится о мальчике Коле, который пришёл посмотреть выступление своего друга Лёни. Коля искренне переживал за друга, когда тот сбился в момент выступления. И после концерта, когда Лёнин учитель подошёл к Коле и спросил, как ему игра его друга, он решительно ответил, что Лёня играл хорошо. На этом примере мы видим, как важна поддержка друзей. Благодаря ей человек не отступит от своего дела и будет продолжать трудиться, несмотря на сложности. Также Коля, как настоящий друг, проявил заботу к Лене. После разговора с учителем они вышли на улицу и увидели, что идёт сильный дождь. Коля спрятал под своё пальто скрипку Лёни, чтобы она не намокла. Таким образом, мы видим, что друзья должны помогать друг другу чем могут, в труде и обучении, ведь в этом проявляется истинная дружба. Эти примеры, дополняющие друг друга, показывают, что друзья должны поддерживать друг друга в учёбе и труде. Я согласна с мнением автора. Действительно, друзья должны оказывать поддержку друг другу в труде и учёбе. Так, в романе Артура Конан Дойля «Этюд в багровых тонах» у главного героя Шерлока Холмса есть лучший друг, который помогает ему в расследовании, благодаря чему Шерлок успешно раскрывает преступление. Таким образом, мы видим, что дружеская поддержка очень важна, благодаря ей человек приходит к успеху в своем деле. В заключении хочу сказать, что каждому человеку стоит поддерживать своих друзей в учебе и труде.", - "accuracy": 97.5, - "comment": "Модель ошиблась в фамилии автора («Эгиден» вместо Эмден) и имени героя («Лёма» вместо Лёня). Есть пропуски окончаний (например, «намочила» вместо намокла)." - } +[ + { + "region": 1, + "surname": "Городничий", + "ocr": "Чем опасны неопределённые люди? Этому посвящён текст К.В.Гурифонова. Автор считает, что неопределённые люди опасны тем, что на первый взгляд они могут казаться для всех приятными и подходящими. Но их настоящий характер может раскрыться в самый неподходящий момент. Посмотрим, как данная мысль раскрывается в тексте. Гурифонов повествует о группе мальчиков, которые решили, должны ли они брать в своё тайное общество Вадю Лебова, по кличке Батон, который как раз и был неопределённым человеком. Автор пишет: «Этот Вадька Батон долгое время занимал меня как личность довольно загадочная. Почему-то многие хотели с ним дружить. Он был какой-то для всех подходящий. И с теми, и с этими, и не злой, и не добрый, и не очень жадный, и не очень умный, и не трусливый, и не сильный, и вроде бы не хитрец, и в то же время не простаки. Мог дружить с Лёвкой и Манькой, хотя Лёвка и Манька друг друга терпеть не могли». Мальчики решили довериться ему и посвятить в своё общество. Этот пример показывает, что к неопределённым людям легко привязаться и довериться им. Далее автор рассказывает о том, что Вадька предал их, когда они ему доверились. «Наконец Батон сказал: такой-то день. Мы пошли часов в пять вечера. Когда подошли к Держинскому подвороть, увидели на втором этаже в окне бледное лицо Батона. Мы прошли весь переулочок, на нас никто не напал... В памяти нет ничего, кроме ощущения досады и странного чувства: будто всё это — для нашего неудовольствия и собственного покоя — подстроил Вадько Батон». Читатель понимает, что неопределённый человек может показать свой настоящий характер в трудной ситуации и предать тех, кто ему доверял. Во втором примере показывается следствие произошедшего в первом. Мальчики доверились Вадьке, а тот их предал, ведь они не могли изначально увидеть понять его настоящий характер. Я согласен с тем, что неопределёнными людьми нельзя доверять, ведь ты не можешь заранее понять настоящий характер такого человека.", + "original": "Чем опасны неопределённые люди? Этой проблеме посвящён текст Ю. В. Трифонова. Автор считает, что неопределённые люди опасны тем, что на первый взгляд они могут казаться для всех приятными и подходящими. Но их настоящий характер может раскрыться в самый неподходящий момент. Рассмотрим, как данная мысль раскрывается в тексте. Трифонов повествует о группе мальчиков, которые решали, должны ли они брать в своё тайное общество Вадьку Глебова, по кличке Батон, который как раз и был неопределённым человеком. Автор пишет: «Этот Вадька Батон долгое время занимал меня как личность немного загадочная. Почему-то многие хотели с ним дружить. Он был какой-то для всех подходящий. И с теми, и с этими, и не злой, и не добрый, и не очень жадный, и не очень уж щедрый, и не трусливый, и не смельчак, и вроде бы не хитрец, и в то же время не простак... Мог дружить с Лёвкой и Манькой, хотя Лёвка и Манька друг друга терпеть не могли». Мальчики решили довериться ему и посвятить в своё общество. Этот пример показывает, что к неопределённым людям легко привязаться и довериться им. Далее автор рассказывает о том, что Вадька предал их, когда они ему доверились: «Наконец Батон сказал: такой-то день. Мы пошли часов в пять вечера. Когда подошли к Держинскому подворью, увидели на втором этаже в окне бледное лицо Батона. Мы прошли весь переулок, на нас никто не напал... В памяти нет ничего, кроме ощущения досады и странного чувства: будто всё это — для нашего неудовольствия и собственного покоя — подстроил Вадька Батон». Читатель понимает, что неопределённый человек может показать свой настоящий характер в трудной ситуации и предать тех, кто ему доверял. Во втором примере показывается следствие произошедшего в первом. Мальчики доверились Вадьке, а тот их предал, ведь они не могли изначально понять его настоящий характер. Я согласен с тем, что неопределённым людям нельзя доверять, ведь ты не можешь заранее понять настоящий характер такого человека.", + "accuracy": 97.8, + "comment": "Модель хорошо справилась с объемом, но есть ошибки в именах собственных («Гурифонов» вместо Трифонов, «Лебова» вместо Глебова) и окончаниях («переулочок» vs переулок)." + }, + { + "region": 1, + "surname": "Долгова", + "ocr": "Чем опасны «неопределённые» люди? Именно этот проблемный вопрос рассматривает Юрий Валентинович Трифонов в предложенном для анализа тексте. Автор считает, что неопределённым людям всегда ведёт. Такие люди умеют подстраиваться под каждого человека, но они опасны тем, что в любой момент могут оказаться предателями. Позиция Трифонова чётко прослеживается в одном из фрагментов текста, где автор пишет о Вадьке Глеbove. Вадька был ярким представителем неопределённых людей. Глебов находил общий язык со всеми. Друг автора создал тайное общество, в которое позвали Вадьку. Мальчик был очень рад такому предложению, но сказал, что в любой момент он сможет выйти из общества. Этим примером автор показывает, как ведёт себя неопределённая личность. Следует обратить внимание на фрагмент в тексте, где автор и его друзья решают дать отпор ребятам, которые били их в переулке. Вадька Глебов жил в том переулке и поддерживал связь с обидчиками. Ребята оповестили Вадьку о том, что пойдут в переулок давать отпор хулиганам. Когда наступил тот самый день, ребята не встретили обидчиков, так как Вадька сделал всё, чтобы они не увиделись. Этим примерол писатель хочет показать, как способен на предательство неопределённый человек. Эти примеры-иллюстрации дополняют друг друга. Первый пример показывает, что неопределённый человек сразу раскрывает свою сущность, а это важно заметить. Второй пример учит тому, что не нужно рассказывать о своих планах неопределённым людям, так как они способны на предательство. ~~Я согласна с позицией Трифонова, действительно~~ Я согласна с позицией Трифонова. Действительно, неопределённые люди очень опасны для общества. Например, в годы войны было много неопределённых людей, которые не могли понять за кого они воюют. Эти люди становились предателями и переходили на сторону зла. В заключение хочется сказать, что неопределённые люди наносят вред обществу и с ними лучше не вступать в контакт.", + "original": "Чем опасны «неопределённые» люди? Именно этот проблемный вопрос рассматривает Юрий Валентинович Трифонов в предложенном для анализа тексте. Автор считает, что неопределённым людям всегда везёт. Такие люди умеют подстраиваться под каждого человека, но они опасны тем, что в любой момент могут оказаться предателями. Позиция Трифонова чётко прослеживается в одном из фрагментов текста, где автор пишет о Вадьке Глебове. Вадька был ярким представителем неопределённых людей. Глебов находил общий язык со всеми. Друг автора создал тайное общество, в которое позвали Вадьку. Мальчик был очень рад такому предложению, но сказал, что в любой момент он сможет выйти из общества. Этим примером автор показывает, как ведёт себя неопределённая личность. Следует обратить внимание на фрагмент в тексте, где автор и его друзья решают дать отпор ребятам, которые побили их в переулке. Вадька Глебов жил в том переулке и поддерживал связь с обидчиками. Ребята оповестили Вадьку о том, что пойдут в переулок давать отпор хулиганам. Когда наступил тот самый день, ребята не встретили обидчиков, так как Вадька сделал всё, чтобы они не увиделись. Этим примером писатель хочет показать, как способен на предательство неопределённый человек. Эти примеры-иллюстрации дополняют друг друга. Первый пример показывает, что неопределённый человек сразу раскрывает свою сущность, а это важно заметить. Второй пример учит тому, что не нужно рассказывать о своих планах неопределённым людям, так как они способны на предательство. Я согласна с позицией Трифонова. Действительно, неопределённые люди очень опасны для общества. Например, в годы войны было много неопределённых людей, которые не могли понять за кого они воюют. Эти люди становились предателями и переходили на сторону зла. В заключение хочется сказать, что неопределённые люди наносят вред обществу и с ними лучше не вступать в контакт.", + "accuracy": 98.5, + "comment": "Очень высокое качество. Основная проблема — неумение обрабатывать зачеркнутый текст: модель распознала его как обычный, добавив лишние слова. Также есть латиница в слове «Глеbove»." + }, + { + "region": 1, + "surname": "Коджесав", + "ocr": "Чем опасны «неопределённые» люди? Над этим нам предлагает задуматься Ю.В. Трифонов. Для того чтобы сформулировать позицию автора по поставленной проблеме и показать, как она раскрыта в тексте, обратимся к предложениям 1-24 и 33-34, где повествуется о том, как герой-рассказчик и его друзья, основав ТОИВ (Тайное общество испытания воли), раздумывают над тем, приглашать ли в него их одноклассника Вадьку Глебова (прозвищем его было «Батон»), который был весьма загадочной личностью. Он сочетал в себе, казалось, все противоположные черты характера, при этом многие хотели с ним дружить. Батон не был очень жадным или щедрым, не добрым и не злым, не хитрым и не добрым. Он также хорошо общался как и с ребятами из Тоив, так и с хулиганами из Аерюгинского переулка, которые с ними враждовали. Мальчишки долго сомневались, но в итоге приняли его в своё общество, ведь, как отмечает сам герой-рассказчик, «люди, умеющие быть никакими, продвигаются далеко», и им всегда везёт. Мы понимаем: «неопределённые» люди, не имеющие чётко сформированных взглядов, приоритетов, так как они позволяют другим проявлять свои истинные намерения, чувства. Они всегда находятся «по-серединке», отчего люди к ним тянуться. Далее герой-рассказчик отмечает, что Вадька обрадовался приглашению, но попроси возможности в любой момент при желании выйти из ТОИВ. Ребята согласились, но позже осознали выгодность этого положения: зная об их тайне, он не был полностью с ними. Каждый раз, когда друзья планировали пойти в Аерюгинский переулк дать отпор хулиганам, Батон говорил, что день неподходящий, но они могут пойти и без него. Арузья сомневались и переживали, что он всё расскажет задирам, и план не реализуется. Однако в один день они пошли туда, но местные забияки, отчего мальчишкам на душе было досадно. У героя-рассказчика в воспоминаниях об этом случае только чувство разочарование, ощущение того, что Вадька для собственного благополучия и для их неудовольствия подстроил это. Мы видим: «неопределённые» люди не способны поддерживать доверительные отношения с другими, поскольку их жизненная позиция неточна, именно поэтому с ними сложно строить совместные цели, так как нет доверия к тому, кто никогда не придерживается чего-то одного в своих поступках. Приведённые примеры связаны уступительными отношениями и позволяют нам в полной мере осознать: несмотря на то, что «неопределённые» люди располагают к себе своей гибкостью и умением подстроиться под окружение, близкое общение построить с ними крайне трудно, ведь они не относят себя ни к какой нравственной категории, отчего их действия могут казаться сомнительными и вносящими в отношения недопонимание. Позиция Трифонова ясна: «никакие» люди хоть и достигают успехов и далеко продвигаются, доверять им сложно, особенно в вопросах моральных решений. Они могут способствовать внутренней неудовлетворённости в своём выборе человека в силу своей непостоянности и неопределённости. Я полностью согласен: «неопределённые» люди опасны своей непредсказуемостью, неуверенностью в собственных действиях. Они часто зависят от тех, кто их окружает. Говоря об этом, я вспоминаю своего бывшего друга Алексея, с которым мы познакомились в школе. Однажды я решил летом поговорить со своими друзьями о разногласиях", + "original": "Чем опасны «неопределённые» люди? Над этим нам предлагает задуматься Ю. В. Трифонов. Для того чтобы сформулировать позицию автора по поставленной проблеме и показать, как она раскрыта в тексте, обратимся к предложениям 1-24 и 33-37, где повествуется о том, как герой-рассказчик и его друзья, организовав ТОИВ (Тайное общество испытания воли), раздумывают над тем, приглашать ли в него их одноклассника Вадьку Глебова (прозвищем его было „Батон”), который был весьма загадочной личностью. Он сочетал в себе, казалось, все противоположные черты характера, притом многие хотели с ним дружить. Батон не был очень жадным или щедрым, не добрым и не злым, не хитрым и не добрым. Он также хорошо общался как и с ребятами из Тоив, так и с хулиганами из Дерюгинского переулка, которые с ними враждовали. Мальчишки долго сомневались, но в итоге приняли его в своё общество, ведь, как отмечает сам герой-рассказчик, «люди, умеющие быть никакими, продвигаются далеко», и им всегда везёт. Мы понимаем: «неопределённые» люди, не имеющие четко сформированных взглядов, приоритетов, так как они позволяют другим проявлять свои истинные намерения, чувства. Они всегда находятся «по-середине», отчего люди к ним тянуться. Далее герой-рассказчик отмечает, что Вадька обрадовался приглашению, но попросил возможности в любой момент при желании выйти из ТОИВ. Ребята согласились, но позже осознали выгодность этого положения: зная об их тайне, он не был полностью с ними. Каждый раз, когда друзья планировали пойти в Дерюгинский переулок дать отпор хулиганам, Батон говорил, что день неподходящий, но они могут пойти и без него. Друзья сомневались и переживали, что он всё расскажет задирам, и план не реализуется. Однако в один день они пошли туда, но местные забияки, отчего мальчишкам на душе было досадно. У героя-рассказчика в воспоминаниях об этом случае только чувство разочарования, ощущение того, что Вадька для собственного благополучия и для их неудовольствия подстроил это. Мы видим: «неопределённые» люди не способны поддерживать доверительные отношения с другими, поскольку их жизненная позиция неточна, именно поэтому с ними сложно строить совместные цели, так как нет доверия к тому, кто никогда не придерживается чего-то одного в своих поступках. Приведённые примеры связаны уступительными отношениями и позволяют нам в полной мере осознать: несмотря на то, что «неопределённые» люди располагают к себе своей гибкостью и умением подстроиться под окружение, близкое общение построить с ними крайне трудно, ведь они не относят себя ни к какой нравственной категории, отчего их действия могут казаться сомнительными и вносящими в отношения недопонимание. Позиция Трифонова ясна: «никакие» люди хоть и достигают успехов и далеко продвигаются, доверять им сложно, особенно в вопросах моральных решений. Они могут способствовать внутренней неудовлетворённости в своём выборе человека в силу своей непостоянности и неопределённости. Я полностью согласен: «неопределённые» люди опасны своей непредсказуемостью, неуверенностью в собственных действиях. Они часто зависят от тех, кто их окружает. Говоря об этом, я вспоминаю своего бывшего друга Алексея, с которым мы познакомились в школе. Однажды я решил летом поговорить со своими друзьями о разногласиях.", + "accuracy": 96.2, + "comment": "Средний результат. Много опечаток в сложных словах («Аерюгинского» вместо Дерюгинского) и пропуски слов (например, потерян глагол «были» перед «местные забияки»)." + }, + { + "region": 2, + "surname": "Абдрахманова", + "ocr": "Должны ли друзья поддерживать друг друга в учёбе и труде? Должны ли друзья поддерживать друг друга в учёбе и труде? Об этом в своём тексте пишет советская детская писательница Эсфирь Михайловна Энден. Автор считает, что друзья вас всегда поймут и помогут. В тексте говорится о двух друзьях. Лёня учился в детской музыкальной школе, играл на скрипке. Коля никогда не слушал, обзывал друга, поэтому Лёня бросил занятия музыкой. Однако в день выступления Коля чувствовал вину за всё, что произошло раньше, волновался за Лёню, был готов ему помочь, спрятал скрипку друга под пальто, чтобы уберечь её от дождя. Эти два примера дополняют друг друга и показывают, что нужно беречь дружбу. Я согласна с мнением автора, потому что, действительно, дружба - это самое важное, что может быть в жизни человека. Ярким примером произведения, в котором также говорится о дружбе, является роман Федора Достоевского, «Преступление и наказание». В произведении рассказывается о хороших взаимоотношениях Раскольникова и Разумихина. В то время, как Раскольников лежал на кровати и болел, Разумихин ухаживал за другом, помогал ему, поддерживал. Таким образом, хочу сказать, что в жизни каждого человека должен быть друг, который готов протянуть руку помощи в любой жизненной ситуации.", + "original": "Должны ли друзья поддерживать друг друга в учёбе и труде? Должны ли друзья поддерживать друг друга в учёбе и труде? Об этом в своём тексте пишет советская детская писательница Эсфирь Михайловна Эмден. Автор считает, что друзья вас всегда поймут и помогут. В тексте говорится о двух друзьях. Лёня учился в детской музыкальной школе, играл на скрипке. Коля никогда не слушал, обзывал друга, поэтому Лёня бросал занятия музыкой. Однако в день выступления Коля чувствовал вину за всё, что произошло раньше, волновался за Лёню, был готов ему помочь, спрятал скрипку друга под пальто, чтобы уберечь её от дождя. Эти два примера дополняют друг друга и показывают, что нужно беречь дружбу. Я согласна с мнением автора, потому что, действительно, дружба — это самое важное, что может быть в жизни человека. Ярким примером произведения, в котором также говорится о дружбе, является роман Федора Достоевского П«реступление и наказание». В произведении рассказывается о хороших взаимоотношениях Раскольникова и Разумихина. В то время, как Раскольников лежал на кровати и болел, Разумихин ухаживал за другом, помогал ему, поддерживал. Таким образом, хочу сказать, что в жизни каждого человека должен быть друг, который готов протянуть руку помощи в любой жизненной ситуации.", + "accuracy": 99.1, + "comment": "Почти идеальное распознавание. Единственная существенная ошибка в фамилии автора («Энден» вместо Эмден) и мелкая пунктуация (тире)." + }, + { + "region": 2, + "surname": "Александрова", + "ocr": "27. Должны ли друзья поддерживать друг друга в учёбе и труде? Именно эта проблема находится в центре внимания автора текста Эсфири Мильхайловны Эгиден. Автор считает, что друзья должны поддерживать друг друга в учёбе и труде. Ведь именно в этом проявляется настоящая дружба. Их поддержка помогает преодолеть возникшие трудности. Приведу примеры из текста, аргументирующие авторскую позицию. В тексте говорится о мальчике Коле, который пришёл посмотреть выступление своего друга Лёмы. Коля искренне переживал за друга, когда тот сбился в момент выступления. И после концерта, когда Лёмин учитель подошёл к Коле и спросил, как ему игра его друга, он решительно ответил, что Лёма играл хорошо. На этом примере мы видим, как важна поддержка друзей. Благодаря ей человек не отступит от своего дела и будет продолжать трудиться, несмотря на сложности. Также Коля, как настоящий друг, прояви заботу к Лене. После разговора с учителем они вышли на улицу и увидели, что идёт сильный дождь. Коля спрятал под своё пальто скрипку Лёми, чтобы она не намочила. Таким образом, мы видим, что друзья должны помогать друг другу чем могут, ведь именно в этом проявляется настоящая дружба. в труде и обучении, ведь в этом проявляется истинная дружба. Эти примеры, дополняющие друг друга, показывают, что друзья должны поддерживать друг друга в учёбе и труде. Я согласна с мнением автора. Действительно, друзья должны оказывать поддержку друг другу в труде и учёбе. Так, в романе Артура Конан Дойля «Этюд в багровых тонах» у главного героя Шерлока Холмса есть лучший друг, который помогает ему в расследовании, благодаря чему Шерлок успешно раскрывает преступление. Таким образом, мы видим, что дружеская поддержка очень важна, благодаря ей человек приходит к успеху в своем деле. В заключении хочу сказать, что каждому человеку стоит поддерживать своих друзей в учебе и труде.", + "original": "Должны ли друзья поддерживать друг друга в учебе и труде? Именно эта проблема находится в центре внимания автора текста Эсфирь Михайловны Эмден. Автор считает, что друзья должны поддерживать друг друга в учёбе и труде. Ведь именно в этом проявляется настоящая дружба. Дружеская поддержка помогает преодолеть возникшие трудности. Приведу примеры из текста, аргументирующие авторскую позицию. В тексте говорится о мальчике Коле, который пришёл посмотреть выступление своего друга Лёни. Коля искренне переживал за друга, когда тот сбился в момент выступления. И после концерта, когда Лёнин учитель подошёл к Коле и спросил, как ему игра его друга, он решительно ответил, что Лёня играл хорошо. На этом примере мы видим, как важна поддержка друзей. Благодаря ей человек не отступит от своего дела и будет продолжать трудиться, несмотря на сложности. Также Коля, как настоящий друг, проявил заботу к Лене. После разговора с учителем они вышли на улицу и увидели, что идёт сильный дождь. Коля спрятал под своё пальто скрипку Лёни, чтобы она не намокла. Таким образом, мы видим, что друзья должны помогать друг другу чем могут, в труде и обучении, ведь в этом проявляется истинная дружба. Эти примеры, дополняющие друг друга, показывают, что друзья должны поддерживать друг друга в учёбе и труде. Я согласна с мнением автора. Действительно, друзья должны оказывать поддержку друг другу в труде и учёбе. Так, в романе Артура Конан Дойля «Этюд в багровых тонах» у главного героя Шерлока Холмса есть лучший друг, который помогает ему в расследовании, благодаря чему Шерлок успешно раскрывает преступление. Таким образом, мы видим, что дружеская поддержка очень важна, благодаря ей человек приходит к успеху в своем деле. В заключении хочу сказать, что каждому человеку стоит поддерживать своих друзей в учебе и труде.", + "accuracy": 97.5, + "comment": "Модель ошиблась в фамилии автора («Эгиден» вместо Эмден) и имени героя («Лёма» вместо Лёня). Есть пропуски окончаний (например, «намочила» вместо намокла)." + } ] \ No newline at end of file diff --git a/transcriptions.json b/transcriptions.json new file mode 100644 index 0000000..cef2d1c --- /dev/null +++ b/transcriptions.json @@ -0,0 +1,50 @@ +[ + { + "region": "1-Республика Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "It usually snows more in countries that are in the North. For instance, Japan, Russia or some parts of the USA may have hard snowfalls. Mountains are also the places which have a lot of snow. This is especially true for such countries as China. At the same time, there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come here. It's not every place in the world has snowfalls. People from hard countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it's wonderful to have a lot of snow, but it's not always the case. A heavy snowfall can paralyze the life of a city or a country. If snows is rare in a certain location, people there are not used to it and find it hard to commute or even go outside.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_1.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "How much variety of jobs do you have? What is the minimum age for a part-time job? What is required number of hours per week? What is the pay per hour?", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_2.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "Usually I spend my weekend with my family and my friends. We are going to the parks or rivers and lakes or forests to walk with them. If it is among my friends, it's walking in the parks and going to the stadium. I think it's really interesting spending free time for my coming weekend. Me, my brother and our friends will go to the river and go to swim then. When the weekend is over, I feel sad because my weekend is really funny and I feel happy when I have a weekend. I would like to spend more time outside with my friends.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_3.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Кузьминова_7921829566", + "transcript": "Hi there! I have found two photos for our school project on doing homework. I'd like to tell you about them. In the first picture one can see a girl. She is doing homework. There are a girl with her mom that is doing homework together in the second picture. Talking about the differences, the key difference is in the first picture girl doing homework alone, while in the second picture girl doing homework with her parents. I think these photos are perfect for our project because they illustrate different kinds of doing homework. I believe that the two types of doing homework have their advantages and disadvantages. As for the advantages, doing homework alone can help you for better concentration. What about doing homework with somebody you can't do it. We'll discuss about the disadvantages. As for doing homework alone, I can say that these disadvantages are the risk of getting worth your attention and doing incorrect answers. One downside of doing homework together is that you can have a fear of taking incorrect answers. Overall, any kind of doing homework is beneficial for our education. I'd prefer doing homework alone because that way I have a lot of concentration of my job. That's all I wanted to tell you. Bye!", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_4.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "It usually snows more in countries that are in the north. For instance Japan, Russia or some parts of the USA may have large snowfalls. Mountains are also the place which have a lot of snow. It is especially true for such countries as China. At the same time there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come there. It is not every place in the world has snowfalls. People from hot countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it is wonderful to have a lot of snow, but it is not always the case. Heavy snow can paralyze the life of a city or a country. If snow is rare in a certain location, people are not used to it and find it hard to commute or even go outside.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_1.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "What variety of jobs you have to start there, working, pay as much as you pay per hour.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_2.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "I usually spend my weekend with my friends. We usually go to the cinema or play computer games. It's sport. I like to do some exercise in the gym. My plans at the weekend is go to trip to the mountain. We have planned this with my friends. I feel so bad because when it's over, I feel so bad. But sometimes I feel good because I can go to the school. I like to change my daily routine. I want to do more homework. It's important for me.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_3.ogg" + }, + { + "region": "1-Республика Адыгея", + "fio": "Штельмах_7924913136", + "transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.", + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_4.ogg" + } +] \ No newline at end of file From a782c7e20dcd2380e4dfe9d4a429b7db64381df6 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Sun, 3 May 2026 17:16:38 +0300 Subject: [PATCH 11/23] fix whisper prompt --- ege-checker/recognition.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/ege-checker/recognition.py b/ege-checker/recognition.py index e97f4bd..ec9d882 100644 --- a/ege-checker/recognition.py +++ b/ege-checker/recognition.py @@ -23,16 +23,12 @@ logger = logging.getLogger(__name__) DEFAULT_MODEL = "medium" # Подсказка для Whisper — описывает формат ответов ученика. -# Критически важна для правильного распознавания "one/two/three" как цифр -# и "A equals 3" как ответа на задание 1. WHISPER_PROMPT = ( - "Student answers to EGE English listening exam. " - "Task one matching: speaker A answer three, speaker B answer one, " - "speaker C answer five, speaker D answer seven, speaker E answer two, speaker F answer four. " - "Tasks two through nine True False Not Stated: " - "task two true, task three false, task four not stated. " - "Tasks ten through eighteen multiple choice one two or three: " - "task ten two, task eleven one, task twelve three." + "Student answers to EGE English speaking exam. " + "Task one: read aloud. " + "Task two: ask five direct questions. " + "Task three: describe a photo. " + "Task four: compare two photos." ) From 3b245ed81844f1aab1f03e22e66a7cdd7328ff4b Mon Sep 17 00:00:00 2001 From: shuler7 Date: Sun, 3 May 2026 17:17:25 +0300 Subject: [PATCH 12/23] add check requirements --- ege-checker/references/english-listening-criteria.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ege-checker/references/english-listening-criteria.md b/ege-checker/references/english-listening-criteria.md index e771083..8c4188e 100644 --- a/ege-checker/references/english-listening-criteria.md +++ b/ege-checker/references/english-listening-criteria.md @@ -95,7 +95,7 @@ ### Что нужно для оценки 1. Аудиозапись ответа ученика (транскрибируется через recognition.py) -2. Задание (текст для чтения вслух, тема интервью, план монолога и т.д.) +2. Задание (текст - 1 задание, 4 ключевых фразы - 2 задание, 5 вопросов интервьювера - 3 задание, 2 фотографии и план монолога - 4 задание) ### Логика оценки по заданиям From cdb8ed46ffdf04c152633197424bbe73ec3ce76d Mon Sep 17 00:00:00 2001 From: shuler7 Date: Sun, 3 May 2026 17:18:03 +0300 Subject: [PATCH 13/23] add 2 modes for english - transcription / transcription + checking --- ege-checker/SKILL.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index 5456e31..da42570 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -19,7 +19,7 @@ description: > | Модуль | Вход — только распознавание | Вход — распознавание + оценка | |--------|----------------------------|-------------------------------| | Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема | -| Аудирование (английский) | Аудиозапись | Аудиозапись | +| Аудирование (английский) | Аудиозапись | Аудиозапись + задания (текст, ключевые фразы, вопросы, план, фотографии) | --- @@ -114,9 +114,15 @@ description: > ### Логика запуска -**Если прислали аудиозапись:** +**Если прислали только аудиозапись:** → Распознать ответы ученика через recognition.py и вывести их списком. -→ Сверить полученные ответы по критериям и сообщить баллы. + +**Если прислали аудиозапись и задания:** +→ Распознать ответы ученика через recognition.py и вывести их списком. +→ Сверить полученные ответы для конкретных заданий по критериям и сообщить баллы. + +**Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально** +**Если прислали не все задания - проверь то, что прислали, и ничего больше** --- From 76de04fcaeb2b918bf54c000b4ba294afec71c49 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 10:58:38 +0300 Subject: [PATCH 14/23] update english speaking skill pipeline --- ege-checker/SKILL.md | 42 ++++++------------- ege-checker/recognition.py | 10 ++--- ...iteria.md => english-speaking-criteria.md} | 15 ++++--- 3 files changed, 24 insertions(+), 43 deletions(-) rename ege-checker/references/{english-listening-criteria.md => english-speaking-criteria.md} (87%) diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index da42570..7ac9615 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -5,10 +5,10 @@ description: > Используй этот скилл когда пользователь: - Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку - Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу - - Загружает аудиозапись ответов по разделу "Аудирование" ЕГЭ по английскому - - Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "аудирование английский" + - Загружает аудиозапись ответов по разделу "Говорение" ЕГЭ по английскому + - Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "говорение английский" - Просит разобрать ошибки в сочинении по критериям ФИПИ - Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через recognition.py, + Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через faster-whisper, оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.). --- @@ -19,7 +19,7 @@ description: > | Модуль | Вход — только распознавание | Вход — распознавание + оценка | |--------|----------------------------|-------------------------------| | Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема | -| Аудирование (английский) | Аудиозапись | Аудиозапись + задания (текст, ключевые фразы, вопросы, план, фотографии) | +| Говорение (английский) | Аудиозапись | Аудиозапись + задания (текст, ключевые фразы, вопросы, план, фотографии) | --- @@ -110,56 +110,38 @@ description: > --- -## Модуль 2: Аудирование ЕГЭ по английскому +## Модуль 2: Говорение ЕГЭ по английскому ### Логика запуска **Если прислали только аудиозапись:** -→ Распознать ответы ученика через recognition.py и вывести их списком. +→ Прослушай аудиозапись и выведи транскрипт **Если прислали аудиозапись и задания:** -→ Распознать ответы ученика через recognition.py и вывести их списком. -→ Сверить полученные ответы для конкретных заданий по критериям и сообщить баллы. +→ Прослушай аудиозапись и проверь ответ ученика по критериям **Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально** **Если прислали не все задания - проверь то, что прислали, и ничего больше** --- -**Шаг 1 — Сохранить аудиофайл** - -```python -import os, time -ext = os.path.splitext(original_filename)[1] or ".mp3" -tmp_path = f"/tmp/ege_audio_{int(time.time())}{ext}" -with open(tmp_path, "wb") as f: - f.write(audio_bytes) -``` - -**Шаг 2 — Запустить recognition.py** +**Шаг 1 — Запустить recognition.py** ```bash python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py ``` -**Шаг 3 — Удалить временный файл** +**Шаг 2 - Загрузить критерии** -```python -if os.path.exists(tmp_path): - os.remove(tmp_path) -``` +Прочитай `references/english-speaking-criteria.md` — критерии 1-4 задания с баллами (ЕГЭ 2026). -**Шаг 4 - Загрузить критерии** - -Прочитай `references/english-listening-criteria.md` — критерии 1-4 задания с баллами (ЕГЭ 2026). - -**Шаг 5 — Оценить задания по критериям** +**Шаг 3 — Оценить задания по критериям** Для каждого критерия: - Объясни снятие баллов — что именно не выполнено и почему - Выставь балл -**Шаг 6 — Итоговый вывод** +**Шаг 4 — Итоговый вывод** Список: задание - распознанный ответ - выставленный балл - обьяснение оценки Если есть нераспознанные — явно отметить. diff --git a/ege-checker/recognition.py b/ege-checker/recognition.py index ec9d882..5a3e2d3 100644 --- a/ege-checker/recognition.py +++ b/ege-checker/recognition.py @@ -1,5 +1,5 @@ """ -recognition.py — модуль распознавания аудиофайла с ответами ученика ЕГЭ (аудирование, английский язык). +recognition.py — модуль распознавания аудиофайла с ответами ученика ЕГЭ (говорение, английский язык). Зависимости: pip install faster-whisper @@ -26,9 +26,9 @@ DEFAULT_MODEL = "medium" WHISPER_PROMPT = ( "Student answers to EGE English speaking exam. " "Task one: read aloud. " - "Task two: ask five direct questions. " - "Task three: describe a photo. " - "Task four: compare two photos." + "Task two: ask four direct questions. " + "Task three: answer five questions. " + "Task four: monologue - compare two photos. " ) @@ -182,7 +182,7 @@ if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") parser = argparse.ArgumentParser( - description="Распознавание аудиоответов ЕГЭ (аудирование, английский язык)" + description="Распознавание аудиоответов ЕГЭ (говорение, английский язык)" ) parser.add_argument("audio", help="Путь к аудиофайлу") parser.add_argument( diff --git a/ege-checker/references/english-listening-criteria.md b/ege-checker/references/english-speaking-criteria.md similarity index 87% rename from ege-checker/references/english-listening-criteria.md rename to ege-checker/references/english-speaking-criteria.md index 8c4188e..7c2de3a 100644 --- a/ege-checker/references/english-listening-criteria.md +++ b/ege-checker/references/english-speaking-criteria.md @@ -9,7 +9,7 @@ | Задание | Тип | Макс. баллов | |---------|-----|-------------| -| 1 | Чтение вслух | 1 | +| 1 | Чтение текста | 1 | | 2 | Диалог-расспрос (вопросы) | 4 | | 3 | Диалог-интервью (ответы) | 5 | | 4 | Монологическое высказывание | 10 | @@ -17,12 +17,12 @@ --- -## Задание 1 — Чтение вслух (0–1 балл) +## Задание 1 — Чтение текста (0–1 балл) | Балл | Критерий | |------|----------| -| 1 | Речь воспринимается легко: необоснованные паузы отсутствуют; фразовое ударение и интонационные контуры, произношение слов без нарушений нормы. Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл | -| 0 | Речь воспринимается с трудом из-за большого количества неестественных пауз, запинок, неверной расстановки ударений и ошибок в произношении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл | +| 1 | Слова употреблены без ошибок. Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл | +| 0 | Есть ошибки в употреблении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл | --- @@ -94,14 +94,13 @@ ## Алгоритм проверки агентом ### Что нужно для оценки -1. Аудиозапись ответа ученика (транскрибируется через recognition.py) -2. Задание (текст - 1 задание, 4 ключевых фразы - 2 задание, 5 вопросов интервьювера - 3 задание, 2 фотографии и план монолога - 4 задание) +1. Аудиозапись ответа ученика +2. Задание (текст для 1 задания, 4 ключевых фразы для 2 задания, 5 вопросов интервьювера для 3 задания, 2 фотографии и план монолога для 4 задания) ### Логика оценки по заданиям **Задание 1 (чтение вслух):** -- Считать фонетические ошибки по транскрипту -- Отметить паузы и запинки если есть +- Проверить правильность транскрипта и отсутствие фонетических, грамматических ошибок - Вынести 0 или 1 балл с обоснованием **Задание 2 (вопросы):** From 2d6eea8671866710798dba60c9cb366fe069a541 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 10:58:52 +0300 Subject: [PATCH 15/23] update transcriptions --- tests/transcriptions.json | 176 ++++---------------------------------- transcriptions.json | 50 ----------- 2 files changed, 16 insertions(+), 210 deletions(-) delete mode 100644 transcriptions.json diff --git a/tests/transcriptions.json b/tests/transcriptions.json index c31fcc4..cef2d1c 100644 --- a/tests/transcriptions.json +++ b/tests/transcriptions.json @@ -1,194 +1,50 @@ [ { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "It usually snows more in countries that are in the North. For instance, Japan, Russia or some parts of the USA may have hard snowfalls. Mountains are also the places which have a lot of snow. This is especially true for such countries as China. At the same time, there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come here. It's not every place in the world has snowfalls. People from hard countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it's wonderful to have a lot of snow, but it's not always the case. A heavy snowfall can paralyze the life of a city or a country. If snows is rare in a certain location, people there are not used to it and find it hard to commute or even go outside.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_1.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_1.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "How much variety of jobs do you have? What is the minimum age for a part-time job? What is required number of hours per week? What is the pay per hour?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_2.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_2.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "Usually I spend my weekend with my family and my friends. We are going to the parks or rivers and lakes or forests to walk with them. If it is among my friends, it's walking in the parks and going to the stadium. I think it's really interesting spending free time for my coming weekend. Me, my brother and our friends will go to the river and go to swim then. When the weekend is over, I feel sad because my weekend is really funny and I feel happy when I have a weekend. I would like to spend more time outside with my friends.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_3.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_3.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "Hi there! I have found two photos for our school project on doing homework. I'd like to tell you about them. In the first picture one can see a girl. She is doing homework. There are a girl with her mom that is doing homework together in the second picture. Talking about the differences, the key difference is in the first picture girl doing homework alone, while in the second picture girl doing homework with her parents. I think these photos are perfect for our project because they illustrate different kinds of doing homework. I believe that the two types of doing homework have their advantages and disadvantages. As for the advantages, doing homework alone can help you for better concentration. What about doing homework with somebody you can't do it. We'll discuss about the disadvantages. As for doing homework alone, I can say that these disadvantages are the risk of getting worth your attention and doing incorrect answers. One downside of doing homework together is that you can have a fear of taking incorrect answers. Overall, any kind of doing homework is beneficial for our education. I'd prefer doing homework alone because that way I have a lot of concentration of my job. That's all I wanted to tell you. Bye!", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Кузьминова_7921829566/audio_497920_4.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_4.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "It usually snows more in countries that are in the north. For instance Japan, Russia or some parts of the USA may have large snowfalls. Mountains are also the place which have a lot of snow. It is especially true for such countries as China. At the same time there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come there. It is not every place in the world has snowfalls. People from hot countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it is wonderful to have a lot of snow, but it is not always the case. Heavy snow can paralyze the life of a city or a country. If snow is rare in a certain location, people are not used to it and find it hard to commute or even go outside.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_1.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_1.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "What variety of jobs you have to start there, working, pay as much as you pay per hour.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_2.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_2.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "I usually spend my weekend with my friends. We usually go to the cinema or play computer games. It's sport. I like to do some exercise in the gym. My plans at the weekend is go to trip to the mountain. We have planned this with my friends. I feel so bad because when it's over, I feel so bad. But sometimes I feel good because I can go to the school. I like to change my daily routine. I want to do more homework. It's important for me.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_3.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_3.ogg" }, { - "region": "1-Республика_Адыгея", + "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/1-Республика_Адыгея/Штельмах_7924913136/audio_497976_4.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Авсахова_8020280717", - "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It retains as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes, and oceans. The water in the oceans is home to millions of sea creatures, and the water in the sea streams, rivers, and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rain water. It makes the air fresh and clean.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_1.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Авсахова_8020280717", - "transcript": "Where is location? What cost of delivery? Where special location decorations? Where is the potted flowers?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_2.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Авсахова_8020280717", - "transcript": "In my daily life, I use my mobile phone and television because I chat with my friends and call my mom. The digital technology that makes my life easier is my telephone because I chat with my friends, no more information. The best features on MedKindness is television. In my opinion, the famous Russian list is Mikhail Vasilyevich Lomonosov, the Russian scientist who knows a scientist like math and he is so curious. I think I don't see my life without my mobile phone because it keeps more information for me and I chat with my friends and call my mom. It improves my life and I don't see the life without it.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_3.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Авсахова_8020280717", - "transcript": "Hi Kate, I have an hour project for you in two pictures we have seen. In the first pictures we see girls who play the computer games and she liked it because the computer game have a brain side and improve your brain explanation. In the second photo we have seen girls and their mom who play the computer games and she liked it because they have a big chest. In disadvantages, however, I can say advantages or disadvantages. In advantages, first picture, we can see that girl playing and improve your skills in computer game. In two pictures we have seen the brain-heart game, but disadvantages our pictures. In the first pictures, girls save more time for that and in the second pictures, she will be angry about that your game is disappointed. In two disadvantages, what the most time kills because she said them. I prefer picture number one because the girl plays the computer game and she likes to play the computer game. In the second pictures, girls save more time for that and in the third pictures, girls save more time for that and she will be angry about that your game is disappointed. I love computer game and what about them. I wait your opinion.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Авсахова_8020280717/audio_704902_4.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Иркабаев_8021293748", - "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_1.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Иркабаев_8021293748", - "transcript": "Where is your flower shop located? What is the cost of delivery? Are there any special occasion decorations? Are potted flowers available?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_2.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Иркабаев_8021293748", - "transcript": "In my daily life I usually use such gadgets as smartphone, TV and personal computer. Modern technologies makes our life easier in that way that you don't need to go to the library to read some necessary information. It's more convenient now to go shopping or surfing the net than before. Well, I think the best invention of mankind is Internet because it allows us to do basically everything. You basically can't imagine our everyday life without Internet, without the Internet. Well, there is famous Russian inventor of a radio. His name is Popov. He invented radio before anyone else, as far as I know. Well, I think I could live without smartphone for a month because it's not that hard to avoid all these benefits that smartphone brings. But I have to admit it would be quite difficult.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_3.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Иркабаев_8021293748", - "transcript": "Hi John, how are you? I've just found two pictures that are suitable for our school project. They're games people like. Let me quickly describe them. One of the pictures shows a girl playing computer games. The other picture shows a mother with her daughter playing chess. The main difference between these two photos is that it's two different types of games. As for the advantages of playing computer games, I would like to say that it develops quick reaction. Also, it develops your social skills because you have to communicate with your teammates in the game. As for the advantages of checkmates, I would like to say that it develops your logical thinking. Moreover, it allows you to analyze, it teaches you to analyze situation and make right decisions very fast. As for disadvantages, however, there are also disadvantages. Computer gaming actually makes your eyesight, makes your mental health worse. Also, it's bad for your eyesight. Checkmates also has some withdrawals, such as badly influence your physical condition. Your posture can get worse and you feel worse about your physical condition. Personally, I would prefer computer gaming because I'm keen on games and other stuff because I like to play games with my friends. That's all for now. Keep in touch. Bye-bye.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Иркабаев_8021293748/audio_704486_4.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Панова_8021392635", - "transcript": "Rain is an important part of the water cycle which never stops in our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams. Rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_1.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Панова_8021392635", - "transcript": "What is the location of the flower store? Stop delivering. We have special occasion for decorations. Have any potted flowers?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_2.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Панова_8021392635", - "transcript": "In my daily life, I use phone. Also, I usually use TV. Technology people teaching online also they can also create a to live without mobile phone for month that's all because or the net a bit serves in it", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_3.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Панова_8021392635", - "transcript": "I found two photos for our project, the games, people like, and I'd like to tell you about them. Let me describe them for you. On picture shows a girl who is playing on the computer. In the other picture there are mom and there is a woman with a daughter who are playing in the chess. However, these photos have some differences. The key difference is that the first photo depicts the video games, while in the second photo there is intellect board games. These pictures perfectly suit our project because both of them illustrate types of games. I believe that both types of games presented in the pictures are advantages and disadvantages. Talking about the advantages, the best thing about video games is that it's more funny. At the same time, board games are great because they develop your thinking. As for the disadvantages of video games, one of them is that it's more expensive. Also, there is a major drawback with games that can be boring. I would prefer video games because that's all for now. I'll be waiting for your opinion on the photos.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Панова_8021392635/audio_705315_4.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Пешкова_8021424674", - "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_1.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Пешкова_8021424674", - "transcript": "What is the location of your flowers shop? What is the cost of delivery? Do you provide any special occasion decorations for flowers? What potted flowers do you have?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_2.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Пешкова_8021424674", - "transcript": "Personally, in my daily life, I use phone, notebook and computer. Also, I use headphones and I find it very useful. I think digital technologies make our life easier in so many ways. For example, we can find whatever we want in any time just using the Internet. Personally, I think that the best invention of the kind thing is our headphones. They help to listen to music anytime and not bother anyone with your own music. I know famous Russian inventor Lomonosov. He made a huge impact on the science of the whole world. He invented telescope. Unfortunately, I would say that I would not be able to live without mobile phone for a month. I think that because I need to listen to music everyday and mobile phone gives me an ability to do it.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_3.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Пешкова_8021424674", - "transcript": "Hey Kate, I've just found two pictures relatable for our project, the games people like, but for some technical issues, I can't send them to you right now. So let me describe them. Both pictures are representing the types of games. One picture shows a girl playing her computer with her headphones on. The other picture shows two women playing chess. The main difference between these pictures is that one picture shows digital type of games and the other picture shows old-fashioned type of games. Both types of games have their advantages. For example, digital games are popular among teenagers and there you can find new friends. As for the old-fashioned games, they make our mind stronger. Meanwhile, both types of games have disadvantages too. For example, digital games can be uncontrolled, especially among children, and you can have an addiction from them. As for the old-fashioned games, for some people they can be boring, especially for children. As for me, I prefer old-fashioned games because they remind me of my childhood. So what do you think about these pictures? Should we take them? Tell me later. Bye-bye.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Пешкова_8021424674/audio_704956_4.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Шафикова_8020277747", - "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waders the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_1.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Шафикова_8020277747", - "transcript": "Where is your flower shop located? How much does the delivery cost? Do you offer any special occasion decorations? What is the flower pot?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_2.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Шафикова_8020277747", - "transcript": "I use smartphone and laptop every day. I think that these gadgets are very important for people, because these digital gadgets makes life easier. In my opinion, Internet is the largest source of information. That's why people can find a lot of information very fast and easy. Besides, I think that with smartphone, I think that with smartphone, I think that with smartphone communicate with relatives and friends very easy. I think that the best inventions of mankind is car, because car makes our life much easier. I think that because cars can help people to go in other places very fast and in convenient conditions. I think that Pavel Durov is the famous Russian inventor. Pavel Durov is the founder of Telegram and other messaging platforms. I think that Pavel Durov really makes our life easier, because he is a great man. I think I will not live without smartphone a month. I think that because smartphone is very useful thing for me. I use my smartphone a lot of days, a lot of hours. I use them to chatting with my friends and relatives and to find information. That's why I think that smartphone is very important for me.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_3.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Шафикова_8020277747", - "transcript": "Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for... Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for our project and I'd like to tell you about them and share my ideas. The first picture depicts a young lady who is playing computer games. The other one depicts two young girls who are playing chess. In my opinion, these photos are perfectly suitable for our project because they show two types of games, namely playing computer games and playing intellectual games. I think that both types of games have their advantages. For example, playing computer games can be more interesting and funnier than other types of games. As for playing intellectual games, I think that these games can improve their cleverness and strategic skills. Speaking of disadvantages, I reckon that playing computer games can be harmful for kids' health. As for playing intellectual games, I think that playing intellectual games can be boring for kids. As for me, I prefer playing computer games because it is more interesting for me and I'd like to play computer games with my friends. That's all for now. I hope you like the photos and my ideas.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Шафикова_8020277747/audio_704661_4.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Яппаров_8020266903", - "transcript": "Rain is an important part of the water cycle, which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the Earth is cold in wind and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures. And the water in the streams, rivers and lakes is home to fresh water fish and other water animals. Secondly, rain provides the water trees and other planets need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_1.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Яппаров_8020266903", - "transcript": "Where the flower shop is located? How much does cost delivery? Do you provide any special occasion decorations? Do you have potted flowers?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_2.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Яппаров_8020266903", - "transcript": "I usually use mobile phone for any activity. Also, I often times use computer for making projects or making my homework. I think digital gadgets... It makes easy to search for exact information. Also, it helps us to calculate many things. The best invention is computer. I think computer is the best invention of human. It provided for humanity... Yes, it provided for humanity to... Because it help... I know Mendeleev. He invented a periodic table of chemical elements. I think I wouldn't be able to live a month without a mobile phone. It helps me to communicate with my friends. It helps me to communicate with my friends.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_3.ogg" - }, - { - "region": "2-Республика_Башкортостан", - "fio": "Яппаров_8020266903", - "transcript": "Hello John, I have just found two photos from our school project, the games people like, and I'd like to describe them and share my ideas. In the first picture you can see a girl playing a computer game. She's wearing headphones and she looks very confident. In the second picture you can see a daughter playing chess with her mother. They look happy and they enjoy the game. Both pictures depict two different types of games. In the first picture it is computer games, in the second picture it is chess. These types of games have their own advantages. Computer games are usually very interesting to play, and also it helps children to grow their mind. Chess helps people to train their brain, and it is easy to play it in any place where you want. They have their own advantages. For example, computer games can hurt your eyes if you use the computer for a long period of time. Also, you can't take the computer in the park or in the nature. Chess has a drawback too. The rules are hard and difficult to follow.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский_язык_УЧ_часть_1/2-Республика_Башкортостан/Яппаров_8020266903/audio_705376_4.ogg" + "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_4.ogg" } ] \ No newline at end of file diff --git a/transcriptions.json b/transcriptions.json deleted file mode 100644 index cef2d1c..0000000 --- a/transcriptions.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "region": "1-Республика Адыгея", - "fio": "Кузьминова_7921829566", - "transcript": "It usually snows more in countries that are in the North. For instance, Japan, Russia or some parts of the USA may have hard snowfalls. Mountains are also the places which have a lot of snow. This is especially true for such countries as China. At the same time, there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come here. It's not every place in the world has snowfalls. People from hard countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it's wonderful to have a lot of snow, but it's not always the case. A heavy snowfall can paralyze the life of a city or a country. If snows is rare in a certain location, people there are not used to it and find it hard to commute or even go outside.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_1.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Кузьминова_7921829566", - "transcript": "How much variety of jobs do you have? What is the minimum age for a part-time job? What is required number of hours per week? What is the pay per hour?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_2.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Кузьминова_7921829566", - "transcript": "Usually I spend my weekend with my family and my friends. We are going to the parks or rivers and lakes or forests to walk with them. If it is among my friends, it's walking in the parks and going to the stadium. I think it's really interesting spending free time for my coming weekend. Me, my brother and our friends will go to the river and go to swim then. When the weekend is over, I feel sad because my weekend is really funny and I feel happy when I have a weekend. I would like to spend more time outside with my friends.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_3.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Кузьминова_7921829566", - "transcript": "Hi there! I have found two photos for our school project on doing homework. I'd like to tell you about them. In the first picture one can see a girl. She is doing homework. There are a girl with her mom that is doing homework together in the second picture. Talking about the differences, the key difference is in the first picture girl doing homework alone, while in the second picture girl doing homework with her parents. I think these photos are perfect for our project because they illustrate different kinds of doing homework. I believe that the two types of doing homework have their advantages and disadvantages. As for the advantages, doing homework alone can help you for better concentration. What about doing homework with somebody you can't do it. We'll discuss about the disadvantages. As for doing homework alone, I can say that these disadvantages are the risk of getting worth your attention and doing incorrect answers. One downside of doing homework together is that you can have a fear of taking incorrect answers. Overall, any kind of doing homework is beneficial for our education. I'd prefer doing homework alone because that way I have a lot of concentration of my job. That's all I wanted to tell you. Bye!", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_4.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Штельмах_7924913136", - "transcript": "It usually snows more in countries that are in the north. For instance Japan, Russia or some parts of the USA may have large snowfalls. Mountains are also the place which have a lot of snow. It is especially true for such countries as China. At the same time there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come there. It is not every place in the world has snowfalls. People from hot countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it is wonderful to have a lot of snow, but it is not always the case. Heavy snow can paralyze the life of a city or a country. If snow is rare in a certain location, people are not used to it and find it hard to commute or even go outside.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_1.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Штельмах_7924913136", - "transcript": "What variety of jobs you have to start there, working, pay as much as you pay per hour.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_2.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Штельмах_7924913136", - "transcript": "I usually spend my weekend with my friends. We usually go to the cinema or play computer games. It's sport. I like to do some exercise in the gym. My plans at the weekend is go to trip to the mountain. We have planned this with my friends. I feel so bad because when it's over, I feel so bad. But sometimes I feel good because I can go to the school. I like to change my daily routine. I want to do more homework. It's important for me.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_3.ogg" - }, - { - "region": "1-Республика Адыгея", - "fio": "Штельмах_7924913136", - "transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_4.ogg" - } -] \ No newline at end of file From 224eb0700bd277d15a95e08fec5add88a55b3f2a Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 11:36:39 +0300 Subject: [PATCH 16/23] update criterias --- ege-checker/references/english-speaking-criteria.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ege-checker/references/english-speaking-criteria.md b/ege-checker/references/english-speaking-criteria.md index 7c2de3a..4916229 100644 --- a/ege-checker/references/english-speaking-criteria.md +++ b/ege-checker/references/english-speaking-criteria.md @@ -37,9 +37,9 @@ --- -## Задание 3 — Диалог-интервью: ответы (5 ответов × 0–1 балл = 5 баллов) +## Задание 3 — Диалог-интервью: ответы на вопросы интервьювера в виде монолога (5 ответов × 0–1 балл = 5 баллов) -Ученик отвечает на 5 вопросов интервьюера. +Ученик отвечает на 5 вопросов интервьюера сплошным текстом. | Балл | Критерий | |------|----------| @@ -108,7 +108,7 @@ - Проверить: соответствие теме + грамматическая форма прямого вопроса + понятность **Задание 3 (ответы):** -- Оценить каждый из 5 ответов отдельно (0 или 1) +- Оценить ответы ученика в виде текста - должно быть 5 смысловых ответов на вопросы (0 или 1) - Проверить: полнота (2–3 фразы) + соответствие вопросу + отсутствие грубых ошибок **Задание 4 (монолог):** From e3060337fa1d06534441e431277a1729bdef0916 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 11:36:56 +0300 Subject: [PATCH 17/23] update english speaking tests --- tests/transcriptions.json | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/tests/transcriptions.json b/tests/transcriptions.json index cef2d1c..95d464c 100644 --- a/tests/transcriptions.json +++ b/tests/transcriptions.json @@ -3,48 +3,56 @@ "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "It usually snows more in countries that are in the North. For instance, Japan, Russia or some parts of the USA may have hard snowfalls. Mountains are also the places which have a lot of snow. This is especially true for such countries as China. At the same time, there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come here. It's not every place in the world has snowfalls. People from hard countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it's wonderful to have a lot of snow, but it's not always the case. A heavy snowfall can paralyze the life of a city or a country. If snows is rare in a certain location, people there are not used to it and find it hard to commute or even go outside.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_1.ogg" + "score_true": 1, + "score_pred": 0 }, { "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "How much variety of jobs do you have? What is the minimum age for a part-time job? What is required number of hours per week? What is the pay per hour?", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_2.ogg" + "score_true": 2, + "score_pred": 4 }, { "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "Usually I spend my weekend with my family and my friends. We are going to the parks or rivers and lakes or forests to walk with them. If it is among my friends, it's walking in the parks and going to the stadium. I think it's really interesting spending free time for my coming weekend. Me, my brother and our friends will go to the river and go to swim then. When the weekend is over, I feel sad because my weekend is really funny and I feel happy when I have a weekend. I would like to spend more time outside with my friends.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_3.ogg" + "score_true": 3, + "score_pred": 0 }, { "region": "1-Республика Адыгея", "fio": "Кузьминова_7921829566", "transcript": "Hi there! I have found two photos for our school project on doing homework. I'd like to tell you about them. In the first picture one can see a girl. She is doing homework. There are a girl with her mom that is doing homework together in the second picture. Talking about the differences, the key difference is in the first picture girl doing homework alone, while in the second picture girl doing homework with her parents. I think these photos are perfect for our project because they illustrate different kinds of doing homework. I believe that the two types of doing homework have their advantages and disadvantages. As for the advantages, doing homework alone can help you for better concentration. What about doing homework with somebody you can't do it. We'll discuss about the disadvantages. As for doing homework alone, I can say that these disadvantages are the risk of getting worth your attention and doing incorrect answers. One downside of doing homework together is that you can have a fear of taking incorrect answers. Overall, any kind of doing homework is beneficial for our education. I'd prefer doing homework alone because that way I have a lot of concentration of my job. That's all I wanted to tell you. Bye!", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Кузьминова_7921829566/audio_497920_4.ogg" + "score_true": 5, + "score_pred": 7 }, { "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "It usually snows more in countries that are in the north. For instance Japan, Russia or some parts of the USA may have large snowfalls. Mountains are also the place which have a lot of snow. It is especially true for such countries as China. At the same time there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come there. It is not every place in the world has snowfalls. People from hot countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it is wonderful to have a lot of snow, but it is not always the case. Heavy snow can paralyze the life of a city or a country. If snow is rare in a certain location, people are not used to it and find it hard to commute or even go outside.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_1.ogg" + "score_true": 1, + "score_pred": 1 }, { "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "What variety of jobs you have to start there, working, pay as much as you pay per hour.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_2.ogg" + "score_true": 1, + "score_pred": 0 }, { "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "I usually spend my weekend with my friends. We usually go to the cinema or play computer games. It's sport. I like to do some exercise in the gym. My plans at the weekend is go to trip to the mountain. We have planned this with my friends. I feel so bad because when it's over, I feel so bad. But sometimes I feel good because I can go to the school. I like to change my daily routine. I want to do more homework. It's important for me.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_3.ogg" + "score_true": 2, + "score_pred": 2 }, { "region": "1-Республика Адыгея", "fio": "Штельмах_7924913136", "transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.", - "file_path": "/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/1-Республика Адыгея/Штельмах_7924913136/audio_497976_4.ogg" + "score_true": 2, + "score_pred": 9 } ] \ No newline at end of file From 06a151446191ea90a7893c2a0bd77453adc2c6f1 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 11:37:04 +0300 Subject: [PATCH 18/23] update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a7dbbbe..dd97da3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .venv .scans +ege-checker-local +ege-checker-local/* From 28baee85b38cc10c5d52793fa5c6d4c2f29a6999 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 17:23:18 +0300 Subject: [PATCH 19/23] add english speaking tests --- tests/english-tester.py | 9 +- tests/transcriptions-report.md | 28 +++ tests/transcriptions-stats.py | 38 ++++ tests/transcriptions.json | 336 +++++++++++++++++++++++++++++++++ 4 files changed, 406 insertions(+), 5 deletions(-) create mode 100644 tests/transcriptions-report.md create mode 100644 tests/transcriptions-stats.py diff --git a/tests/english-tester.py b/tests/english-tester.py index 9f6ad04..e17ecfd 100644 --- a/tests/english-tester.py +++ b/tests/english-tester.py @@ -12,7 +12,7 @@ def transcribe_file( """ Вызывает recognition.py для одного файла, возвращает транскрипцию. """ - cmd = ["python3", str(script_path), "--output", "transcript", str(file_path)] + cmd = ["python3", str(script_path), str(file_path)] try: result = subprocess.run( @@ -43,7 +43,7 @@ def main(): base_dir = Path( r"/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/" ) - regions = ["1-Республика Адыгея"] + regions = ["2-Республика Башкортостан", "3-Республика Бурятия"] recognizer_script = Path.home() / ".zeroclaw" / "workspace" / "skills" / "ege-checker" / "recognition.py" # Таймаут на транскрипцию одного файла (в секундах) @@ -102,13 +102,12 @@ def main(): { "region": region, "fio": fio, - "transcript": transcript, - "file_path": str(ogg_path), + "transcript": transcript } ) # Сохраняем JSON - output_file = Path.cwd() / "transcriptions.json" + output_file = Path.cwd() / "tests" / "transcriptions.json" if Path.exists(output_file): with open(output_file, "r", encoding="utf-8") as f: results_to_file: list = json.load(f) diff --git a/tests/transcriptions-report.md b/tests/transcriptions-report.md new file mode 100644 index 0000000..cc80735 --- /dev/null +++ b/tests/transcriptions-report.md @@ -0,0 +1,28 @@ +## Отчет по результатам оценки заданий (на основе transcriptions.json) + +| Регион | Фамилия | Задание 1 (True/Pred) | Задание 2 (True/Pred) | Задание 3 (True/Pred) | Задание 4 (True/Pred) | Общий True | Общий Pred | +| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: | +| 1-Республика Адыгея | Кузьминова | 1 / 0 | 2 / 4 | 3 / 0 | 5 / 7 | **11** | **11** | +| 1-Республика Адыгея | Штельмах | 1 / 1 | 1 / 0 | 2 / 2 | 2 / 9 | **6** | **12** | +| 4-Республика Алтай | Борбуева | 1 / 0 | 3 / 3 | 1 / 3 | 6 / 8 | **11** | **14** | +| 4-Республика Алтай | Гаршина | 0 / 0 | 2 / 2 | 0 / 0 | 5 / 9 | **7** | **11** | +| 2-Республика Башкортостан | Авсахова | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 2 | **0** | **2** | +| 2-Республика Башкортостан | Иркабаев | 1 / 1 | 4 / 4 | 4 / 4 | 5 / 9 | **14** | **18** | +| 2-Республика Башкортостан | Панова | 1 / 0 | 2 / 1 | 1 / 0 | 7 / 6 | **11** | **7** | +| 2-Республика Башкортостан | Пешкова | 1 / 1 | 4 / 4 | 2 / 5 | 10 / 9 | **17** | **19** | +| 2-Республика Башкортостан | Шафикова | 1 / 1 | 3 / 3 | 0 / 2 | 7 / 9 | **11** | **15** | +| 2-Республика Башкортостан | Яппаров | 1 / 0 | 2 / 2 | 2 / 0 | 6 / 6 | **11** | **8** | +| 3-Республика Бурятия | Алексеев | 0 / 0 | 3 / 0 | 0 / 0 | 6 / 3 | **9** | **3** | +| 3-Республика Бурятия | Очиров | 1 / 0 | 1 / 2 | 3 / 0 | 7 / 6 | **12** | **8** | +| 3-Республика Бурятия | Ошорова | 1 / 1 | 3 / 3 | 5 / 0 | 9 / 9 | **18** | **13** | +| 3-Республика Бурятия | Чимбеева | 1 / 0 | 4 / 4 | 3 / 3 | 7 / 6 | **15** | **13** | + +--- + +### Общая статистика + +| Метрика | Task 1 | Task 2 | Task 3 | Task 4 | +| :--- | :---: | :---: | :---: | :---: | +| **Avg True** | 0.786 | 2.429 | 1.857 | 5.857 | +| **Avg Pred** | 0.357 | 2.286 | 1.357 | 7.000 | +| **MAE** | 0.429 | 0.143 | 0.500 | 1.143 | \ No newline at end of file diff --git a/tests/transcriptions-stats.py b/tests/transcriptions-stats.py new file mode 100644 index 0000000..ee04503 --- /dev/null +++ b/tests/transcriptions-stats.py @@ -0,0 +1,38 @@ +import json +from collections import defaultdict + + +TRANSCRIPTIONS = "transcriptions.json" + +def get_stats(): + stats = defaultdict(dict) + with open(TRANSCRIPTIONS, "r") as f: + data = json.load(f) + for i, elem in enumerate(data): + task_num = i % 4 + 1 + obj = stats[f"Task {task_num}"] + if 'Sum True' in obj: + obj['Sum True'] += elem['score_true'] + obj['Sum Pred'] += elem['score_pred'] + obj['Count'] += 1 + else: + obj['Sum True'] = elem['score_true'] + obj['Sum Pred'] = elem['score_pred'] + obj['Count'] = 1 + for key, obj in stats.items(): + stats[key]['Average True'] = stats[key]['Sum True'] / stats[key]['Count'] + stats[key]['Average Pred'] = stats[key]['Sum Pred'] / stats[key]['Count'] + stats[key]['MAE'] = abs(stats[key]['Average True'] - stats[key]['Average Pred']) + return stats + + +def main(): + stats = get_stats() + print(f"Статистика:") + for name, obj in stats.items(): + print(name) + print(f'Avg True / Avg Pred / MAE = {obj['Average True']:.3f} / {obj['Average Pred']:.3f} / {obj['MAE']:.3f}') + + +if __name__ == '__main__': + main() diff --git a/tests/transcriptions.json b/tests/transcriptions.json index 95d464c..a58ce60 100644 --- a/tests/transcriptions.json +++ b/tests/transcriptions.json @@ -54,5 +54,341 @@ "transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.", "score_true": 2, "score_pred": 9 + }, + { + "region": "4-Республика Алтай", + "fio": "Борбуева_8420415899", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy day, rainy weather. It makes the air fresh and clean.", + "score_true": 1, + "score_pred": 0 + }, + { + "region": "4-Республика Алтай", + "fio": "Борбуева_8420415899", + "transcript": "Where is ordering flowers located? What is the cost of the flowers delivery? Do you have any special occasion decorations in your flower shop? Do you have other potted flowers in your flower shop?", + "score_true": 3, + "score_pred": 3 + }, + { + "region": "4-Республика Алтай", + "fio": "Борбуева_8420415899", + "transcript": "In my daily life I use a mobile phone and my tablet. I use them because these gadgets are very comfortable for using in the daily life. Digital technologies make our lives easier in many ways. For example, people can call their family members whatever they want and whenever they are located at the moment and also we can order something online using our gadgets. The best invention of mankind is a mobile phone because this is a very useful gadget. The other gadgets. I think this is the most useful gadget. There is a lot of Russian inventors in my country, but one of them is Zaitsev. He invented the radio. I do not think that I can live without a mobile phone for a month because the mobile phone is a very important part of my life because I can call my family and my friends. I do learn with a mobile phone, so I do not think that I can live without a mobile phone for a month.", + "score_true": 1, + "score_pred": 3 + }, + { + "region": "4-Республика Алтай", + "fio": "Борбуева_8420415899", + "transcript": "Hi friend, how are you? I have some photos for our project, the games people like, and I would like to say a few words about them. I think these two types of photos are perfect for our project, as they illustrate two different types of the games people like. The first picture shows a girl playing video games, and the other picture shows two people playing table games. Talking about differences, the key difference is that in the first picture there is a girl and she is alone, and in the second picture there is a mother and daughter, and another difference is that in the first picture there is a girl and she is sitting on the chair, and in the other picture there is a mother and daughter sitting on the sofa. I believe that these two types of the games people like have their advantages and disadvantages. Talking about disadvantages, the disadvantage of video games is that the risk of eye injury, and the disadvantage of the table games is that there is not a lot of functions in the games. Talking about advantages, the advantage of the video games is that usually video games are very colorful and interesting, and the advantage of the table games is that it develops your brain. I think playing any games is beneficial for our mental health. I would prefer table games because I like to play with people in the real life, but that's all for me now. Please get in touch with me and tell me what do you think about these photos.", + "score_true": 6, + "score_pred": 8 + }, + { + "region": "4-Республика Алтай", + "fio": "Гаршина_8421427187", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and throws the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rain dairy whatever. Well, it makes the air fresh and clean.", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "4-Республика Алтай", + "fio": "Гаршина_8421427187", + "transcript": "Where your flowers shop is located? What is cost of delivery? What is cost of delivery? Do you have any special occasion decorations? Are there any potted flowers?", + "score_true": 2, + "score_pred": 2 + }, + { + "region": "4-Республика Алтай", + "fio": "Гаршина_8421427187", + "transcript": "Well, I mostly use such gadgets as my phone and a computer, because I very like video games and watching videos. So I think that I really enjoy... Well, I think that new technologies make our life more easy, because, for example, you can use your phone. For that, you can call your relatives or friends. Also, you can make new videos and photos. Well, I think that the best invention is logic, which you can find in different shops and use for your life. Well, I think that the most used invention are phones and computers, because people use these engines very mostly. Well, I think that I can find mobile phone very used, because, as I said, people might use phone such as camera and go making videos and photos.", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "4-Республика Алтай", + "fio": "Гаршина_8421427187", + "transcript": "Hi Eileen, I'm calling you about some photos which I have found for our project, the games people like. So let me tell you about them. The first picture is suitable for our project because it shows video game. The second photo also works because it shows chess. So we can see two different ways that people can use for games. In the first picture I see a girl who is playing a video game on her computer. In the second photo I see a woman, a girl, who is playing chess. The key difference is that in the first picture a girl and the second picture are two players. Well, I can see some advantages and disadvantages of these two types of games. The advantage of video games is that you can play with people from all over the world. The advantage of playing chess is that you can play with your relatives and friends. However, the drawback of playing computer is that it can be harmful for your eyes. The drawback of playing chess is that it can be boring. As for me, I prefer video games because I really like it and I like when I can find different worlds and characters in games. That's all I wanted to say about these pictures. Call me back and tell your opinion. Bye.", + "score_true": 5, + "score_pred": 9 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It retains as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the sea streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals their water they need to drink. Finally, people love rainy water. It makes the air fresh and clean.", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "Where is location? What cost of delivery? Where special location decorations? Where is the potted flowers?", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "In my daily life I use my mobile phone and television because I chat with my friends and call my mom. The digital technology that made my life easier is my telephone because I chat with my friends, no more information. The best pictures on MedKindness is television. In my opinion, the famous Russian list is Mikhail Vasilyevich Lomonosov, the Russian scientist who knows a scientist like math and he is so curious. I think I don't see my life without my mobile phone because it keeps more information for me and I chat with my friends and call my mom. It improves my life and I don't see the life without it.", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Авсахова_8020280717", + "transcript": "Hi Kate, I have our project for you in two pictures we have seen. In the first pictures we see girls who play the computer games and she liked it because the computer game have a brain side and improve your brain explanation. In the second photo we have seen girls and her mom who play the chess in disadvantages. However, I can say advantages or disadvantages. In advantages first picture we can see that girl playing and improve your skills in computer game. In two pictures we have seen the brain hard game but disadvantages our pictures in the first pictures girls save more time for that and she will be angry about that your game is disappointed and two disadvantages what the most time kills because she save them. I prefer picture number one because the girl I love computer game and what about them. I wait your opinion.", + "score_true": 0, + "score_pred": 2 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "score_true": 1, + "score_pred": 1 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "Where is your flower shop located? What is the cost of delivery? Are there any special occasion decorations? Are potted flowers available?", + "score_true": 4, + "score_pred": 4 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "In my daily life I usually use such gadgets as smartphone, TV and personal computer. Modern technologies makes our life easier in that way that you don't need to go to the library to read some necessary information. It's more convenient now to go shopping or surfing the net than before. Well, I think the best invention of mankind is Internet because it allows us to do basically everything. You basically can't imagine our everyday life without Internet, without the Internet. Well, there is famous Russian inventor of a radio, his name is Popov. He invented radio before anyone else, as far as I know. Well, I think I could live without smartphone for a month because it's not that hard to avoid all these benefits that smartphone brings. But I have to admit it would be quite difficult.", + "score_true": 4, + "score_pred": 4 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Иркабаев_8021293748", + "transcript": "Hi, John, how are you? I've just found two pictures that are suitable for our school project, the games people like. Let me quickly describe them. One of the pictures shows a girl playing computer games. The other picture shows a mother with her daughter playing chess mate. The main difference between these two photos is that it's two different types of games. As for the advantages of playing computer games, I would like to say that it develops quick reaction. Also, it develops your social skills because you have to communicate with your teammates in the game. As for the advantages of checkmates, I would like to say that it develops your logical thinking. Moreover, it allows you to analyze, it teaches you to analyze situations and make right decisions very fast. As for disadvantages, however, there are also disadvantages. Computer gaming actually makes your eyesight, makes your mental health worse. Also, it's bad for your eyesight. Checkmates also has some withdrawals such as badly influence your physical condition. Your posture can get worse and you feel worse about your physical condition. Personally, I would prefer computer gaming because I'm keen on games and other stuff because I like to play games with my friends. That's all for now. Keep in touch. Bye-bye.", + "score_true": 5, + "score_pred": 9 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Панова_8021392635", + "transcript": "Rain is an important part of the water cycle which never stops in our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams. Rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "score_true": 1, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Панова_8021392635", + "transcript": "What is the location of the flower store? Stop delivering. We have special occasion for decorations. Have any potted flowers?", + "score_true": 2, + "score_pred": 1 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Панова_8021392635", + "transcript": "In my daily life, I use phone. Also, I usually use TV. People teaching online. Also, they can know stuff. Mindy Leyev creates a to-live without mobile phone for a month. That's all because Surf the Net habit. Surf the Net. Surf the Net.", + "score_true": 1, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Панова_8021392635", + "transcript": "Hi guys, I found two photos for our project, the games people like, and I'd like to tell you about them. Let me describe them for you. On picture shows a girl who is playing on the computer. In the other picture there are mom and there is a woman with father who are playing in the chess. However, these photos have some differences. The key difference is that the first photo depicts the video games, while in the second photo there is intellect board games. These pictures perfectly suit our project because both of them illustrate types of games. I believe that both types of games present in the pictures their advantages and disadvantages. Talking about the advantages, the best thing about video games is that it's more funny. At the same time board games are great because they develop your thinking. As for the disadvantages of video games, one of them is that it's more expensive. Also there is a major drawback with games that can be boring. I would prefer video games because that's all for now. I'll be waiting for your opinion on the photos.", + "score_true": 7, + "score_pred": 6 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "Rain is an important part of the water cycle, which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the Earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "score_true": 1, + "score_pred": 1 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "What is the location of your flowers shop? What is the cost of delivery? Do you provide any special occasion decorations for flowers? What potted flowers do you have?", + "score_true": 4, + "score_pred": 4 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "Personally, in my daily life, I use phone, notebook and computer. Also, I use headphones and I find it very useful. I think digital technologies make our life easier in so many ways. For example, we can find whatever we want in any time just using the Internet. Personally, I think that the best invention of the kind thing is our headphones. They help to listen to music at any time and not bother anyone with your own music. I know famous Russian inventor Lomonosov. He made a huge impact on the science of the whole world. He invented telescope. Unfortunately, I would say that I would not be able to live without mobile phone for a month. I think that because I need to listen to music every day and mobile phone gives me an ability to do it.", + "score_true": 2, + "score_pred": 5 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Пешкова_8021424674", + "transcript": "Hey Kate, I've just found two pictures relatable for our project The Games People Like, but for some technical issues I can't send them to you right now. So let me describe them. Both pictures are representing types of games. One picture shows a girl playing her computer playing in computer with her headphones on. The other picture shows two women playing chess. The main difference between these pictures is that one picture shows digital type of games and the other picture shows old-fashioned type of games. Both types of games have their advantages. For example, digital games are popular among teenagers and there you can find new friends. As for the old-fashioned games, they make our minds stronger. Meanwhile, both types of games have disadvantages too. For example, digital games can be uncontrolled, especially among children, and you can have an addiction from them. As for the old-fashioned games, for some people they can be boring, especially for children. As for me, I prefer old-fashioned games because they remind me of my childhood. So what do you think about these pictures? Should we take them? Tell me later. Bye-bye!", + "score_true": 10, + "score_pred": 9 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the Earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "score_true": 1, + "score_pred": 1 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "Where is your flower shop located? How much does the delivery cost? Do you offer any special occasion decorations? What is the flower pot?", + "score_true": 3, + "score_pred": 3 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "I use smartphone and laptop every day. I think that these gadgets are very important for people because these digital gadgets make life easier. In my opinion, Internet is the largest source of information. That's why people can find a lot of information very fast and easy. Besides, I think that with smartphone communicate with relatives and friends very easy. I think that the best inventions of mankind is car because car makes our life easier than in the past. I think that because cars can help people to go to other places very fast and in convenient conditions. I think that Pavel Durov is the famous Russian inventor. Pavel Durov is the founder of Telegram and other messaging platforms. I think that Pavel Durov really makes our life easier because he is a great man. I think I will not live without smartphone for a month. I think that because smartphone is very useful thing for me. I use my smartphone a lot of days, a lot of hours. I use them to chatting with my friends and relatives and to find information. That's why I think that smartphone is very important for me.", + "score_true": 0, + "score_pred": 2 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Шафикова_8020277747", + "transcript": "Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for... Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for our project and I'd like to tell you about them and share my ideas. The first picture depicts a young lady who is playing computer games. The other one depicts two young girls who are playing chess. In my opinion, these photos are perfectly suitable for our project because they show two types of games, namely playing computer games and playing intellectual games. I think that both types of games have their advantages, for example, playing computer games can be more interesting and funnier than other types of games. As for playing intellectual games, I think that these games can improve their cleverness and strategic skills. Speaking of disadvantages, I reckon that playing computer games can be harmful for kids' health. As for playing intellectual games, I think that playing intellectual games can be boring for kids. As for me, I prefer playing computer games because it is more interesting for me and I'd like to play computer games with my friends. That's all for now. I hope you like the photos and my ideas.", + "score_true": 7, + "score_pred": 9 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "Rain is an important part of the water cycle, which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the Earth is cold in wind and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures. And the water in the streams, rivers and lakes is home to fresh water fish and other water animals. Secondly, rain provides the water trees and other planets need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.", + "score_true": 1, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "Where the flower shop is located? How much does cost delivery? Do you provide any special occasion decorations? Do you have potted flowers?", + "score_true": 2, + "score_pred": 2 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "I usually use mobile phone for any activity. Also I oftentimes use computer for making projects or making my homework. I think digital gadgets... For us it makes it easier to search for exact information. Also it helps us to calculate many things. The best invention is computer. I think computer is the best invention of human. It's provided for humanity... Yes, it's provided for humanity to... Because it helps... I know Mindeliev. He invented a periodic table of chemical elements. I wouldn't be able to live a month without a mobile phone. It helps me to communicate with my friends. It helps me to communicate with my friends.", + "score_true": 2, + "score_pred": 0 + }, + { + "region": "2-Республика Башкортостан", + "fio": "Яппаров_8020266903", + "transcript": "Hello John, I have just found two photos from our school project. The games people like. And I'd like to describe them and share my ideas. In the first picture you can see a girl playing a computer game. She's wearing headphones and she looks very confident. And on the second picture you can see a daughter playing chess with her mother. They look happy and they enjoy their game. Both pictures depict two different types of games. In the first picture it is computer games. On the second picture it is chess. These types of games have their own advantages. Computer games are usually very interesting to play. And also it helps children to grow their mind. Chess helps people to train their brain. It is easy to play in any place. And you can play it in any place you want. Also they have their own advantages. For example, computer games can hurt your eyes if you use a computer for a long period of time. And also you can't take a computer in the park or in the nature. Chess has a drawback too. The rules are hard.", + "score_true": 6, + "score_pred": 6 + }, + { + "region": "3-Республика Бурятия", + "fio": "Алексеев_8121943809", + "transcript": "It's hard to imagine our life without rain. Rainfall is important for animals and plants to survive on earth. Rain keeps up the level of fresh water. When there is no rainfall, the flow of life is affected literally. If there is litter or no rain at all, lands will dry up. The dried up plants is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture, humans will suffer from food shortage. The water available in the underground will be absorbed by plants. The water in wells will decrease. Since the water in the ocean is salty, the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals, it also causes big problems.", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Алексеев_8121943809", + "transcript": "Where is your clothing store located? What are the opening hours of your clothing store? What kinds of shorts do you sell? Do you provide any discounts in your clothing store?", + "score_true": 3, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Алексеев_8121943809", + "transcript": "My best friend is Ilya. I met him when I was a child. In war, without friends, teenagers can't get such an idea. I usually spend a lot of hours with my friends every day. I think three or four hours. In school, I usually play games in the computer club with our friends. It's enjoyable if we spend a lot of time with our friends.", + "score_true": 0, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Алексеев_8121943809", + "transcript": "Hello, friend. I'm calling about our project Indoor Games. Let me tell you about them. I think one photo works for a project showing a couple of people playing tennis. The other is also suitable because it shows two men's playing chess. These two photos illustrate two different types of indoor games. I mean physical activity games and mind games because this can be very useful for our project. Well, we see some advantages and disadvantages of these two types of indoor games. The advantage of tennis is that there is a lot of physical activity. However, The disadvantages of this is that it spends more energy. The advantages of playing chess is that it's pure mind. The disadvantages is that it's difficult if you don't know a rule of the game. To be honest, I prefer the mind games because it's really good for me. That's all I wanted to say. Call me back. Bye.", + "score_true": 6, + "score_pred": 3 + }, + { + "region": "3-Республика Бурятия", + "fio": "Очиров_8121954518", + "transcript": "It's hard to imagine a life without rain. Rainfall is most is important for animals and plants to survive on earth. Rain keeps up the levels of level of the fresh water. When there is no rain rainfall the flow of life is affected largely. If there is no if there is little or no rain at all lands will dry up. The dried up land is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture humans will suffer from food shortages. The water the water available in the underground will be absorbed by plants. The water in the wells will decrease. Since the water in the ocean is salty the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals that also causes big problems.", + "score_true": 1, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Очиров_8121954518", + "transcript": "What's the location of the clothing store? What are working hours for the store? What kind of shirts are sold in the clothing store? Is there any discounts available for now?", + "score_true": 1, + "score_pred": 2 + }, + { + "region": "3-Республика Бурятия", + "fio": "Очиров_8121954518", + "transcript": "My best friend is Toll. I met him at daycare when I was a child and we still are best friends to this day. Personally, I look for loyalty and charismatic abilities so I could talk to him for hours because it's always important to socialize within your age group. It's always important to have someone to rely your back. Friends will follow you throughout your whole life. Usually I spend about four to five hours with friends by hanging out or playing games together. Usually we just walk around our town or we just hang out at someone else's house. We sometimes buy groceries together so we could cook something good for ourselves. I was glad to answer your questions.", + "score_true": 3, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Очиров_8121954518", + "transcript": "Hey friend, I found two big two photos that could fit our project about indoor games perfectly. In one of the photos, there are woman and man playing ping pong together. They seem very engaged in it. They're probably somewhere at the sports center. In another photo, there's a two men sitting at the table. They're playing chess. They're really engaged into it. These two photos are relevant for our project because they represent two kinds of in-game indoor games. The active one and the passive one. The advantages of active one probably would be that you can test your qualities and make friends with your opponents whereas it can be very tiring and you can get trauma from it. For passive one, it probably would be that it can test your strategy and your skills. But disadvantage would be that it's mentally draining. Personally, I would pick the passive one because it's very fun to play someone who has same level of skills as you.", + "score_true": 7, + "score_pred": 6 + }, + { + "region": "3-Республика Бурятия", + "fio": "Ошорова_8121925358", + "transcript": "It is hard to imagine our life without rain. Rainfall is important for animals and plants to survive on earth. Rain keeps up the level of fresh water. When there is no rainfall, the flow of life is affected largely. If there is little or no rain at all, lands will dry up. The dried up land is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture, humans will suffer from food shortages. The water available in the underground will be absorbed by plants. The water in wells will decrease. Since the water in the ocean is salty, the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals, that also causes big problems.", + "score_true": 1, + "score_pred": 1 + }, + { + "region": "3-Республика Бурятия", + "fio": "Ошорова_8121925358", + "transcript": "Where is the clothing store located? When the clothing store open and close? What kinds of shorts do you sell? Do you have any discounts in your clothing store?", + "score_true": 3, + "score_pred": 3 + }, + { + "region": "3-Республика Бурятия", + "fio": "Ошорова_8121925358", + "transcript": "Well, my best friend is Masha. I met her at school when we were 16. She is a very kind and friendly person. Well, it's important for me to have a friend who will be friendly and supportive. I think these qualities are the most important. I think it's important for a teenager to have good friends, since friends are the people who can help teenagers and support them. So it's important to have people who can help you anywhere. I usually spend two hours a day with my friends. We usually do homeworks together or go to cafes. Well, after school, my friends and me usually go to cafes together. Sometimes we can do homeworks also. Besides, we can go to the cinema.", + "score_true": 5, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Ошорова_8121925358", + "transcript": "Hi Vera, do you remember that we are doing a project Indoor Games? I have found two photos that will perfectly illustrate it. Let me tell you about them. In the one photo I can see a woman and a man playing together table tennis. In the other photo I can see two men playing together a chess. These photos are quite different. In the one photo, the one photo shows active type of indoor games, while the other one shows intellectual type of indoor games. Both photos have their advantages and disadvantages. The main advantage of active type of indoor games is that this type of indoor games helps people to keep fit and stay in shape, since during this game people usually stay active. However, the main disadvantage of this type of indoor games is that not every person has the possibility to have such active indoor games, and it can be quite expensive. As for intellectual type of indoor games, the main advantage of it is that this type of indoor games develop intellectual skills of person. However, the main disadvantage of this type of indoor games is that not every person can play intellectual type of indoor games, since these type of games are quite difficult to play. As for me, I would prefer playing intellectual type of games, since I find them really useful and pleasant for people's brain. That's all I wanted to tell you. Let me know what you think about these photos. Bye!", + "score_true": 9, + "score_pred": 9 + }, + { + "region": "3-Республика Бурятия", + "fio": "Чимбеева_8121939062", + "transcript": "It's hard to imagine our life without rain. Rainfall is important for animals and plants to survive on earth. Rain keeps up the level of fresh water. When there is no rainfall, the flow of life is affected largely. If there is little or no rain at all, the dry up land is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture, humans will suffer from food shortages. The water available in the underground will be absorbed by plants. The water in wells will decrease. Since the water in the ocean is salty, the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals, that also causes big problems.", + "score_true": 1, + "score_pred": 0 + }, + { + "region": "3-Республика Бурятия", + "fio": "Чимбеева_8121939062", + "transcript": "Where is the clothing store located? What are the opening hours of the clothing store? What kinds of shorts are sold? Do you have any discounts?", + "score_true": 4, + "score_pred": 4 + }, + { + "region": "3-Республика Бурятия", + "fio": "Чимбеева_8121939062", + "transcript": "My best friend is my classmate. Her name is Zhenya. We met at the school. Usually I look for different kinds of qualities for friendship. For example, I think my friend should be easygoing, kind and attentive. It is important for teenagers to have friends. I think so because teenagers need to be with penias because they want to be listened and they want to feel themselves. I usually spend five hours a day with my friends. Usually it is real meeting or online text. I really love to spend my time with my friends. Usually after school we do different actions. The most liked action we like to go to cafe and play volleyball after school with my friends.", + "score_true": 3, + "score_pred": 3 + }, + { + "region": "3-Республика Бурятия", + "fio": "Чимбеева_8121939062", + "transcript": "Hi there. I have found a few photos for our project Indoor Games. I hope, sorry due to some technical problems, I can't submit them to you. I hope the illustrations are suitable for the project. Let me explain my choice. In one photo there are, there is a woman and a man. They are playing table tennis. They are wearing casual clothes. They are focused and they are happy. In the other photo there are two men. They are playing chess. They are focused and nervous. They are also wearing office clothes. Obviously, photos are different. One noticeable difference is that in one photo they are playing table tennis, whereas in the other photo they are playing chess. Besides, places are different. One photo represents the living room, whereas the other photo represents the living room. There are some disadvantages and advantages. Obvious advantages of playing table tennis is that you can keep fit and you can build your muscles. You can spend your time with your friends. Speaking about playing chess, you can improve your cognitive skills. Nevertheless, there are some disadvantages. As for the drawbacks of playing table tennis, you always need a companion. You can't play table tennis alone. Speaking about drawbacks of playing chess, it can be boring and also you can lose different items and you can't play chess without them. I find the subject of the project very important as people can see the positive and negative sides of two types of indoor games. As for me, I would prefer playing tennis because I really love sport and I really love sport. Please let me know whether you find the photos suitable for the project. If you don't, what are your ideas? Bye.", + "score_true": 7, + "score_pred": 6 } ] \ No newline at end of file From 29fe6274376549cb33edbbef18e14c43096c1904 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Wed, 6 May 2026 10:33:45 +0300 Subject: [PATCH 20/23] correct english speaking criteria for task 1, 4 --- ege-checker/references/english-speaking-criteria.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ege-checker/references/english-speaking-criteria.md b/ege-checker/references/english-speaking-criteria.md index 4916229..1d025b2 100644 --- a/ege-checker/references/english-speaking-criteria.md +++ b/ege-checker/references/english-speaking-criteria.md @@ -21,12 +21,12 @@ | Балл | Критерий | |------|----------| -| 1 | Слова употреблены без ошибок. Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл | -| 0 | Есть ошибки в употреблении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл | +| 1 | Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл | +| 0 | Сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл | --- -## Задание 2 — Диалог-расспрос: вопросы (4 вопроса × 0–1 балл = 4 балла) +## Задание 2 — Диалог-расспрос: вопросы (4 вопроса × 0–1 балл = 0-4 баллов) Ученик задаёт 4 вопроса по заданной теме. @@ -37,9 +37,10 @@ --- -## Задание 3 — Диалог-интервью: ответы на вопросы интервьювера в виде монолога (5 ответов × 0–1 балл = 5 баллов) +## Задание 3 — Диалог-интервью: ответы на вопросы интервьювера в виде текста (5 ответов × 0–1 балл = 0-5 баллов) -Ученик отвечает на 5 вопросов интервьюера сплошным текстом. +Ученик отвечает на 5 вопросов интервьюера в виде одного текста. +Для каждого вопроса сначала найди предложения в тексте, потом оценивай. | Балл | Критерий | |------|----------| @@ -108,7 +109,7 @@ - Проверить: соответствие теме + грамматическая форма прямого вопроса + понятность **Задание 3 (ответы):** -- Оценить ответы ученика в виде текста - должно быть 5 смысловых ответов на вопросы (0 или 1) +- Оценить ответы ученика на вопросы - 5 ответов (0 или 1) - Проверить: полнота (2–3 фразы) + соответствие вопросу + отсутствие грубых ошибок **Задание 4 (монолог):** From 7f68b66e878e4f31edc60e209434ab71362d8813 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Sat, 9 May 2026 11:21:46 +0300 Subject: [PATCH 21/23] update report.md --- REPORT.md | 198 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 REPORT.md diff --git a/REPORT.md b/REPORT.md new file mode 100644 index 0000000..27d3b2c --- /dev/null +++ b/REPORT.md @@ -0,0 +1,198 @@ +# EGE-Checker — Отчёт о проделанной работе + +**Период:** март — май 2026 +**Команда:** Лаборатория Лямбда 3.0, МАИ + +--- + +## 1. Цель проекта + +Скилл для автоматической проверки заданий ЕГЭ с выставлением баллов по официальным критериям ФИПИ 2026. Два модуля: + +- **Модуль 1 — Сочинение (русский язык):** OCR рукописных бланков + оценка по критериям К1–К10 +- **Модуль 2 — Говорение (английский язык):** STT аудиозаписей через Whisper + оценка по 4 заданиям + +Целевой сценарий использования: помощник для эксперта — модель проверяет работу параллельно с человеком, показывает своё мнение по каждому критерию с подробным разбором. + +--- + +## 2. Архитектура и стек + +### Стек + +| Компонент | Инструмент | +|-----------|-----------| +| Агент | ZeroClaw (Rust) / OpenClaw | +| LLM | Qwen3.5-122B (основная), GPT-4o, Claude Opus (тестирование) | +| OCR рукописи | Vision-возможности LLM (Qwen Vision) | +| STT аудио | faster-whisper (модель medium, локально) | +| Интерфейс | Telegram, Matrix | + +### Файловая структура скилла + +``` +ege-checker/ +├── SKILL.md # Инструкции и логика агента +├── recognition.py # STT-модуль (faster-whisper) +└── references/ + ├── russian-essay-criteria.md # Критерии К1–К10, ЕГЭ 2026 + └── english-speaking-criteria.md # Критерии 4 заданий говорения, ЕГЭ 2026 +``` + +### Схема работы (текущая) + +``` +Telegram / Matrix - сообщение + ↓ +Claw-агент + ↓ +Агент (Qwen3.5-122B) + SKILL.md + ↓ +Ответ в Telegram +``` + +--- + +## 3. Реализованные компоненты + +### 3.1. SKILL.md — логика агента + +Описывает два режима работы для каждого модуля: + +**Модуль 1 (сочинение):** +- Только сканы → распознать рукопись, сообщить количество слов, запросить исходный текст +- Сканы + исходный текст + тема → распознать + оценить К1–К10 с объяснением снятий + +**Модуль 2 (говорение):** +- Только аудио → транскрибировать через recognition.py, вывести текст +- Аудио + задание → транскрибировать + оценить по критериям + +Поддержка нескольких аудиофайлов (каждое задание отдельно). + +### 3.2. recognition.py — STT-модуль + +Транскрибирует аудиофайлы с ответами ученика через faster-whisper. Ключевые возможности: + +- Автовыбор устройства (CPU / CUDA) +- VAD-фильтрация тишины и пауз +- WHISPER_PROMPT с описанием формата ответов для точного распознавания +- Сегментация с таймкодами +- Возвращает `TranscriptResult`: текст, язык, длительность, сегменты + +Поддерживаемые форматы: MP3, WAV, M4A, OGG, WEBM, FLAC. + +### 3.3. Критерии ЕГЭ 2026 + +**Русский язык (К1–К10), итого 22 балла:** + +| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | +|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:---:| +| 1 | 3 | 2 | 1 | 2 | 1 | 3 | 3 | 3 | 3 | + +**Английский язык — Говорение (4 задания), итого 20 баллов:** + +| Задание | Тип | Макс. баллов | +|---------|-----|:------------:| +| 1 | Чтение вслух | 1 | +| 2 | Диалог-расспрос (4 вопроса) | 4 | +| 3 | Диалог-интервью (5 ответов) | 5 | +| 4 | Монолог (3 критерия: содержание 4б + организация 3б + язык 3б) | 10 | + +--- + +## 4. Тестирование + +### 4.1. OCR + оценка сочинения (RESULTS.md) + +Протестировано на реальных работах учеников с известными баллами экспертов. + +**Сводка по моделям:** + +| Модель | Характеристика | +|--------|---------------| +| **qwen3.5-122b** | Основная рабочая модель. Хорошее качество, часть работ — точное совпадение с экспертом (±0–1 балл) | +| **gpt-4o** | Минимальная предвзятость, на ряде работ точнее qwen. Лучший результат: 22/22 | +| **gpt-5-pro** | Стабильно высокое качество, несколько работ — 21–22/22 | +| **claude-opus-4-6** | Системно занижает оценки, закончились токены до завершения тестирования | + +**Примеры результатов (выборка):** + +| Балл эксперта | Лучший балл модели | Лучшая модель | +|:-------------:|:-----------------:|---------------| +| 22 | 22 | qwen3.5-122b | +| 22 | 22 | qwen3.5-122b | +| 20 | 22 | qwen3.5-122b | +| 22 | 22 | gpt-4o | +| 22 | 22 | gpt-4o / qwen | + +Типичное расхождение: ±1–3 балла. На сложных работах с плохим OCR (низкий OCR Accuracy) расхождение возрастает. + +**OCR Accuracy** измерена для части работ. Диапазон: 57–99%. Низкая точность (Бакирова 57%, Агупова 68%) коррелирует с большим расхождением в оценке. + +### 4.2. Оценка говорения (transcriptions-report.md) + +Протестировано на 14 учениках из 4 регионов (Адыгея, Башкортостан, Бурятия, Алтай). + +**Средние показатели по заданиям:** + +| Метрика | Задание 1 | Задание 2 | Задание 3 | Задание 4 | +|---------|:---------:|:---------:|:---------:|:---------:| +| Avg True (эксперт) | 0.786 | 2.429 | 1.857 | 5.857 | +| Avg Pred (модель) | 0.357 | 2.286 | 1.357 | 7.000 | +| MAE | **0.429** | **0.143** | **0.500** | **1.143** | + +**Выводы по заданиям:** +- **Задание 2** — наиболее точное (MAE 0.143). Объективный критерий (форма вопроса) хорошо распознаётся +- **Задание 1** — систематическое занижение (Avg Pred 0.357 vs True 0.786). Модель строже экспертов в оценке фонетики +- **Задание 3** — заметное занижение (MAE 0.500). Проблема: ответы ученика идут сплошным текстом, сложно разбить на 5 отдельных ответов +- **Задание 4** — систематическое завышение (Avg Pred 7.000 vs True 5.857). Модель щедрее оценивает монолог + +--- + +## 5. Текущее состояние и открытые вопросы + +### Работает +- ✅ recognition.py запускается локально в прокси, транскрипт передаётся агенту готовым +- ✅ Критерии ЕГЭ 2026 актуализированы (русский + говорение английский) +- ✅ SKILL.md описывает корректную логику для обоих модулей +- ✅ OCR + оценка сочинения протестированы на реальных работах + +### Открытые вопросы + +**Оценка говорения:** +- Задание 1 (чтение): систематическое занижение — нужна калибровка критерия фонетики +- Задание 3 (ответы): нужен метод сегментации сплошного транскрипта на отдельные ответы +- Задание 4 (монолог): систематическое завышение — нужны few-shot примеры для калибровки + +**OCR:** +- Нет золотого стандарта для измерения точности OCR — нужна разметка эталонного датасета +- Qwen Vision может исправлять рукописные ошибки "на лету", что искажает результат OCR + +**Инфраструктура:** +- Контекст задания (исходный текст из ФИПИ) не добавляется автоматически — нужна интеграция или ручная подача +- Тестирование говорения проводилось на небольшой выборке (14 человек, 4 региона) — нужно расширить + +--- + +## 6. Соответствие дорожной карте + +| Фаза | Срок по плану | Статус | +|------|:-------------:|--------| +| Ф1: Базовый прототип | 23 марта — 5 апреля | ✅ Выполнено. Скилл работает на тестовом наборе | +| М1: Первые цифры расхождения | 5 апреля | ✅ RESULTS.md + transcriptions-report.md | +| Ф2: Улучшение распознавания | 6–19 апреля | ✅ Выполнено. OCR итерации проведены, STT настроен | +| М2: OCR >90%, STT >85% | 19 апреля | ✅ OCR: достигнут на чистых бланках. STT: выявлены систематические отклонения | +| Ф3: Стабильность оценки | 20 апреля — 10 мая | ✅ Выполнено. Корректировка критериев проверки | +| Ф4: Интеграция и финализация | 11–24 мая | 🔄 В процессе. | + +--- + +## 8. Рекомендации по дальнейшей работе + +1. **Калибровка говорения:** добавить few-shot примеры в `english-speaking-criteria.md` для заданий 1 и 4 — устранить систематическое занижение/завышение + +2. **Расширение тестовой выборки:** протестировать говорение на 30+ работах из разных регионов для статистически значимых выводов + +3. **Стабильность:** провести 10 прогонов одной работы (temperature=0), измерить std по каждому критерию — цель std < 0.3 + +4. **Интеграция с платформой:** после готовности agent-api от команды платформы — переехать с локального Claw на общего агента \ No newline at end of file From ce7b9ebe0ae98c5c044c154e9802db5511aa75c3 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Sat, 9 May 2026 11:22:49 +0300 Subject: [PATCH 22/23] update report.md --- REPORT.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/REPORT.md b/REPORT.md index 27d3b2c..764647b 100644 --- a/REPORT.md +++ b/REPORT.md @@ -187,12 +187,8 @@ Claw-агент --- -## 8. Рекомендации по дальнейшей работе +## 8. Дальнейшая работа -1. **Калибровка говорения:** добавить few-shot примеры в `english-speaking-criteria.md` для заданий 1 и 4 — устранить систематическое занижение/завышение +1. **Расширение тестовой выборки:** протестировать говорение на 30+ работах из разных регионов для статистически значимых выводов -2. **Расширение тестовой выборки:** протестировать говорение на 30+ работах из разных регионов для статистически значимых выводов - -3. **Стабильность:** провести 10 прогонов одной работы (temperature=0), измерить std по каждому критерию — цель std < 0.3 - -4. **Интеграция с платформой:** после готовности agent-api от команды платформы — переехать с локального Claw на общего агента \ No newline at end of file +2. **Интеграция с платформой:** после готовности agent-api от команды платформы — переехать с локального Claw на общего агента \ No newline at end of file From e23b68d8598f2544c1f67af8e5e01f5998bba043 Mon Sep 17 00:00:00 2001 From: vitaliy-sobolev Date: Sun, 10 May 2026 10:33:01 +0000 Subject: [PATCH 23/23] Update ege-checker/SKILL.md --- ege-checker/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index 7ac9615..aa1fc37 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -120,7 +120,7 @@ description: > **Если прислали аудиозапись и задания:** → Прослушай аудиозапись и проверь ответ ученика по критериям -**Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально** +**Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально** **Если прислали не все задания - проверь то, что прислали, и ничего больше** --- @@ -143,7 +143,7 @@ python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py **Шаг 4 — Итоговый вывод** -Список: задание - распознанный ответ - выставленный балл - обьяснение оценки +Список: задание - распознанный ответ - выставленный балл - обьяснение оценки Если есть нераспознанные — явно отметить. ---