Skip to main content
Utilizzando la funzionalità dei preset puoi salvare e riutilizzare combinazioni di parametri di sintesi vocale frequenti sul motore ufficiale VOICEVOX. In modalità client i preset non vengono salvati lato Laravel, ma viene utilizzata l’API dei preset gestita dal motore ufficiale a cui ti connetti.

Panoramica

I preset in modalità client vengono manipolati tramite la Facade Voicevox. Internamente, invia richieste HTTP a /presets, /add_preset, /update_preset, /delete_preset, /audio_query_from_preset del motore ufficiale VOICEVOX. I preset del motore ufficiale sono salvati come presets.yaml nell’area utente specifica per ciascun sistema operativo. Nella build macOS dell’app VOICEVOX (versione stabile), normalmente vengono salvati nel seguente percorso.
Anche se avvii il motore ufficiale con Docker, vengono salvati nell’area utente all’interno del container. Finché continui a utilizzare lo stesso container, i dati vengono mantenuti anche dopo il riavvio. Tuttavia, se crei ogni volta un container temporaneo, ad esempio con docker run --rm, i preset vengono persi al termine del container. Per rendere persistenti i preset in modo affidabile, monta l’area utente all’interno del container tramite un volume Docker. Questa è una gestione separata dallo storage/voicevox/presets.json della modalità nativa. Il config('voicevox.core.presets') lato Laravel non viene utilizzato in modalità client.

Prerequisiti

Avvia il motore ufficiale VOICEVOX.
Puoi modificare la destinazione con VOICEVOX_URL.

Struttura di un preset

I preset scambiati in modalità client sono array allineati allo schema dell’API del motore ufficiale.

Utilizzo di base

Creazione di un preset

Puoi creare un preset con Voicevox::addPreset(). Nel motore ufficiale, specificando 0 come id, viene assegnato un ID non ancora utilizzato.

Recupero di tutti i preset

Aggiornamento di un preset

Eliminazione di un preset

Sintesi vocale con preset

talkFromPreset()

Voicevox::talkFromPreset() utilizza /audio_query_from_preset del motore ufficiale per creare una TalkAudioQuery con il preset già applicato.

audioQueryFromPreset()

Se vuoi ottenere solo l’array della audio query prima della sintesi, usa audioQueryFromPreset().

Regolazione aggiuntiva con tap()

Anche una TalkAudioQuery creata da un preset può essere regolata con tap() come una normale Voicevox::talk().

Corrispondenza con l’Engine API

Ogni metodo della Facade Voicevox corrisponde all’API del motore ufficiale.

Differenze con la modalità nativa

Esempi pratici

Per narrazione

Per parlato veloce

Dettagli sui parametri

  • speedScale: 0.5 – 2.0 (velocità di parlato)
  • pitchScale: -0.15 – 0.15 (pitch)
  • intonationScale: 0.0 – 2.0 (intonazione)
  • volumeScale: 0.0 – 2.0 (volume)
  • prePhonemeLength: 0.0 – 1.5 (silenzio iniziale, in secondi)
  • postPhonemeLength: 0.0 – 1.5 (silenzio finale, in secondi)

Avvertenze

In modalità client viene aggiornato presets.yaml lato motore ufficiale. Non viene salvato nella storage del progetto Laravel.
  • Se crei ogni volta un container temporaneo con docker run --rm, i preset vengono persi al termine del container.
  • Includi sia speaker_uuid che style_id.
  • Quando esegui generate(id:) su una query creata con talkFromPreset(), normalmente specifica lo stesso ID dello style_id del preset.

Risoluzione dei problemi

Impossibile recuperare i preset

  1. Verifica che il motore ufficiale VOICEVOX sia in esecuzione.
  2. Verifica che VOICEVOX_URL punti alla destinazione corretta.
  3. Verifica di non aver riavviato un container Docker differente.

Non trovi il file dei preset

Nella build macOS controlla il seguente percorso.
Con Docker vengono salvati nell’area utente (all’interno del container) del motore ufficiale. Se serve persistenza, monta l’area utente all’interno del container su un volume Docker.

Non conosci lo speaker_uuid

Puoi ottenere gli UUID dall’elenco degli speaker.
Ultima modifica il 13 luglio 2026