Skip to main content

Singing in client mode

Client-mode singing synthesis uses official VOICEVOX engine endpoints: sing_frame_audio_query and frame_synthesis. Unlike talk mode, you build a Score and Note set first.

Prerequisites

Create Score and Note

Use Note::len($ticks, $bpm) to calculate frame lengths from MIDI ticks and BPM. A quarter note at 480 ticks is a practical default.

Basic usage

teacher and id

  • teacher: style ID for sing_frame_audio_query (currently 6000 only, so default is 6000)
  • generate(id:): style ID for frame_synthesis
Get available singing speakers with singers().

Tune F0 and volume with tap()

In song mode, tap() is especially useful: adjust SongAudioQuery, then keep chaining to generate().
If you update values individually, use this order: F0 first, volume second.
tap() is also useful when you edit notes and re-sync.
See tap() helper and Tappable trait for the core pattern. VOICEVOX for Laravel is a clear real-world use case.

Next pages

Score and Note Deep Dive

Review frame-length math and practical JSON chart management.

Native Song

Use the same Score in native FFI mode.

VOICEVOX Core for PHP Usage

Review standalone core synthesis flow.
Last modified on May 23, 2026