Files

3.1 KiB

TASK — Find-Word v0.1.1 Korean neural voice upgrade

사용자 지시

현재 v0.1의 한국어 음성이 제대로 만들어지지 않았다. 음성 품질을 높이고 샘플을 다시 생성하며 버전을 0.1.1로 올린다. 모든 소스는 Gitea에 push 및 main merge할 예정이다. Codex는 구현만 하고 commit/push/deploy는 하지 않는다.

고정 계약

  • 정확한 크레딧: Designed by OZ at Heat-T Medical Inc.
  • canonical repository: https://source.ibit.kr/OZ-Group/Find-Word
  • 작업 브랜치: fix/v0.1.1-neural-voice
  • 버전: UI/package/docs/manifest 모두 0.1.1
  • 한국어 상세 소스 주석 유지
  • 기존 10개 mechanic, 100개 문장 조합, 8개 환경, 5단계 SNR, 객관식·주관식 기능 보존

선택한 생성 방식

  • 직접 생성한 사전 샘플에서 사용 가능한 고품질 음성: ko-KR-HyunsuMultilingualNeural
  • 생성 클라이언트: edge-tts==7.3.1
  • 권장 prosody: rate -6%, pitch -4Hz
  • 앱 런타임에는 외부 TTS/API 요청이 없어야 한다.
  • 생성 시 임시 MP3를 받아 ffmpeg로 24kHz mono PCM s16 WAV로 변환한다.
  • 음성 간 레벨 편차와 peak를 완화하되 발음을 훼손하는 과도한 DSP를 하지 않는다.
  • 네트워크·provider 오류에 bounded retry와 명확한 실패를 제공한다.
  • 부분 실패가 기존 public/audio를 훼손하지 않도록 임시 디렉터리에서 전체 생성·검증 후 원자 교체한다.
  • API 키·쿠키·인증정보를 저장하지 않는다.

품질·재현성 요구사항

  • intro 1개 + 목표 문장 100개, 총 101개를 모두 새로 생성한다.
  • manifest에 version, provider, voice, rate, pitch, edge-tts version, ffmpeg version, sample rate, SHA-256, bytes, duration, 원문을 기록한다.
  • 24kHz mono 16-bit PCM, 비무음, peak full-scale 미도달, 비정상적으로 짧거나 긴 파일 없음.
  • audio:generate는 pinned venv의 Python으로 재현 가능해야 하고 README/AUDIO_PROVENANCE에 설치·생성 절차와 provider 의존성·한계를 기록한다.
  • public/audio/intro.wav와 대표 샘플 luck-apple.wav가 청취용 샘플이다.
  • eSpeak cache/download 경로·문서·manifest 의존성을 제거한다. 과거 evidence는 당시 기록이므로 내용 변조 없이 보존한다.
  • 생성 도구의 오픈소스 라이선스와 서비스 사용 조건을 과장 없이 문서화한다. 프로젝트가 음성 자체에 독점 권리를 주장한다고 쓰지 않는다.

TDD

  1. 버전 0.1.1 계약 테스트 RED
  2. neural provider/voice/manifest 계약 RED
  3. 24kHz·비무음·peak·duration·101개 integrity RED
  4. generator atomicity/retry/unsafe secret absence 테스트 RED
  5. 기존 full suite와 browser suite GREEN

최종 검증

  • npm ci
  • npm run lint
  • npm test
  • npm run audio:generate 또는 명시적 생성 명령
  • npm run build
  • sandboxed system Chrome browser tests
  • npm audit --audit-level=high
  • 101개 manifest/hash/PCM 독립 검사

기록

.agent/RESULT-v0.1.1.md에 RED/GREEN, 변경 파일, 생성 provider/voice, 자산 크기, 최종 결과, 남은 청감·provider 위험을 기록한다.