> ## 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 - Benutzerwörterbuch - VOICEVOX für Laravel

> Beschreibt, wie Sie im Native-Modus von VOICEVOX für Laravel das Benutzerwörterbuch verwenden und die Aussprache von Eigennamen und Fachbegriffen registrieren, aktualisieren und importieren.

## Was ist das Benutzerwörterbuch?

Mit dem Benutzerwörterbuch können Sie VOICEVOX die Aussprache von Eigennamen und Fachbegriffen beibringen. Registrierte Wörter werden bei der Sprachsynthese in der richtigen Aussprache vorgelesen.

## Übersicht

Die Benutzerwörterbuch-Funktion von Laravel VOICEVOX ist eine native Implementierung, die das UserDict von VOICEVOX Core nutzt. Die Wörterbuchdaten werden im JSON-Format unter `storage/voicevox/user_dict.json` persistent gespeichert.

<Info>
  Da ein von der offiziellen VOICEVOX-Engine unabhängiger Speicher genutzt wird, werden auf Laravel-Seite registrierte Wörter nicht in die offizielle Engine übernommen (und umgekehrt).
</Info>

## Konfiguration

Standardmäßig wird unter `storage/voicevox/user_dict.json` gespeichert. Wenn Sie einen anderen Pfad verwenden möchten, können Sie dies in `config/voicevox.php` ändern.

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

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

## Grundlegende Verwendung

### Wort hinzufügen

Registrieren Sie ein Wort mit `add()` des `dict()`-Helpers.

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

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

// Es wird eine UUID ohne "-" zurückgegeben
// Beispiel: "550e8400e29b41d4a716446655440000"
```

#### Parameter

* `surface` (Pflicht): Schreibweise
* `pronunciation` (Pflicht): Aussprache (nur Katakana)
* `accentType` (Pflicht): Akzenttyp (`0` = flach, `1` oder mehr = Akzentposition)
* `wordType` (optional): Wortart (`COMMON_NOUN`, `PROPER_NOUN`, `VERB`, `ADJECTIVE`, `SUFFIX`)
* `priority` (optional): Priorität (Standard `5`)

#### Akzenttyp

* `0`: Flacher Akzent
* `1`: Erste Mora
* `2`: Zweite Mora
* `3`: Dritte Mora

### Wort aktualisieren

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

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

### Wort löschen

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

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

### Alle Wörter abrufen

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

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

### Wörterbuch importieren

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

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

// Bei override: true wird überschrieben
dict()->import($json, override: true);
```

### Wörterbuch exportieren

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

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

## Zugriff über die Engine-API

Wenn Sie die Engine-API von Laravel VOICEVOX gestartet haben, können Sie das Benutzerwörterbuch auch über HTTP verwalten. Es wird nicht auf die offizielle Engine gefallbackt, sondern das native Wörterbuch verwendet.

### Alle Wörter abrufen

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

### Wort hinzufügen

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

### Wort aktualisieren

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

### Wort löschen

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

### Wörterbuch importieren

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

<Tip>
  Wenn Sie `override=true` angeben, wird das bestehende Wörterbuch vor dem Import vollständig gelöscht.
</Tip>

## Sprachsynthese nach der Wörterbuchregistrierung

Wörter, die im Benutzerwörterbuch registriert sind, werden bei der Sprachsynthese automatisch berücksichtigt.

```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');
```

## Hinweise

<Warning>
  Geben Sie für `pronunciation` ausschließlich Katakana an. Hiragana oder Kanji sind nicht zulässig.
</Warning>

* Das Benutzerwörterbuch der Laravel-Version und das der offiziellen VOICEVOX-Engine werden getrennt verwaltet.
* Hinzufügen, Aktualisieren und Löschen von Wörtern werden sofort in der JSON-Datei gespeichert.
* Wenn der Akzenttyp unklar ist, versuchen Sie zunächst `0` (flach).

## Fehlerbehebung

### Wörter werden nicht übernommen

1. Prüfen Sie die Schreibrechte auf das Storage-Verzeichnis.
2. Prüfen Sie, ob `storage/voicevox/user_dict.json` korrekt erstellt wurde.
3. Prüfen Sie, ob die Katakana-Schreibweise korrekt ist.

### Der Speicherort der Wörterbuchdatei ist unklar

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

### Wörterbuch zurücksetzen

```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

- [Client-Modus - Benutzerwörterbuch - VOICEVOX für Laravel](/de/packages/laravel-voicevox/client-user-dict.md)
- [Native-Modus - Presets - VOICEVOX für Laravel](/de/packages/laravel-voicevox/native-presets.md)
- [Native-Modus: Talk (Text-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/native-talk.md)
- [Native-Modus: Song (Gesangs-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/native-song.md)
- [Client-Modus - Presets - VOICEVOX für Laravel](/de/packages/laravel-voicevox/client-presets.md)
