Skip to main content

Cantar en modo cliente

En la síntesis de voz cantada del modo cliente se usan las APIs sing_frame_audio_query y frame_synthesis del motor oficial de VOICEVOX. A diferencia de Talk, hay que construir primero un Score y sus Note.

Preparación

Crear Score y Note

Con Note::len($ticks, $bpm) puedes calcular la longitud en frames a partir de los ticks MIDI y el BPM. Es fácil si tratas la negra como 480 ticks.

Uso básico

teacher e id

  • teacher: style ID que se pasa a sing_frame_audio_query. Actualmente solo existe el 6000, así que 6000 es el valor por defecto.
  • generate(id:): style ID que se pasa a frame_synthesis.
Puedes obtener la lista de speakers de voz cantada disponibles con singers().

Ajustar F0 y volumen con tap()

En Song el uso de tap() es especialmente claro: puedes ajustar el SongAudioQuery antes de pasarlo a generate().
Para actualizar F0 y volumen por separado, hazlo en el orden F0 → volumen.
tap() también es útil cuando quieres modificar el Score y volver a sincronizar.
El planteamiento de tap() está recogido en Helper tap() y trait Tappable. VOICEVOX for Laravel es un ejemplo típico de «quiero ajustar solo el objeto intermedio sin cambiar el valor de retorno».

Siguientes páginas

Detalle de Score y Note

Consulta el cálculo de longitudes de frame y el patrón de gestión en JSON.

Song nativo

Usa el mismo Score en modo nativo vía FFI.

Uso de VOICEVOX Core for PHP

Consulta el flujo de síntesis con la biblioteca central por sí sola.
Última modificación el 13 de julio de 2026