feat(listening): interactive listening comprehension trainer with neural voiceover and auto-evaluation
This commit is contained in:
1 parent
a6fb4349e9
commit
7893b353aa
8 files changed
+1026
-3
No files matched your search
+92
-1
@@ -233,7 +233,8 @@
|
||||
<button class="srs-tab" data-mode="quiz">🎯 4 Варианта</button>
|
||||
<button class="srs-tab" data-mode="typing">✍️ Набор слова</button>
|
||||
<button class="srs-tab" data-mode="cloze">🧩 Пропуски</button>
|
||||
<button class="srs-tab" data-mode="dictation" style="display: none;">🎧 Диктант</button>
|
||||
<button class="srs-tab" data-mode="dictation">🎧 Диктант</button>
|
||||
<button class="srs-tab" data-mode="listening">📻 Аудирование</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -492,6 +493,96 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- MODE 6: Listening Comprehension Q&A -->
|
||||
<div id="srs-mode-listening" class="srs-mode-container hidden">
|
||||
<div class="trainer-card listening-card">
|
||||
<div class="trainer-header listening-header-row">
|
||||
<div class="listening-tag-wrap">
|
||||
<span class="mode-tag">📻 Аудирование & Вопросы</span>
|
||||
<span id="listening-level-badge" class="level-badge badge-b1">B1</span>
|
||||
<span id="listening-topic-badge" class="topic-badge">Tech</span>
|
||||
</div>
|
||||
<div class="listening-filters">
|
||||
<select id="listening-topic-select" class="select-styled select-xs" title="Выбрать тему">
|
||||
<option value="all">🌐 Все темы</option>
|
||||
<option value="tech">💻 Технологии & IT</option>
|
||||
<option value="daily">☕ Повседневная жизнь</option>
|
||||
<option value="travel">✈️ Путешествия</option>
|
||||
<option value="science">🔬 Наука</option>
|
||||
<option value="business">💼 Работа & Бизнес</option>
|
||||
<option value="cards">📚 Мои слова из словаря</option>
|
||||
</select>
|
||||
<select id="listening-speed-select" class="select-styled select-xs" title="Скорость речи">
|
||||
<option value="1.0">⚡ 1.0x</option>
|
||||
<option value="0.75">🐢 0.75x</option>
|
||||
<option value="1.25">🚀 1.25x</option>
|
||||
</select>
|
||||
<button type="button" id="listening-new-scenario-btn" class="btn btn-xs btn-outline" title="Загрузить другую ситуацию">
|
||||
🔄 Другая история
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="listening-hero">
|
||||
<div class="listening-title-box">
|
||||
<h3 id="listening-title" class="listening-scenario-title">Загрузка аудио-ситуации...</h3>
|
||||
<p class="listening-subtitle">Прослушайте аудио на английском и ответьте на вопрос диктора</p>
|
||||
</div>
|
||||
|
||||
<div class="listening-audio-controls">
|
||||
<div class="audio-control-card">
|
||||
<div class="audio-control-label">1. Аудио-история (контекст):</div>
|
||||
<button type="button" id="listening-play-story-btn" class="btn btn-primary btn-md listening-play-btn">
|
||||
🔊 Слушать историю <span class="kbd-sub"><kbd>Space</kbd></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="audio-control-card">
|
||||
<div class="audio-control-label">2. Вопрос от диктора:</div>
|
||||
<button type="button" id="listening-play-question-btn" class="btn btn-outline btn-md listening-play-btn">
|
||||
❓ Слушать вопрос
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="listening-hint-bar">
|
||||
<button type="button" id="listening-toggle-hint-btn" class="btn btn-xs btn-ghost">💡 Подсказка к вопросу</button>
|
||||
<span id="listening-hint-text" class="listening-hint-text hidden"></span>
|
||||
</div>
|
||||
|
||||
<form id="listening-form" class="trainer-form listening-form">
|
||||
<div class="input-action-row">
|
||||
<input type="text" id="listening-input" class="input-styled input-hero" placeholder="Напишите ответ на английском по услышанному..." autocomplete="off" spellcheck="false" autofocus>
|
||||
<button type="submit" id="listening-submit-btn" class="btn btn-primary">Проверить ответ</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="listening-feedback-box" class="trainer-feedback-box hidden"></div>
|
||||
|
||||
<div id="listening-revealed-box" class="listening-revealed-card hidden">
|
||||
<div class="revealed-section">
|
||||
<span class="revealed-label">🎯 Образцовый ответ:</span>
|
||||
<strong id="listening-ideal-answer" class="revealed-val text-success"></strong>
|
||||
</div>
|
||||
<div class="revealed-section">
|
||||
<span class="revealed-label">📖 Вопрос (текст):</span>
|
||||
<p id="listening-revealed-question" class="revealed-text"></p>
|
||||
<small id="listening-revealed-question-ru" class="text-muted"></small>
|
||||
</div>
|
||||
<div class="revealed-section">
|
||||
<span class="revealed-label">📜 Полный текст истории:</span>
|
||||
<p id="listening-revealed-story" class="revealed-text"></p>
|
||||
<small id="listening-revealed-story-ru" class="text-muted"></small>
|
||||
</div>
|
||||
<div class="listening-next-bar">
|
||||
<button type="button" id="listening-next-btn" class="btn btn-primary btn-md">
|
||||
Следующая ситуация ➔ <span class="kbd-sub"><kbd>Enter</kbd></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Session Complete Summary Screen -->
|
||||
<div id="srs-summary" class="srs-summary-card hidden">
|
||||
<div class="summary-trophy">🏆</div>
|
||||
|
||||
Reference in new issue
Block a user