네이티브 모드란
네이티브 모드는 VOICEVOX Core for PHP를 통해 VOICEVOX CORE를 PHP FFI로 직접 호출합니다. 공식 엔진을 실행하지 않아도 합성할 수 있지만, FFI와 로컬 라이브러리 셋업이 필요합니다.사전 준비
- 설치와 설정을 완료했을 것
- VOICEVOX Core for PHP의 셋업을 완료했을 것
.env에VOICEVOX_CORE_PATH를 설정했을 것
기본적인 사용법
네이티브 모드에서는talk() 헬퍼를 사용합니다.
스타일 ID 지정
id에는 로드된 .vvm에 포함된 스타일 ID를 지정합니다.
config/voicevox.php의 core.vvms에 포함된 모델만 사용할 수 있습니다.
tap()으로 Audio Query 조정
네이티브 모드에서도 tap()의 사용법은 같습니다. 단, TalkAudioQuery는 클라이언트 모드와는 다른 클래스입니다.
tap() 패턴 자체는 tap() 헬퍼와 Tappable 트레이트에 정리되어 있습니다. VOICEVOX for Laravel은 그 실전 예시입니다.AquesTalk 풍 표기의 카나 사용
네이티브 모드에는enable_katakana_english가 없기 때문에, 영어가 섞인 입력을 그대로 읽는 용도에는 적합하지 않습니다.
대신 AquesTalk 풍 표기의 카나를 직접 전달하는 kana()를 사용할 수 있습니다.
스트리밍 음성 합성
stream()은 VOICEVOX 엔진 0.26.0의 /streaming_synthesis와 같은 사양으로, WAV를 처음부터 순서대로 출력하는 TalkStream을 반환합니다. streaming_talk 타입의 스타일(VVM v2 형식)만 지원합니다.
startOffset이 음성 길이 이상이면 stream()은 InvalidArgumentException을 던집니다. 내부적으로는 VOICEVOX Core의 AudioFeature를 세그먼트 단위로 render합니다. 자세한 내용은 VOICEVOX Core for PHP 사용법을 참조하세요.
클라이언트 모드와의 차이
다음에 읽어볼 페이지
네이티브 Song
노래 모델을 FFI를 통해 다룹니다.
VOICEVOX Core for PHP
순수한 PHP 래퍼 측의 셋업과 제약을 확인합니다.