Objetivo
Aprovechar tal cual el.vvproj del editor VOICEVOX para poder regenerar talk y canciones desde Laravel.
Estructura del nivel superior
.vvproj es JSON en UTF-8. Talk y song se guardan en el mismo archivo.
Sección talk
talk.audioKeys es un array ordenado y talk.audioItems es un Record indexado por ID.
TalkAudioItem
Si el
.vvproj ya tiene query guardada, puedes saltarte /audio_query y sintetizar directamente.
accentPhrases
Sección song
Track
Note
Conversión tick / segundo / frame
Con un tempo único, se convierte así:tempos en orden ascendente de position.
Note::len(), consulta Detalle de Score y Note.
Flujo de generación de audio de canción
Precauciones al editar directamente
- El conjunto de claves de
tracksytrackOrderdeben coincidir siempre - Sincroniza también
talk.audioKeyscontalk.audioItems - Mantén
position >= 0,duration >= 1ynoteNumberen0..127 tempos[0].positionsuele ser0ytimeSignatures[0].measureNumbersuele ser1- Si es posible, conserva las claves desconocidas al volver a guardar, para no romper la compatibilidad con versiones futuras
Ejemplo de código Laravel
Ejemplo mínimo que lee un.vvproj y genera talk y canción.