Utilizzando il dizionario utente puoi registrare nel motore ufficiale VOICEVOX la pronuncia di nomi propri e termini tecnici. In modalità client il dizionario non viene salvato lato Laravel: viene utilizzata direttamente l’API del dizionario utente gestita dal motore ufficiale a cui ti connetti.
Panoramica
Il dizionario utente in modalità client si manipola tramite la Facade Voicevox. Internamente, invia richieste HTTP a /user_dict, /user_dict_word e /import_user_dict del motore ufficiale VOICEVOX.
I dati del dizionario del motore ufficiale sono salvati nell’area utente specifica per ciascun sistema operativo. Nella build macOS dell’app VOICEVOX (versione stabile) sono normalmente salvati nel seguente percorso.
Anche se avvii il motore ufficiale con Docker, sono 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, il dizionario viene perso al termine del container. Per rendere persistente il dizionario in modo affidabile, monta l’area utente all’interno del container tramite un volume Docker.
Questa è una gestione separata da storage/voicevox/user_dict.json della modalità nativa. Il config('voicevox.core.user_dict') lato Laravel non viene utilizzato in modalità client.
Prerequisiti
Avvia il motore ufficiale VOICEVOX.
Puoi modificare la destinazione con VOICEVOX_URL.
Utilizzo di base
Aggiunta di una parola
Puoi registrare parole con Voicevox::addWord().
Parametri
Recupero di tutte le parole
Puoi recuperare tutte le parole registrate.
Aggiornamento di una parola
Aggiorna specificando l’UUID restituito al momento dell’aggiunta.
Eliminazione di una parola
Importazione del dizionario
Puoi importare un array nel formato del dizionario utente del motore ufficiale. Con override: false (impostazione predefinita), le parole esistenti sono mantenute e le parole importate vengono aggiunte.
Se vuoi esportare il dizionario, salva in JSON il risultato di Voicevox::userDict().
Sintesi vocale dopo la registrazione nel dizionario
Le parole registrate nel dizionario utente vengono automaticamente utilizzate quando il motore ufficiale esegue la sintesi vocale.
Corrispondenza con l’Engine API
Ogni metodo della Facade Voicevox corrisponde all’API del motore ufficiale.
Differenze con la modalità nativa
Avvertenze
Specifica pronunciation in katakana. Non è possibile usare hiragana o kanji.
- In modalità client viene aggiornato il dizionario lato motore ufficiale. Non viene salvato nella
storage del progetto Laravel.
- Se crei ogni volta un container temporaneo con
docker run --rm, il dizionario viene perso al termine del container.
- L’UUID restituito in fase di aggiunta ha il formato con trattini, come
a1b2c3d4-0000-0000-0000-000000000000.
Risoluzione dei problemi
Le parole non vengono applicate
- Verifica che il motore ufficiale VOICEVOX sia in esecuzione.
- Verifica che
VOICEVOX_URL punti alla destinazione corretta.
- Verifica che la pronuncia sia in katakana.
- Verifica di non aver riavviato un container Docker differente.
Non trovi il file del dizionario
Nella build macOS controlla il seguente percorso.
Con Docker viene salvato 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.