먼저, 귀 기울이기
+
+ 에스의 안내와 소음 속 문장을 들어요.
+
+ 한 라운드 동안 같은 난이도로 들어요.
+
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3 ❯ tests/assets.test.ts (2 tests | 1 failed) 336ms ❯ 저장한 한국어 neural 음성 자산 (2) × 0.2.3 neural provider·voice·prosody와 실측 도구 버전을 기록한다 10ms ❯ tests/audio.test.ts (11 tests | 3 failed) 272ms ❯ 오디오 재생 수명과 믹서 (8) × intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다 52ms × intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 45ms × target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 29ms ❯ tests/neural-release.test.ts (3 tests | 2 failed) 64ms × 0.2.3 버전을 package·lock·UI·index·문서에 일치시킨다 48ms × 현재 문서·manifest·CHANGELOG는 0.2.3 동작과 역사 보존을 설명한다 11ms ❯ tests/game.test.ts (16 tests | 1 failed) 50ms ❯ 출제와 정답 판정 (5) × 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 33ms ❯ tests/App.test.tsx (18 tests | 1 failed) 3592ms ❯ 시작부터 결과까지 사용자 흐름 (13) × 브랜드·버전·크레딧을 보여주며 직접 시작하기 전에는 재생하지 않는다 44ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 8 ⎯⎯⎯⎯⎯⎯⎯ FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 브랜드·버전·크레딧을 보여주며 직접 시작하기 전에는 재생하지 않는다 TestingLibraryElementError: Unable to find an element with the text: v0.2.3. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style [36m
[39m [36m[39m [36m[39m [0m 귀를 기울이면, 발견하는 즐거움[0m [36m
[39m [36m[39m
[0m도시의 소리 사이에 에스가 숨겨 둔 단어.[0m
[36m
[39m
[0m조금 더 귀 기울여, 오늘의 행운을 찾아보세요.[0m
[36m
{describeSnr(selectedSnr)} 범위 −12~+12 dB · 1 dB 간격. + 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. + 변경은 다음 재생·재청취부터 적용돼요.
++ 귀를 기울이면, 발견하는 즐거움 +
+
+ 도시의 소리 사이에 에스가 숨겨 둔 단어.
+
+ 조금 더 귀 기울여, 오늘의 행운을 찾아보세요.
+
한 단계에서 세 문제를 풀고, 완료 후 다음 단계에 도전해요.
++ {ENVIRONMENTS.find((e) => e.id === environment) + ?.description ?? + "길거리부터 비 오는 거리까지, 매번 다른 공간을 만나요."} +
++ 편안한 작은 음량으로 시작해 + 보세요. +
+ +
+ 에스의 안내와 소음 속 문장을 들어요.
+
+ 한 라운드 동안 같은 난이도로 들어요.
+
+ 소리가 끝나면 질문이 나타나요.
+
+ 보기에서 고르거나 직접 입력해요.
+
+ 세 문제 뒤 나의 결과를 확인해요.
+
+ 놓쳤다면 언제든 다시 들어도 좋아요.
+
+ 작은 소리에 집중한 당신, 다음 탐험에서도 만나요. +
+응답 {result.answered}문항 · 정답 {result.correct}문항
+| 난이도 | +SNR | +맞힌 문제 | +
|---|---|---|
| {row.level}단계 | ++ {[...new Set(game.answers.filter(a => a.level === row.level).map(a => a.db))].map(formatSnr).join(", ") || formatSnr(LEVELS[row.level - 1]!.db)} + | ++ {row.correct} / {row.total} + | +
단계 × 100점 + 연속 정답 보너스 (최대 40점)
+ {!game.endedEarly && ( + + )} + ++ {question.mode === "choice" + ? "가장 또렷하게 기억나는 단어를 골라 주세요." + : "기억나는 단어 하나를 입력해 주세요."} +
+ {question.mode === "choice" ? ( ++ 숨겨진 단어는 {question.word.answer} +
+{question.sentence}+
+ 내 답: {game.answers.at(-1)!.input} · + + {game.answers.at(-1)!.points}점 +
+ +
+ 문장이 끝나면 질문이 나타나요.
+
+ 작은 단어 하나를 기억해 주세요.
+
+ {game.phase === "loading" + ? "소리를 준비하고 있어요…" + : game.phase === "playing" + ? "에스의 목소리를 듣고 있어요…" + : "준비되면 문장 듣기를 눌러 주세요."} +
+{game.error}
+ +