From ffca84bf7b7e332c9624bb50ed413b282af72240 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 23 Nov 2025 14:12:52 +0800 Subject: [PATCH] [O] Typing experience --- src/lib/ui/player/IMEHelper.ts | 4 +++- src/lib/ui/player/Lyrics.svelte | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/ui/player/IMEHelper.ts b/src/lib/ui/player/IMEHelper.ts index f4a5fa8..0e9d70c 100644 --- a/src/lib/ui/player/IMEHelper.ts +++ b/src/lib/ui/player/IMEHelper.ts @@ -17,7 +17,9 @@ export function processLrcLine(line: LyricSegment[]): ProcLrcLine { // Fuzzy matching rules const fuzzyMatch = [['わ', 'は'], ['を', 'お'], ['ず', 'づ'], ['が', 'は'], ['ぁ', 'あ'], ['ぃ', 'い'], ['ぅ', 'う'], ['ぇ', 'え'], ['ぉ', 'お'], - ['ゃ', 'や'], ['ゅ', 'ゆ'], ['ょ', 'よ'], ['っ', 'つ']] + ['ゃ', 'や'], ['ゅ', 'ゆ'], ['ょ', 'よ'], ['っ', 'つ'], + ['た', 'だ'], ['て', 'で'], +] export function fuzzyEquals(kana1: string, kana2: string): string { [kana1, kana2] = [toHiragana(kana1), toHiragana(kana2)] if (kana1 === kana2) return 'right' diff --git a/src/lib/ui/player/Lyrics.svelte b/src/lib/ui/player/Lyrics.svelte index 0e50777..8837b3a 100644 --- a/src/lib/ui/player/Lyrics.svelte +++ b/src/lib/ui/player/Lyrics.svelte @@ -36,6 +36,7 @@ let sts = allStates(l, seg) if (sts.every(s => s === 'right')) return 'right' if (sts.some(s => s === 'wrong')) return 'wrong' + if (sts.some(s => s === 'fuzzy')) return 'fuzzy' return 'typing' }