update english speaking skill pipeline
This commit is contained in:
parent
cdb8ed46ff
commit
76de04fcae
3 changed files with 24 additions and 43 deletions
|
|
@ -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 — Итоговый вывод**
|
||||
|
||||
Список: задание - распознанный ответ - выставленный балл - обьяснение оценки
|
||||
Если есть нераспознанные — явно отметить.
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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 (вопросы):**
|
||||
Loading…
Add table
Add a link
Reference in a new issue