3.1 KiB
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
- 버전 0.1.1 계약 테스트 RED
- neural provider/voice/manifest 계약 RED
- 24kHz·비무음·peak·duration·101개 integrity RED
- generator atomicity/retry/unsafe secret absence 테스트 RED
- 기존 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 위험을 기록한다.