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 и др.).
|
оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.).
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ description: >
|
||||||
| Модуль | Вход — только распознавание | Вход — распознавание + оценка |
|
| Модуль | Вход — только распознавание | Вход — распознавание + оценка |
|
||||||
|--------|----------------------------|-------------------------------|
|
|--------|----------------------------|-------------------------------|
|
||||||
| Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема |
|
| Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема |
|
||||||
| Аудирование (английский) | Аудиозапись | Аудиозапись + задания (текст, ключевые фразы, вопросы, план, фотографии) |
|
| Говорение (английский) | Аудиозапись | Аудиозапись + задания (текст, ключевые фразы, вопросы, план, фотографии) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -110,56 +110,38 @@ description: >
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Модуль 2: Аудирование ЕГЭ по английскому
|
## Модуль 2: Говорение ЕГЭ по английскому
|
||||||
|
|
||||||
### Логика запуска
|
### Логика запуска
|
||||||
|
|
||||||
**Если прислали только аудиозапись:**
|
**Если прислали только аудиозапись:**
|
||||||
→ Распознать ответы ученика через recognition.py и вывести их списком.
|
→ Прослушай аудиозапись и выведи транскрипт
|
||||||
|
|
||||||
**Если прислали аудиозапись и задания:**
|
**Если прислали аудиозапись и задания:**
|
||||||
→ Распознать ответы ученика через recognition.py и вывести их списком.
|
→ Прослушай аудиозапись и проверь ответ ученика по критериям
|
||||||
→ Сверить полученные ответы для конкретных заданий по критериям и сообщить баллы.
|
|
||||||
|
|
||||||
**Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально**
|
**Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально**
|
||||||
**Если прислали не все задания - проверь то, что прислали, и ничего больше**
|
**Если прислали не все задания - проверь то, что прислали, и ничего больше**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Шаг 1 — Сохранить аудиофайл**
|
**Шаг 1 — Запустить recognition.py**
|
||||||
|
|
||||||
```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**
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py <tmp_path>
|
python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py <tmp_path>
|
||||||
```
|
```
|
||||||
|
|
||||||
**Шаг 3 — Удалить временный файл**
|
**Шаг 2 - Загрузить критерии**
|
||||||
|
|
||||||
```python
|
Прочитай `references/english-speaking-criteria.md` — критерии 1-4 задания с баллами (ЕГЭ 2026).
|
||||||
if os.path.exists(tmp_path):
|
|
||||||
os.remove(tmp_path)
|
|
||||||
```
|
|
||||||
|
|
||||||
**Шаг 4 - Загрузить критерии**
|
**Шаг 3 — Оценить задания по критериям**
|
||||||
|
|
||||||
Прочитай `references/english-listening-criteria.md` — критерии 1-4 задания с баллами (ЕГЭ 2026).
|
|
||||||
|
|
||||||
**Шаг 5 — Оценить задания по критериям**
|
|
||||||
|
|
||||||
Для каждого критерия:
|
Для каждого критерия:
|
||||||
- Объясни снятие баллов — что именно не выполнено и почему
|
- Объясни снятие баллов — что именно не выполнено и почему
|
||||||
- Выставь балл
|
- Выставь балл
|
||||||
|
|
||||||
**Шаг 6 — Итоговый вывод**
|
**Шаг 4 — Итоговый вывод**
|
||||||
|
|
||||||
Список: задание - распознанный ответ - выставленный балл - обьяснение оценки
|
Список: задание - распознанный ответ - выставленный балл - обьяснение оценки
|
||||||
Если есть нераспознанные — явно отметить.
|
Если есть нераспознанные — явно отметить.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
recognition.py — модуль распознавания аудиофайла с ответами ученика ЕГЭ (аудирование, английский язык).
|
recognition.py — модуль распознавания аудиофайла с ответами ученика ЕГЭ (говорение, английский язык).
|
||||||
|
|
||||||
Зависимости:
|
Зависимости:
|
||||||
pip install faster-whisper
|
pip install faster-whisper
|
||||||
|
|
@ -26,9 +26,9 @@ DEFAULT_MODEL = "medium"
|
||||||
WHISPER_PROMPT = (
|
WHISPER_PROMPT = (
|
||||||
"Student answers to EGE English speaking exam. "
|
"Student answers to EGE English speaking exam. "
|
||||||
"Task one: read aloud. "
|
"Task one: read aloud. "
|
||||||
"Task two: ask five direct questions. "
|
"Task two: ask four direct questions. "
|
||||||
"Task three: describe a photo. "
|
"Task three: answer five questions. "
|
||||||
"Task four: compare two photos."
|
"Task four: monologue - compare two photos. "
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -182,7 +182,7 @@ if __name__ == "__main__":
|
||||||
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
|
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="Распознавание аудиоответов ЕГЭ (аудирование, английский язык)"
|
description="Распознавание аудиоответов ЕГЭ (говорение, английский язык)"
|
||||||
)
|
)
|
||||||
parser.add_argument("audio", help="Путь к аудиофайлу")
|
parser.add_argument("audio", help="Путь к аудиофайлу")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
| Задание | Тип | Макс. баллов |
|
| Задание | Тип | Макс. баллов |
|
||||||
|---------|-----|-------------|
|
|---------|-----|-------------|
|
||||||
| 1 | Чтение вслух | 1 |
|
| 1 | Чтение текста | 1 |
|
||||||
| 2 | Диалог-расспрос (вопросы) | 4 |
|
| 2 | Диалог-расспрос (вопросы) | 4 |
|
||||||
| 3 | Диалог-интервью (ответы) | 5 |
|
| 3 | Диалог-интервью (ответы) | 5 |
|
||||||
| 4 | Монологическое высказывание | 10 |
|
| 4 | Монологическое высказывание | 10 |
|
||||||
|
|
@ -17,12 +17,12 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Задание 1 — Чтение вслух (0–1 балл)
|
## Задание 1 — Чтение текста (0–1 балл)
|
||||||
|
|
||||||
| Балл | Критерий |
|
| Балл | Критерий |
|
||||||
|------|----------|
|
|------|----------|
|
||||||
| 1 | Речь воспринимается легко: необоснованные паузы отсутствуют; фразовое ударение и интонационные контуры, произношение слов без нарушений нормы. Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл |
|
| 1 | Слова употреблены без ошибок. Допускается не более 5 фонетических ошибок, в том числе 1–2 ошибки, искажающие смысл |
|
||||||
| 0 | Речь воспринимается с трудом из-за большого количества неестественных пауз, запинок, неверной расстановки ударений и ошибок в произношении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл |
|
| 0 | Есть ошибки в употреблении слов, ИЛИ сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -94,14 +94,13 @@
|
||||||
## Алгоритм проверки агентом
|
## Алгоритм проверки агентом
|
||||||
|
|
||||||
### Что нужно для оценки
|
### Что нужно для оценки
|
||||||
1. Аудиозапись ответа ученика (транскрибируется через recognition.py)
|
1. Аудиозапись ответа ученика
|
||||||
2. Задание (текст - 1 задание, 4 ключевых фразы - 2 задание, 5 вопросов интервьювера - 3 задание, 2 фотографии и план монолога - 4 задание)
|
2. Задание (текст для 1 задания, 4 ключевых фразы для 2 задания, 5 вопросов интервьювера для 3 задания, 2 фотографии и план монолога для 4 задания)
|
||||||
|
|
||||||
### Логика оценки по заданиям
|
### Логика оценки по заданиям
|
||||||
|
|
||||||
**Задание 1 (чтение вслух):**
|
**Задание 1 (чтение вслух):**
|
||||||
- Считать фонетические ошибки по транскрипту
|
- Проверить правильность транскрипта и отсутствие фонетических, грамматических ошибок
|
||||||
- Отметить паузы и запинки если есть
|
|
||||||
- Вынести 0 или 1 балл с обоснованием
|
- Вынести 0 или 1 балл с обоснованием
|
||||||
|
|
||||||
**Задание 2 (вопросы):**
|
**Задание 2 (вопросы):**
|
||||||
Loading…
Add table
Add a link
Reference in a new issue