Mit der Preset-Funktion können Sie häufig genutzte Kombinationen von Sprachsynthese-Parametern in der offiziellen VOICEVOX-Engine speichern und wiederverwenden. Im Client-Modus werden Presets nicht auf Laravel-Seite gespeichert, sondern über die Preset-API der verbundenen offiziellen Engine verwaltet.
Übersicht
Presets im Client-Modus werden über die Voicevox-Facade verwaltet. Intern werden HTTP-Requests an die Endpunkte /presets, /add_preset, /update_preset, /delete_preset und /audio_query_from_preset der offiziellen VOICEVOX-Engine gesendet.
Die Presets der offiziellen Engine werden je nach Betriebssystem im Benutzerbereich als presets.yaml gespeichert. In der macOS-Build-Version der VOICEVOX-Anwendung (Produktversion) ist der übliche Speicherort:
Auch wenn Sie die offizielle Engine über Docker starten, wird sie im Benutzerbereich innerhalb des Containers gespeichert. Solange derselbe Container weiterverwendet wird, bleiben die Daten auch nach einem Neustart erhalten. Wenn Sie jedoch mit docker run --rm jedes Mal einen temporären Container erstellen, gehen die Presets beim Beenden des Containers verloren. Um Presets zuverlässig persistent zu speichern, mounten Sie den Benutzerbereich des Containers über ein Docker-Volume.
Es handelt sich um eine separate Verwaltung vom Native-Modus mit storage/voicevox/presets.json. config('voicevox.core.presets') auf Laravel-Seite wird im Client-Modus nicht verwendet.
Vorbereitung
Starten Sie die offizielle VOICEVOX-Engine.
Das Verbindungsziel können Sie über VOICEVOX_URL ändern.
Preset-Struktur
Die im Client-Modus gesendeten und empfangenen Presets sind ein Array, das dem Schema der API der offiziellen Engine entspricht.
Grundlegende Verwendung
Preset erstellen
Sie können mit Voicevox::addPreset() ein Preset erstellen. In der offiziellen Engine wird bei Angabe von 0 als id eine unbenutzte ID zugewiesen.
Alle Presets abrufen
Preset aktualisieren
Preset löschen
Sprachsynthese mit Presets
talkFromPreset()
Voicevox::talkFromPreset() erstellt mithilfe des /audio_query_from_preset der offiziellen Engine ein TalkAudioQuery mit bereits angewendetem Preset.
audioQueryFromPreset()
Wenn Sie nur das Audio-Query-Array vor der Sprachsynthese abrufen möchten, verwenden Sie audioQueryFromPreset().
Zusätzliche Anpassung mit tap()
Auch das aus einem Preset erzeugte TalkAudioQuery können Sie wie beim normalen Voicevox::talk() mit tap() anpassen.
Zuordnung zur Engine-API
Die Methoden der Voicevox-Facade entsprechen den APIs der offiziellen Engine.
Unterschiede zum Native-Modus
Praxisbeispiele
Für Narration
Für schnellen Talk
Parameter-Details
speedScale: 0.5 – 2.0 (Sprechgeschwindigkeit)
pitchScale: -0.15 – 0.15 (Tonhöhe)
intonationScale: 0.0 – 2.0 (Intonation)
volumeScale: 0.0 – 2.0 (Lautstärke)
prePhonemeLength: 0.0 – 1.5 (Stille am Anfang, in Sekunden)
postPhonemeLength: 0.0 – 1.5 (Stille am Ende, in Sekunden)
Hinweise
Im Client-Modus wird die presets.yaml auf der Seite der offiziellen Engine aktualisiert. Sie wird nicht im storage des Laravel-Projekts gespeichert.
- Bei temporären Containern (z. B.
docker run --rm) gehen Presets beim Beenden des Containers verloren.
- Geben Sie sowohl
speaker_uuid als auch style_id an.
- Wenn Sie mit
talkFromPreset() erzeugte Queries mit generate(id:) ausführen, geben Sie üblicherweise dieselbe ID wie die style_id des Presets an.
Fehlerbehebung
Presets können nicht abgerufen werden
- Prüfen Sie, ob die offizielle VOICEVOX-Engine läuft.
- Prüfen Sie, ob
VOICEVOX_URL auf das richtige Ziel zeigt.
- Prüfen Sie, ob Sie in Docker nicht einen anderen Container neu gestartet haben.
Der Speicherort der Preset-Datei ist unklar
In der macOS-Build-Version prüfen Sie folgenden Ort.
In Docker wird sie im Benutzerbereich der offiziellen Engine (innerhalb des Containers) gespeichert. Wenn Persistenz erforderlich ist, mounten Sie den Benutzerbereich des Containers als Docker-Volume.
speaker_uuid ist unbekannt
Sie können die UUID aus der Speaker-Liste abrufen.
Zuletzt geändert am 13. Juli 2026