Skip to content

v2.1.1: 편집 패널 값 맞추기, 홈 안내, 크기 단계 판정, 미리보기 복구, 개발자 표시·기록 - #9

Merged
amophi merged 10 commits into
mainfrom
fix/v2.1.1
Nov 11, 2026
Merged

amophi merged 10 commits into
mainfrom
fix/v2.1.1

Conversation

@amophi

@amophi amophi commented Nov 11, 2026

Copy link
Copy Markdown
Collaborator

v2.1을 낸 뒤 남겨 두었던 결함을 모두 고칩니다. 버전 2.1.1.

고친 것

  • 오버레이 편집 패널의 옛 값
    • F4 편집 패널을 연 채 런처에서 모드·크기·표시·색을 바꾸면 패널 칸이 옛 값을 보였고, 그 슬라이더를 움직이면 옛 값이 새 모드에 쓰였습니다.
    • 런처에서 설정을 바꾸면 열려 있는 패널도 새 값으로 채웁니다. 패널에서 무언가를 끌고 있는 동안에는 건드리지 않고 놓은 뒤에 채웁니다.
  • 홈 안내의 스위치 이름
    • 쉬운 설정에서는 줄에 '환경음'만 보이는데, 안내는 '환경음 표시' 스위치를 켜라고 했습니다. 쉬운 설정일 때는 화면에 보이는 이름을 인용합니다.
  • 쉬운 설정의 크기 단계
    • 크기 49.5는 슬라이더에 "50"으로 보이는데 '보통'으로 인식되지 않았습니다. 이제 슬라이더에 보이는 수가 같으면 그 단계로 봅니다.
    • 자세한 설정에서 값을 바꾼 뒤 쉬운 설정으로 넘어올 때, 한 프레임 동안 이전 선택이 보이던 것도 고쳤습니다.
  • 사람 소리 미리보기
    • Silero가 깨진 값(유한하지 않거나 0~1 밖)을 한 번 내도 미리보기가 꺼지지 않고, 상태를 비운 뒤 계속 돕니다. Android #456과 같습니다.
  • 개발자 모드
    • HUD가 100ms 타이머만으로 읽어, 그보다 짧게 사는 미리보기가 HUD와 기록에서 빠질 수 있었습니다. AI가 결과를 게시하면 바로 읽습니다(Android #412). 판정 스레드는 UI 스레드를 기다리지 않습니다.
    • 기록(CSV) 맨 끝에 speech_preview 열을 더했습니다. Android와 이름·자리가 같습니다.
    • 미리보기에 긴 이름이 실려도 HUD 첫 줄이 58자 안에 들도록 이름 끝을 말줄임표로 줄입니다(Android #461).

확인

  • 빌드 경고 0개, 단위 시험 1311개 통과(v2.1은 1218개)
  • 항목마다 새 시험이 고치기 전 코드에서 실패하는 것을 확인했습니다.
  • 숨은 데스크톱에서 실행 확인: 크기 49.5/50.5 → 보통, 74.5·75.5 → 선택 없음과 안내, 보기 전환 직후의 선택 상태, v2.1에서 고친 것들(단축키 대기 취소, 원형 카드, 예전 설정 파일, 튜토리얼 범례)

확인하지 못한 것

  • 이 PC에는 소리 출력 장치가 없어 오버레이가 켜지지 않습니다. 편집 패널 값 맞추기와 HUD 즉시 읽기는 시험과 코드 읽기로만 확인했습니다.

미리보기도 HUD 가 읽은 그대로 한 줄로 남는데 정규 결과와 가를 칸이 없어, 화면에만 먼저 보인 대화음이 확정 결과와 섞여 세어졌다.
칸 이름(speech_preview)과 자리(맨 끝)는 Android #456 과 같다. 앞의 칸 번호로 읽는 스크립트는 그대로 읽힌다.
미리보기의 종류 칸("SPEECH ~PREVIEW")은 정규 결과보다 여덟 자 길고, 기본 종류가 대화음인 이름 가운데 가장 긴 것이 꼭 58자라 여유가 없다.
기존 시험은 정규 결과의 첫 줄만 보았다. 1위가 환경음 이름인데 투표가 대화음인 프레임은 이 시험 밖이다(시험의 주석에 적었다).
자세한 설정에서 크기가 49.5 면 슬라이더는 "50" 이라 적는데 쉬운 설정은 보통이 아니라고 했다(차이가 0.5 보다 작아야 했다).
슬라이더 줄의 글자를 만드는 규칙을 Core 의 ValueText 로 옮기고, 단계인지도 그 글자로 견준다. 진하기도 같다.
.NET 의 F0 는 꼭 .5 인 값을 짝수 쪽으로 적어(50.5 는 "50", 74.5 는 "74") 부등호로는 맞출 수 없어서 글자를 견준다.
확률이 유한하지 않거나 0~1 밖이면 SileroInference 가 예외를 던졌고, 미리보기 스레드는 그것을 모델 실패로 받아 끝났다.
그 뒤로는 장치가 바뀌거나 앱을 다시 켤 때까지 미리보기가 조용히 꺼져 있었다.
이제 값을 그대로 돌려받아, 밀린 소리를 버릴 때처럼 모델 상태와 걸린 후보를 비우고 다음 덩어리부터 이어 간다(Android #456).
모델을 불러오지 못하거나 ONNX Runtime 이 던지는 실패는 전처럼 미리보기만 끈다.
HUD 와 결과 기록은 100ms 타이머로만 읽었다. 말소리 미리보기는 다음 정규 결과가 오면 사라져 100ms 도 못 사는 일이 있어,
화면에도 CSV 에도 한 번도 남지 않을 수 있었다(Android #412/#413).
- RealtimeAiPipeline 이 정규 결과를 게시하거나 지운 틱, 미리보기를 게시한 미리보기 스레드에서 알린다. 추론 잠금 밖에서 부르고,
  받는 쪽이 던져도 추론은 이어진다.
- 오버레이는 HUD 를 읽는 동안에만 그 알림을 UI 스레드의 읽기 하나로 넘긴다(Core 의 AiHudRefresh). 몰려 온 알림은 하나로 합친다.
- 타이머는 그대로 둔다. 결과가 오지 않는 동안의 나이와 소리 크기를 읽는다.
AI 를 쓸 수 없고 환경음 표시도 꺼 둔 때의 안내는 "설정 탭에서 ‘환경음 표시’ 스위치를 켜세요"라고 했다.
쉬운 설정의 줄에는 종류 이름 "환경음"만 적혀 있어, 그 화면을 쓰는 사람은 화면에 없는 이름을 찾아야 했다.
설정 탭이 쉬운 설정이면 종류 이름을 인용하고, 두 화면을 오가면 떠 있는 안내도 새 화면의 이름으로 바꾼다. 문자열 표는 그대로다.
보이게 될 때 값을 다시 읽는 일을 모두 배치 뒤(Loaded)로 미뤄서, 자세한 설정에서 모양·크기·소리 종류를 바꾸고 넘어오면
한 프레임 동안 이전 선택이 보였다. Loaded 는 그리기보다 늦다.
선택 상태(이름 붙인 요소의 속성)는 보이게 된 그때 맞추고, 배치가 있어야 하는 카드 그림 다시 그리기·움직이기와
화면 읽어주기 알림만 미룬다. 서식이 붙지 않은 카드의 그림은 전처럼 건너뛴다.
편집 패널(F4)을 연 채 런처의 자세한 설정이나 쉬운 설정에서 모드·크기·스위치·색을 바꾸면 패널의 칸은 옛 값을 보였다.
그 슬라이더를 움직이면 옛 값이 새 모드에 쓰였다. 오버레이 → 런처 방향만 맞추고 있었다.
- 런처가 설정을 쓰고 저장하는 곳(칸, 색, 초기화, 단축키, 쉬운 설정, 출력 장치의 채널 수)마다 오버레이에 알린다.
  오버레이가 알려 온 변경을 런처의 칸에 옮기는 중에는 되돌려 알리지 않는다.
- 오버레이는 패널이 열려 있을 때만 다시 채운다. 사용자가 패널에서 무언가를 끌고 있으면(마우스를 잡은 요소가 있으면)
  건드리지 않고 놓은 뒤에 채운다(Core 의 EditPanelSync). 채우는 동안에는 칸의 처리기가 저장하거나 런처에 알리지 않는다.
- 오버레이의 캡처 엔진이 채널 수를 먼저 바꾼 경우에도 패널의 사운드 모드 칸을 맞춘다.
- 단축키 입력을 기다리는 버튼의 안내 글자는 패널을 다시 채워도 남긴다.
미리보기의 이름은 그 프레임의 1위 이름이라 긴 환경음 이름이 실릴 수 있고, 종류 칸이 'SPEECH ~PREVIEW' 로 길어져 첫 줄이 59~63자가 됐다. 58자를 넘으면 이름 끝을 말줄임표로 줄인다(Android #461 과 같다). 정규 결과의 이름은 줄지 않고 기록에는 온전한 이름이 남는다. 시험을 521개 이름 모두로 넓혔다.
@amophi
amophi merged commit 9f6a4bf into main Nov 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant