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

# Modo nativo: Song (síntesis de voz cantada) - VOICEVOX for Laravel

> Explica cómo llamar directamente a VOICEVOX CORE con PHP FFI para sintetizar voz cantada en modo nativo de VOICEVOX for Laravel.

## Cantar en modo nativo

En la síntesis de voz cantada del modo nativo se llama directamente a VOICEVOX CORE con PHP FFI.

La forma de construir `Score` y `Note` es la misma que en modo cliente.

## Preparación

1. Haber completado [Instalación y configuración](/es/packages/laravel-voicevox/installation)
2. Tener configurado [VOICEVOX Core for PHP](/es/packages/voicevox-core-php)
3. Tener configurado `VOICEVOX_CORE_PATH` en `.env`

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

Para usar el modelo de voz cantada, comprueba que `s0.vvm` esté incluido en `core.vvms` de `config/voicevox.php`.

## Crear `Score` y `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 básico

```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');
```

Si usas el mismo `Score`, puedes reutilizar la misma partitura entre modo cliente y modo nativo.

## Resincronizar F0 y volumen con `tap()`

En Song nativo también es útil `tap()`. Puedes ajustar el `SongAudioQuery` y pasarlo tal cual 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);
```

Si actualizas F0 y volumen por separado, ejecútalos siempre en este orden.

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

## Diferencias con el modo cliente

| Elemento           | Cliente Song       | Nativo Song  |
| ------------------ | ------------------ | ------------ |
| Arranque del motor | Necesario          | No necesario |
| FFI                | No requerido       | Requerido    |
| Entrada de la API  | `Voicevox::song()` | `song()`     |
| `Score` / `Note`   | Común              | Común        |

<Info>
  Para el mecanismo de FFI consulta [PHP FFI](/es/advanced/ffi); para el flujo solo con la biblioteca core, consulta [Uso de VOICEVOX Core for PHP](/es/packages/voicevox-core-php/usage).
</Info>

## Siguientes páginas

<Columns cols={3}>
  <Card title="Detalle de Score y Note" href="/es/packages/laravel-voicevox/song-score-note" icon="list-music">
    Revisa cómo gestionar los datos de partitura de Song en la práctica.
  </Card>

  <Card title="Cliente Song" href="/es/packages/laravel-voicevox/client-song" icon="music">
    Compara las diferencias con la versión de cliente HTTP.
  </Card>

  <Card title="Resumen de VOICEVOX for Laravel" href="/es/packages/laravel-voicevox" icon="book-open">
    Revisa juntos todos los modos y las páginas relacionadas.
  </Card>
</Columns>


## Related topics

- [Modo cliente: Song (síntesis de voz cantada) - VOICEVOX for Laravel](/es/packages/laravel-voicevox/client-song.md)
- [Modo nativo: Talk (síntesis de voz desde texto) - VOICEVOX for Laravel](/es/packages/laravel-voicevox/native-talk.md)
- [Modo Engine API: Song (síntesis de voz cantada) - VOICEVOX for Laravel](/es/packages/laravel-voicevox/engine-song.md)
- [Modo cliente: Talk (síntesis de voz desde texto) - VOICEVOX for Laravel](/es/packages/laravel-voicevox/client-talk.md)
- [Modo nativo - Diccionario de usuario - VOICEVOX for Laravel](/es/packages/laravel-voicevox/native-user-dict.md)
