프리셋이란
프리셋 기능을 사용하면 자주 쓰는 음성 합성 파라미터 조합을 저장해 재사용할 수 있습니다.말하기 속도·음높이·억양 등을 함께 관리하면, 여러 음성을 생성할 때도 일관된 품질을 유지하기 쉬워집니다.
개요
Laravel VOICEVOX의 프리셋 기능은 VOICEVOX Core를 이용한 네이티브 구현입니다. 프리셋 데이터는 JSON 형식으로storage/voicevox/presets.json에 영속화됩니다.
공식 VOICEVOX 엔진과는 독립된 스토리지를 사용하므로, Laravel 측에서 생성한 프리셋은 공식 엔진 측에는 반영되지 않습니다 (그 반대도 마찬가지입니다).
설정
기본적으로storage/voicevox/presets.json에 저장됩니다. 다른 경로를 사용하고 싶은 경우 config/voicevox.php에서 변경할 수 있습니다.
프리셋 구조
프리셋은 다음과 같은 구조입니다.기본적인 사용법
프리셋 생성
preset() 헬퍼의 add()로 프리셋을 생성할 수 있습니다.
전체 프리셋 조회
프리셋 검색
프리셋 업데이트
프리셋 삭제
프리셋을 사용한 음성 합성
talk() 헬퍼 또는 Engine API의 /audio_query_from_preset 엔드포인트를 이용합니다.
talk() 헬퍼
talk(preset:)에 프리셋 ID를 지정합니다. 이때 일반적인 스타일 ID는 무시됩니다.
Engine API를 통한 접근
Laravel VOICEVOX의 엔진 API를 실행하고 있는 경우, HTTP를 통해 프리셋을 조작할 수 있습니다.전체 프리셋 조회
프리셋 추가
프리셋 업데이트
프리셋 삭제
프리셋을 사용한 음성 쿼리 생성
파라미터 상세
speedScale: 0.5 ~ 2.0 (말하기 속도)pitchScale: -0.15 ~ 0.15 (음높이)intonationScale: 0.0 ~ 2.0 (억양)volumeScale: 0.0 ~ 2.0 (볼륨)prePhonemeLength: 0.0 ~ 1.5 (시작 무음·초)postPhonemeLength: 0.0 ~ 1.5 (종료 무음·초)
주의 사항
- 프리셋 ID에
0을 지정하면 미사용 ID가 자동 채번됩니다. - 프리셋에는
speaker_uuid(UUID 문자열)와style_id(정수) 양쪽을 모두 포함하세요.
트러블슈팅
프리셋이 저장되지 않음
- 스토리지 디렉터리의 쓰기 권한을 확인하세요.
storage/voicevox/presets.json이 올바르게 생성되어 있는지 확인하세요.