Vai al contenuto principale

Cos’è la modalità nativa

La modalità nativa chiama VOICEVOX CORE direttamente tramite PHP FFI, passando per VOICEVOX Core for PHP. Puoi sintetizzare senza avviare l’engine ufficiale, ma occorre configurare FFI e la libreria locale.
La modalità nativa non è pensata per server Web. Utilizzala tramite CLI locale. I vincoli di FFI sono descritti anche in PHP FFI.

Preparazione

  1. Aver completato Installazione e configurazione
  2. Aver completato la configurazione di VOICEVOX Core for PHP
  3. Aver impostato VOICEVOX_CORE_PATH nel .env
VOICEVOX_CORE_PATH=/path/to/voicevox_core/

Uso di base

In modalità nativa si usa l’helper talk().
use function Revolution\Voicevox\talk;

$response = talk('ネイティブ版なのだ', id: 1)
    ->generate(id: 1);

$response->storeAs('native', 'talk.wav');

Specificare l’ID di stile

In id specifica l’ID di stile contenuto in un .vvm già caricato.
use function Revolution\Voicevox\talk;

$response = talk('ずんだもんなのだ', id: 1)
    ->generate(id: 1);
Puoi usare solo i modelli contenuti in core.vvms di config/voicevox.php.

Regolare l’Audio Query con tap()

Anche in modalità nativa l’uso di tap() è lo stesso. Attenzione però: TalkAudioQuery è una classe diversa da quella della modalità client.
use Revolution\Voicevox\Talk\TalkAudioQuery;
use function Revolution\Voicevox\talk;

$response = talk('速めに話すのだ', id: 1)
    ->tap(function (TalkAudioQuery $talk) {
        $talk->audioQuery['speedScale'] = 1.2;
        $talk->audioQuery['pitchScale'] = 0.05;
        $talk->audioQuery['intonationScale'] = 1.5;
        $talk->audioQuery['volumeScale'] = 1.0;
    })
    ->generate(id: 1);
Il pattern tap() in sé è raccolto in Helper tap() e trait Tappable. VOICEVOX for Laravel ne è un esempio pratico.

Usare i kana in notazione stile AquesTalk

La modalità nativa non dispone di enable_katakana_english, quindi non è adatta a leggere input contenenti inglese così come sono. Al suo posto puoi usare kana() che riceve direttamente i kana in notazione stile AquesTalk.
use function Revolution\Voicevox\kana;

$response = kana("ネイティブ'バンナ/ノダ'", id: 1)
    ->generate(id: 1);

$response->storeAs('native', 'kana.wav');

Differenze con la modalità client

VoceClient TalkNative Talk
Avvio dell’engineNecessarioNon necessario
FFINon necessarioNecessario
Conversione automatica dell’inglese in katakanaPresenteAssente
Punto di ingresso APIVoicevox::talk()talk()

Pagine successive da leggere

Native Song

Gestisci i modelli di canto tramite FFI.

VOICEVOX Core for PHP

Consulta la configurazione e i vincoli del wrapper PHP puro.
Ultima modifica il 13 luglio 2026