From 76de04fcaeb2b918bf54c000b4ba294afec71c49 Mon Sep 17 00:00:00 2001 From: shuler7 Date: Tue, 5 May 2026 10:58:38 +0300 Subject: [PATCH] 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 (вопросы):**