The user dictionary lets you register custom readings for proper nouns and technical terms with the official VOICEVOX engine. In client mode, the dictionary is managed entirely by the connected official engine — Laravel does not store dictionary data locally.
Overview
The client mode user dictionary is operated through the Voicevox facade. Internally it sends HTTP requests to the official VOICEVOX engine endpoints /user_dict, /user_dict_word, and /import_user_dict.
The official engine stores dictionary data in the OS user area. On macOS (VOICEVOX app product build), the default path is:
When running the official engine via Docker, data is stored inside the container’s user area. Data persists across container restarts as long as you reuse the same container. However, when creating a temporary container each time with docker run --rm, the dictionary is lost when the container stops. Use a Docker volume to mount the container’s user area if you need persistence.
This is separate from the native mode storage/voicevox/user_dict.json. The Laravel config('voicevox.core.user_dict') setting is not used in client mode.
Prerequisites
Start the official VOICEVOX engine.
The connection URL can be changed with VOICEVOX_URL.
Basic usage
Add a word
Use Voicevox::addWord() to register a word.
Parameters
Get all words
Update a word
Specify the UUID returned when the word was added.
Delete a word
Import dictionary data
Import an array in the official engine user dictionary format. With override: false (default), existing words are kept and imported words are added.
To export the dictionary, save the result of Voicevox::userDict() as JSON.
Synthesize after dictionary registration
Words registered in the user dictionary are referenced automatically during synthesis.
Engine API mapping
Each Voicevox facade method maps to an official engine API endpoint.
Differences from native mode
Notes
Set pronunciation in Katakana only. Hiragana and Kanji are not supported.
- In client mode, the official engine dictionary is updated. Nothing is stored in your Laravel project’s
storage.
- With
docker run --rm, the dictionary is lost when the container exits.
- The UUID returned on add uses the hyphenated format:
a1b2c3d4-0000-0000-0000-000000000000.
Troubleshooting
Word updates are not reflected
- Confirm the official VOICEVOX engine is running.
- Check that
VOICEVOX_URL points to the correct engine.
- Verify that the reading is in Katakana.
- Check whether a different Docker container was started.
Check dictionary file path
On the macOS product build, check:
In Docker, the dictionary is inside the container’s user area. Mount that path as a Docker volume if persistence is required.