> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Native modus - gebruikerswoordenboek - VOICEVOX for Laravel

> Uitleg over het gebruik van het gebruikerswoordenboek in de native modus van VOICEVOX for Laravel om de uitspraak van eigennamen en vaktermen te registreren, bij te werken en te importeren.

## Wat is het gebruikerswoordenboek

Met het gebruikerswoordenboek kun je VOICEVOX de uitspraak van eigennamen en vaktermen aanleren. Geregistreerde woorden worden bij spraaksynthese met de juiste uitspraak voorgelezen.

## Overzicht

De gebruikerswoordenboekfunctie van Laravel VOICEVOX is een native implementatie die gebruikmaakt van de UserDict van VOICEVOX Core. De woordenboekgegevens worden in JSON-formaat opgeslagen in `storage/voicevox/user_dict.json`.

<Info>
  Omdat er een opslag wordt gebruikt die losstaat van de officiële VOICEVOX-engine, worden woorden die je aan de Laravel-kant registreert niet doorgevoerd naar de officiële engine (en andersom evenmin).
</Info>

## Configuratie

Standaard wordt het woordenboek opgeslagen in `storage/voicevox/user_dict.json`. Wil je een ander pad gebruiken, dan kun je dat wijzigen in `config/voicevox.php`.

```php theme={null}
// config/voicevox.php

return [
    'core' => [
        'user_dict' => storage_path('voicevox/user_dict.json'),
    ],
];
```

## Basisgebruik

### Een woord toevoegen

Met `add()` van de `dict()`-helper registreer je een woord.

```php theme={null}
use function Revolution\Voicevox\dict;

$uuid = dict()->add(
    surface: 'Laravel',
    pronunciation: 'ララベル',
    accentType: 0,
);

// Er wordt een UUID zonder "-" teruggegeven
// bijvoorbeeld: "550e8400e29b41d4a716446655440000"
```

#### Parameters

* `surface` (verplicht): schrijfwijze
* `pronunciation` (verplicht): uitspraak (alleen katakana)
* `accentType` (verplicht): accenttype (`0` = vlak, `1` of hoger = accentpositie)
* `wordType` (optioneel): woordsoort (`COMMON_NOUN`, `PROPER_NOUN`, `VERB`, `ADJECTIVE`, `SUFFIX`)
* `priority` (optioneel): prioriteit (standaard `5`)

#### Accenttypen

* `0`: vlak accent
* `1`: eerste mora
* `2`: tweede mora
* `3`: derde mora

### Een woord bijwerken

```php theme={null}
use function Revolution\Voicevox\dict;

dict()->update(
    wordUuid: '550e8400-e29b-41d4-a716-446655440000',
    surface: 'Laravel',
    pronunciation: 'ラレベル',
    accentType: 1,
);
```

### Een woord verwijderen

```php theme={null}
use function Revolution\Voicevox\dict;

dict()->delete('550e8400-e29b-41d4-a716-446655440000');
```

### Alle woorden ophalen

```php theme={null}
use function Revolution\Voicevox\dict;

$words = dict()->all();
// of
$words = dict()->toArray();
```

### Een woordenboek importeren

```php theme={null}
use function Revolution\Voicevox\dict;

$json = file_get_contents('other_user_dict.json');
dict()->import($json, override: false);

// Met override: true wordt overschreven
dict()->import($json, override: true);
```

### Een woordenboek exporteren

```php theme={null}
use function Revolution\Voicevox\dict;

$json = dict()->toJson();
file_put_contents('exported_dict.json', $json);
```

## Toegang via de Engine API

Als je de Engine API van Laravel VOICEVOX draait, kun je het gebruikerswoordenboek ook via HTTP beheren. Er wordt niet teruggevallen op de officiële engine; het native woordenboek wordt gebruikt.

### Alle woorden ophalen

```bash theme={null}
curl http://localhost:50513/user_dict
```

### Een woord toevoegen

```bash theme={null}
curl -X POST "http://localhost:50513/user_dict_word?surface=Laravel&pronunciation=ララベル&accent_type=0"
```

### Een woord bijwerken

```bash theme={null}
curl -X PUT "http://localhost:50513/user_dict_word/{uuid}?surface=Laravel&pronunciation=ラレベル&accent_type=1"
```

### Een woord verwijderen

```bash theme={null}
curl -X DELETE "http://localhost:50513/user_dict_word/{uuid}"
```

### Een woordenboek importeren

```bash theme={null}
curl -X POST "http://localhost:50513/import_user_dict?override=false" \
  -H "Content-Type: application/json" \
  -d @other_dict.json
```

<Tip>
  Als je `override=true` opgeeft, wordt het bestaande woordenboek eerst volledig verwijderd voordat er wordt geïmporteerd.
</Tip>

## Spraaksynthese na registratie in het woordenboek

Woorden die in het gebruikerswoordenboek zijn geregistreerd, worden bij spraaksynthese automatisch geraadpleegd.

```php theme={null}
use function Revolution\Voicevox\{dict, talk};

dict()->add(
    surface: 'Laravel',
    pronunciation: 'ララベル',
    accentType: 0,
);

$response = talk('Laravelで開発するのは楽しいです', id: 1)->generate(id: 1);
$response->storeAs('native', 'laravel.wav');
```

## Aandachtspunten

<Warning>
  Geef bij `pronunciation` uitsluitend katakana op. Hiragana en kanji zijn niet toegestaan.
</Warning>

* Het gebruikerswoordenboek van de Laravel-versie en dat van de officiële VOICEVOX-engine worden apart beheerd.
* Toevoegingen, wijzigingen en verwijderingen van woorden worden direct naar het JSON-bestand opgeslagen.
* Weet je het accenttype niet, probeer dan eerst `0` (vlak).

## Probleemoplossing

### Woorden worden niet toegepast

1. Controleer de schrijfrechten van de storage-directory
2. Controleer of `storage/voicevox/user_dict.json` correct is aangemaakt
3. Controleer of de katakana-schrijfwijze klopt

### Je weet niet waar het woordenboekbestand staat

```php theme={null}
$path = config('voicevox.core.user_dict');
echo $path;
```

### Het woordenboek resetten

```bash theme={null}
rm storage/voicevox/user_dict.json
```

```php theme={null}
$path = config('voicevox.core.user_dict');
if (file_exists($path)) {
    unlink($path);
}
```


## Related topics

- [Clientmodus - gebruikerswoordenboek - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/client-user-dict.md)
- [Native modus - presets - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/native-presets.md)
- [Native modus: song (zangsynthese) - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/native-song.md)
- [Native modus: talk (tekst-naar-spraak) - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/native-talk.md)
- [Engine-API-modus: song (zangsynthese) - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/engine-song.md)
