Zum Hauptinhalt springen

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.
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).

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.
// 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.
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

use function Revolution\Voicevox\dict;

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

Wort löschen

use function Revolution\Voicevox\dict;

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

Alle Wörter abrufen

use function Revolution\Voicevox\dict;

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

Wörterbuch importieren

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

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

curl http://localhost:50513/user_dict

Wort hinzufügen

curl -X POST "http://localhost:50513/user_dict_word?surface=Laravel&pronunciation=ララベル&accent_type=0"

Wort aktualisieren

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

Wort löschen

curl -X DELETE "http://localhost:50513/user_dict_word/{uuid}"

Wörterbuch importieren

curl -X POST "http://localhost:50513/import_user_dict?override=false" \
  -H "Content-Type: application/json" \
  -d @other_dict.json
Wenn Sie override=true angeben, wird das bestehende Wörterbuch vor dem Import vollständig gelöscht.

Sprachsynthese nach der Wörterbuchregistrierung

Wörter, die im Benutzerwörterbuch registriert sind, werden bei der Sprachsynthese automatisch berücksichtigt.
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

Geben Sie für pronunciation ausschließlich Katakana an. Hiragana oder Kanji sind nicht zulässig.
  • 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

$path = config('voicevox.core.user_dict');
echo $path;

Wörterbuch zurücksetzen

rm storage/voicevox/user_dict.json
$path = config('voicevox.core.user_dict');
if (file_exists($path)) {
    unlink($path);
}
Zuletzt geändert am 13. Juli 2026