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

# Engine-API-modus: talk (tekst-naar-spraak) - VOICEVOX for Laravel

> Leer hoe je een VOICEVOX-engine-compatibele HTTP API inbouwt in je Laravel-app en dezelfde talk-endpoints gebruikt als de officiële engine.

## Wat is de engine-API-modus?

De engine-API-modus biedt een HTTP API in je Laravel-app die compatibel is met de officiële VOICEVOX-engine.

Start de app met `php artisan serve --port=50513` en je kunt `/audio_query` en `/synthesis` direct gebruiken.

## Voorbereiding

<Steps>
  <Step title="VOICEVOX Core for PHP instellen">
    Zet `voicevox-core-php` en de corebibliotheek klaar volgens de stappen in [Installatie en configuratie](/nl/packages/laravel-voicevox/installation).
  </Step>

  <Step title="Omgevingsvariabelen instellen en FFI inschakelen">
    ```dotenv theme={null}
    VOICEVOX_CORE_PATH=/path/to/voicevox_core/
    ```

    ```ini theme={null}
    ffi.enable=true
    ```
  </Step>

  <Step title="Karakterinformatie-resources installeren">
    ```shell theme={null}
    php artisan voicevox:install
    ```
  </Step>
</Steps>

## De Laravel-versie van de engine starten

```shell theme={null}
php artisan serve --port=50513
```

Standaard start de engine op `http://127.0.0.1:50513`.

### Over poort 50513

De standaardpoort van de officiële VOICEVOX-engine is 50021. Om de Laravel-versie en de officiële engine tegelijk te kunnen draaien, is 50513 als standaardpoort gekozen.

Je start alleen maar met `--port=50513`, dus je mag ook een andere poort gebruiken, zoals `--port=8000`.

<Info>
  Als de poort in gebruik is, start de officiële engine automatisch op een vrije poort vanaf 50022. Ook `php artisan serve` wijkt zonder `--port` automatisch uit naar 8001 en hoger, maar als je `--port` opgeeft en de poort is bezet, mislukt het starten. We raden aan een vaste poort te kiezen die weinig conflicteert met andere services. 50513 is daar een voorbeeld van.
</Info>

## Spraak genereren

### 1. Een `audio_query` maken

```shell theme={null}
curl -s -X POST "http://127.0.0.1:50513/audio_query?speaker=1&text=ララベルが好きなのだ" \
  -H "Content-Type: application/json" \
  > audio_query.json
```

### 2. Spraak synthetiseren met `synthesis`

```shell theme={null}
curl -s -X POST "http://127.0.0.1:50513/synthesis?speaker=1" \
  -H "Content-Type: application/json" \
  -d @audio_query.json \
  > talk.wav
```

## Gebruik vanuit de Laravel-client

Je kunt de Laravel-versie van de engine gebruiken als bestemming voor de clientmodus.

```php theme={null}
// config/voicevox.php
'client' => [
    'url' => env('VOICEVOX_URL', 'http://127.0.0.1:50513'),
],
```

```php theme={null}
use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('ララベルが好きなのだ', id: 1)
    ->generate(id: 1);

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

## De engine-API in-/uitschakelen en fallback

```php theme={null}
'engine' => [
    'disabled' => env('VOICEVOX_ENGINE_DISABLED', false),
    'fallback_url' => env('VOICEVOX_ENGINE_FALLBACK_URL', 'http://127.0.0.1:50021'),
],
```

Niet-geïmplementeerde endpoints zoals `cancellable_synthesis` en `multi_synthesis` kunnen terugvallen op de officiële engine.

<Info>
  Als je de fallback gebruikt, start dan de officiële engine op het adres van `VOICEVOX_ENGINE_FALLBACK_URL`.
</Info>

## Ondersteuningsstatus voor talk

| Endpoint                      | Laravel-versie | Fallback | Opmerkingen                                |
| ----------------------------- | -------------- | -------- | ------------------------------------------ |
| `POST /audio_query`           | ✅              | ✅        | `enable_katakana_english` niet ondersteund |
| `POST /accent_phrases`        | ✅              | ✅        | `enable_katakana_english` niet ondersteund |
| `POST /synthesis`             | ✅              | ✅        |                                            |
| `POST /mora_data`             | ✅              | ✅        |                                            |
| `POST /mora_length`           | ✅              | ✅        |                                            |
| `POST /mora_pitch`            | ✅              | ✅        |                                            |
| `GET /speakers`               | ✅              | ✅        |                                            |
| `GET /speaker_info`           | ✅              | ✅        | Vereist installatie van resources          |
| `POST /cancellable_synthesis` | ❌              | ✅        | Alleen fallback                            |
| `POST /multi_synthesis`       | ❌              | ✅        | Alleen fallback                            |

## OpenAI-compatibel TTS-endpoint

`POST /v1/audio/speech` accepteert hetzelfde requestformaat als de spraaksynthese-API van OpenAI. Door alleen de base-URL te wijzigen kun je het gebruiken vanuit veel tools die de OpenAI API ondersteunen, waaronder de Laravel AI SDK.

```shell theme={null}
curl -s -X POST "http://127.0.0.1:50513/v1/audio/speech" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "voicevox",
    "input": "ララベルが好きなのだ",
    "voice": "ずんだもん"
  }' \
  > talk.wav
```

### Parameters

| Parameter          | Beschrijving                                                                                                         |
| ------------------ | -------------------------------------------------------------------------------------------------------------------- |
| `input`            | De voor te lezen tekst (maximaal 4096 tekens)                                                                        |
| `voice`            | Een stijl-ID (getal), een alias (`ずんだもん`, `四国めたん`, enzovoort) of een OpenAI-stemnaam (`alloy`, `shimmer`, enzovoort) |
| `speed`            | Afspeelsnelheid. Toegepast als `speedScale` (0.25–4.0, standaard 1.0)                                                |
| `response_format`  | Er wordt altijd wav teruggegeven. De opgegeven waarde wordt genegeerd                                                |
| Overige parameters | Worden genegeerd                                                                                                     |

<Info>
  De OpenAI-stemnamen (`alloy`, `shimmer`, enzovoort) zijn een voorlopige toewijzing. Er bestaat geen definitie die het stemkarakter van elke OpenAI-stem aan een VOICEVOX-karakter koppelt; de mapping is er puur voor de compatibiliteit. We raden aan de aliassen van VOICEVOX-karakters te gebruiken (`ずんだもん`, `四国めたん/ノーマル`, enzovoort).
</Info>

## Volgende pagina's

<Columns cols={2}>
  <Card title="Engine-API: song" href="/nl/packages/laravel-voicevox/engine-song" icon="music">
    Bekijk het gebruik van `sing_frame_audio_query` en `frame_synthesis`.
  </Card>

  <Card title="Laravel AI SDK-integratie" href="/nl/packages/laravel-voicevox/ai-sdk" icon="sparkles">
    Bekijk de configuratie om VOICEVOX te gebruiken via de `Audio`-facade.
  </Card>
</Columns>


## Related topics

- [Native modus: talk (tekst-naar-spraak) - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/native-talk.md)
- [Clientmodus: talk (tekst-naar-spraak) - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/client-talk.md)
- [Engine-API-modus: song (zangsynthese) - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/engine-song.md)
- [VOICEVOX for Laravel](/nl/packages/laravel-voicevox/index.md)
- [Installatie en configuratie - VOICEVOX for Laravel](/nl/packages/laravel-voicevox/installation.md)
