> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Modalità nativa: Song (sintesi vocale canora) - VOICEVOX for Laravel

> Come effettuare la sintesi vocale canora in modalità nativa di VOICEVOX for Laravel, chiamando direttamente VOICEVOX CORE tramite PHP FFI.

## Cantare in modalità nativa

Nella sintesi canora in modalità nativa, VOICEVOX CORE viene chiamato direttamente tramite PHP FFI.

Il modo di costruire `Score` e `Note` è lo stesso della modalità client.

## Preparazione

1. Aver completato [Installazione e configurazione](/it/packages/laravel-voicevox/installation)
2. Aver configurato [VOICEVOX Core for PHP](/it/packages/voicevox-core-php)
3. Aver impostato `VOICEVOX_CORE_PATH` nel `.env`

```dotenv theme={null}
VOICEVOX_CORE_PATH=/path/to/voicevox_core/
```

Per usare i modelli di canto verifica che `s0.vvm` sia incluso in `core.vvms` di `config/voicevox.php`.

## Creare `Score` e `Note`

```php theme={null}
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),
]);
```

## Uso di base

```php theme={null}
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');
```

Con lo stesso `Score` puoi riutilizzare la stessa partitura sia in modalità client che nativa.

## Risincronizzare F0 e volume con `tap()`

Anche nel Song nativo `tap()` è utile. Dopo aver regolato la `SongAudioQuery` puoi passarla direttamente a `generate()`.

```php theme={null}
use Revolution\Voicevox\Song\SongAudioQuery;
use function Revolution\Voicevox\song;

$response = song($score, teacher: 6000)
    ->tap(function (SongAudioQuery $song) {
        $song->sync();
    })
    ->generate(id: 3001);
```

Se vuoi aggiornare F0 e volume separatamente, esegui sempre nel seguente ordine.

```php theme={null}
->tap(function (SongAudioQuery $song) {
    $song->updateF0();
    $song->updateVolume();
})
```

## Differenze con la modalità client

| Voce                  | Client Song        | Native Song    |
| --------------------- | ------------------ | -------------- |
| Avvio dell'engine     | Necessario         | Non necessario |
| FFI                   | Non necessario     | Necessario     |
| Punto di ingresso API | `Voicevox::song()` | `song()`       |
| `Score` / `Note`      | In comune          | In comune      |

<Info>
  Per il funzionamento di FFI consulta [PHP FFI](/it/advanced/ffi); per il flusso della sola libreria core, [Utilizzo di VOICEVOX Core for PHP](/it/packages/voicevox-core-php/usage).
</Info>

## Pagine successive da leggere

<Columns cols={3}>
  <Card title="Dettagli di Score e Note" href="/it/packages/laravel-voicevox/song-score-note" icon="list-music">
    Consulta le pratiche di gestione dei dati di partitura Song.
  </Card>

  <Card title="Client Song" href="/it/packages/laravel-voicevox/client-song" icon="music">
    Confronta le differenze con la versione client HTTP.
  </Card>

  <Card title="Panoramica VOICEVOX for Laravel" href="/it/packages/laravel-voicevox" icon="book-open">
    Consulta insieme le varie modalità e le pagine correlate.
  </Card>
</Columns>


## Related topics

- [Modalità client: Song (sintesi vocale cantata) - VOICEVOX for Laravel](/it/packages/laravel-voicevox/client-song.md)
- [Modalità nativa: Talk (sintesi vocale da testo) - VOICEVOX for Laravel](/it/packages/laravel-voicevox/native-talk.md)
- [Modalità Engine API: Song (sintesi vocale cantata) - VOICEVOX for Laravel](/it/packages/laravel-voicevox/engine-song.md)
- [Modalità client: Talk (sintesi vocale da testo) - VOICEVOX for Laravel](/it/packages/laravel-voicevox/client-talk.md)
- [Modalità API Engine: Talk (sintesi vocale da testo) - VOICEVOX for Laravel](/it/packages/laravel-voicevox/engine-talk.md)
