Zum Hauptinhalt springen

Singen lassen im Native-Modus

Bei der Gesangssynthese im Native-Modus wird VOICEVOX CORE direkt über PHP-FFI aufgerufen. Der Aufbau von Score und Note ist derselbe wie im Client-Modus.

Vorbereitung

  1. Installation und Konfiguration ist abgeschlossen.
  2. VOICEVOX Core für PHP ist eingerichtet.
  3. In .env ist VOICEVOX_CORE_PATH gesetzt.
VOICEVOX_CORE_PATH=/path/to/voicevox_core/
Um das Gesangsmodell zu verwenden, prüfen Sie, dass s0.vvm in core.vvms in config/voicevox.php enthalten ist.

Score und Note erstellen

use Revolution\Voicevox\Song\Note;
use Revolution\Voicevox\Song\Score;

$score = Score::make([
    Note::make(length: 15),
    Note::make(length: Note::len(ticks: 480, bpm: 120), lyric: 'ド', key: 60),
    Note::make(length: Note::len(480, 120), lyric: 'レ', key: 62),
    Note::make(length: Note::len(960, 120), lyric: 'ミ', key: 64),
    Note::make(length: 2),
]);

Grundlegende Verwendung

use Revolution\Voicevox\Song\Note;
use Revolution\Voicevox\Song\Score;
use function Revolution\Voicevox\song;

$score = Score::make([
    Note::make(length: 15),
    Note::make(length: Note::len(480, 120), lyric: 'ド', key: 60),
    Note::make(length: Note::len(480, 120), lyric: 'レ', key: 62),
    Note::make(length: Note::len(960, 120), lyric: 'ミ', key: 64),
    Note::make(length: 2),
]);

$response = song($score, teacher: 6000)
    ->generate(id: 3001);

$response->storeAs('native', 'song.wav');
Wenn Sie denselben Score verwenden, können Sie dieselbe Partitur im Client- und Native-Modus wiederverwenden.

F0 und Lautstärke mit tap() neu synchronisieren

Auch im Native Song ist tap() praktisch. Sie können SongAudioQuery anpassen und direkt an generate() weitergeben.
use Revolution\Voicevox\Song\SongAudioQuery;
use function Revolution\Voicevox\song;

$response = song($score, teacher: 6000)
    ->tap(function (SongAudioQuery $song) {
        $song->sync();
    })
    ->generate(id: 3001);
Wenn Sie F0 und Lautstärke einzeln aktualisieren, führen Sie es unbedingt in dieser Reihenfolge aus.
->tap(function (SongAudioQuery $song) {
    $song->updateF0();
    $song->updateVolume();
})

Unterschiede zum Client-Modus

AspektClient SongNative Song
Engine-StartErforderlichNicht erforderlich
FFINicht erforderlichErforderlich
API-EinstiegVoicevox::song()song()
Score / NoteGemeinsamGemeinsam
Die Funktionsweise von FFI ist unter PHP FFI beschrieben; den Ablauf mit der Core-Library allein finden Sie unter Verwendung von VOICEVOX Core für PHP.

Nächste Seiten

Score- und Note-Details

Praktische Verwaltungsmuster für Song-Partitur-Daten.

Client Song

Vergleich mit der HTTP-Client-Variante.

VOICEVOX für Laravel – Übersicht

Die Modi und zugehörigen Seiten im Überblick.
Zuletzt geändert am 13. Juli 2026