개인 실험 저장소입니다. 현재는 음성 입력, 받아쓰기, 보이스 변환 실험을 한 저장소 안에서 관리하고 있고, 각 작업물은 디렉토리 단위로 옮기기 쉽게 정리해두었습니다.
Codex CLI에 붙여 쓰는 Windows용 로컬 받아쓰기 프로젝트입니다.
- 목적: 마이크 입력을 실시간에 가깝게 받아서 Codex CLI 터미널에 직접 타이핑
- 핵심 기능: 항상 듣기, 터미널 포커스 연동, 음성 명령(
보내,지워,다 지워,다시 ...) - 실행 파일과 문서는 모두
codex-dictation/아래에 정리되어 있습니다. - 상세 문서:
codex-dictation/README.md
개별 성능 검증, 벤치마크, 재현 스크립트를 모아둔 실험 디렉토리입니다.
현재 포함:
benchmark_sovits_realtime.py- so-vits-svc 계열이 CUDA GPU 환경에서 어느 정도 실시간에 가까운지 측정하는 스크립트
sovits_realtime_report.md- RTX 4060 기준 실험 결과 정리 문서
results_sovits_realtime.json- 벤치마크 결과 원본 데이터
요약:
- 워밍업 이후 기준으로는
거의 실시간에 가까운 결과가 나왔고 - 짧은 블록에서는 간헐적인 지연 스파이크가 생길 수 있음을 확인했습니다.
- 상세 문서:
experiments/README.md
외부 프로젝트나 서드파티 소스를 보관하는 디렉토리입니다.
현재 포함:
so-vits-svc-fork/- 보이스 변환 실험에 사용한 외부 저장소 사본
- 상세 문서:
external/README.md
아래 디렉토리는 프로젝트 실행이나 실험 재현을 위한 지원용입니다.
inputs/: 입력 오디오, 샘플, 실험용 원본 데이터models/: 로컬 모델 파일이나 체크포인트 보관outputs/: 생성물, 변환 결과, 산출물 보관temp/: 임시 작업 파일tools/: 로컬 도구 모음- 현재
AutoHotkey실행 파일 포함
- 현재
- 실제 받아쓰기 본체 파일은
codex-dictation/아래에 있습니다. - 받아쓰기 기능 자체는 로컬
faster-whisper기반이라 추가 API 비용 없이 동작합니다. - 다만
Codex CLI자체 사용 비용은 별도입니다.
- 작업 브랜치는 가능한 한 이슈를 먼저 만든 뒤 생성합니다.
- 브랜치 이름은
타입/issue-{번호}/{작업폴더}-{짧은-설명}형식을 기본으로 사용합니다. 타입은 아래 중 하나를 우선 사용합니다.feat: 기능 추가나 사용자 동작 변화가 있는 작업bug: 버그 수정, 회귀 수정, 오동작 보정docs: 문서 수정chore: 설정, 정리, 운영성 작업
작업폴더는 실제로 가장 많이 바뀌는 폴더 이름을 넣습니다.- 예:
codex-dictation,experiments,tools,repo
- 예:
- 여러 폴더를 같이 건드려도 브랜치에는 대표 폴더 하나만 넣고, 공통 작업이면
repo를 사용합니다. - 브랜치 이름만 봐도 어떤 이슈인지, 어떤 성격의 작업인지, 주로 어디를 만지는 작업인지 바로 추적할 수 있어야 합니다.
- 예시는 아래와 같습니다.
bug/issue-29/codex-dictation-path-sanitizationdocs/issue-30/repo-branch-conventionfeat/issue-31/codex-dictation-always-listen-improvementchore/issue-32/tools-log-cleanup
- 이슈 제목은 작업 단계와 의도를 빠르게 읽을 수 있게
[분류] 제목형식을 기본으로 사용합니다. - 우선 추천하는 분류는 아래와 같습니다.
[기획]: 구현 전에 방향 정리, 설계, 아이디어 검토가 필요한 건[작업]: 바로 구현하거나 처리 가능한 일반 작업[버그]: 사용자 관점 오동작, 회귀, 수정이 필요한 문제[정리]: 문서, 규칙, 명명, 범위, 표현처럼 비교적 가벼운 정돈[리팩토링]: 기능 변화 없이 내부 구조, 책임 분리, 중복 제거를 개선하는 건[유지보수]: 안정화, 의존성 정리, 경고 제거, 테스트 보강, 운영성 개선
- 이슈 제목 분류는 사람 중심 분류입니다.
- 예: 지금 무엇을 논의하는지, 당장 구현할 건지, 먼저 설계할 건지 빠르게 구분
- 브랜치와 PR의
feat,bug,docs,chore,refactor는 기술 중심 분류입니다.- 예: 실제 변경의 종류와 구현 성격을 코드 작업 흐름에서 구분
- 즉, 이슈 제목과 브랜치/PR 타입은 서로 대체 관계가 아니라 역할이 다릅니다.
- 예시는 아래와 같습니다.
- 이슈:
[기획] always-listen 자동 감도 튜닝 - 이슈:
[작업] always-listen 분할/끝음 회귀 테스트 추가 - 이슈:
[버그] 특정 앱에서 출력 직후 입력 컨텍스트 초기화 - 이슈:
[정리] 브랜치 이름 규칙 문서화 - 이슈:
[리팩토링] always-listen 처리 책임 분리 - 이슈:
[유지보수] 로그 마스킹 옵션과 공유용 출력 정비 - 브랜치:
feat/issue-40/codex-dictation-auto-tuning - 브랜치:
bug/issue-41/codex-dictation-output-context-reset
- 이슈:
나중에 main 쪽으로 가져갈 때는 기본적으로 아래 두 단위를 기준으로 보면 됩니다.
codex-dictation/: 실제 제품화에 가까운 받아쓰기 프로젝트experiments/: 검증용 스크립트와 결과물