update english speaking skill pipeline

This commit is contained in:
shuler7 2026-05-05 10:58:38 +03:00
parent cdb8ed46ff
commit 76de04fcae
3 changed files with 24 additions and 43 deletions

View file

@ -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 <tmp_path>
```
**Шаг 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 — Итоговый вывод**
Список: задание - распознанный ответ - выставленный балл - обьяснение оценки
Если есть нераспознанные — явно отметить.

View file

@ -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(

View file

@ -9,7 +9,7 @@
| Задание | Тип | Макс. баллов |
|---------|-----|-------------|
| 1 | Чтение вслух | 1 |
| 1 | Чтение текста | 1 |
| 2 | Диалог-расспрос (вопросы) | 4 |
| 3 | Диалог-интервью (ответы) | 5 |
| 4 | Монологическое высказывание | 10 |
@ -17,12 +17,12 @@
---
## Задание 1 — Чтение вслух (01 балл)
## Задание 1 — Чтение текста (01 балл)
| Балл | Критерий |
|------|----------|
| 1 | Речь воспринимается легко: необоснованные паузы отсутствуют; фразовое ударение и интонационные контуры, произношение слов без нарушений нормы. Допускается не более 5 фонетических ошибок, в том числе 12 ошибки, искажающие смысл |
| 0 | Речь воспринимается с трудом из-за большого количества неестественных пауз, запинок, неверной расстановки ударений и ошибок в произношении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл |
| 1 | Слова употреблены без ошибок. Допускается не более 5 фонетических ошибок, в том числе 12 ошибки, искажающие смысл |
| 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 (вопросы):**