> ## 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 (Text-Sprachsynthese) - VOICEVOX für Laravel

> Beschreibt, wie Sie eine VOICEVOX-Engine-kompatible HTTP-API in eine Laravel-Anwendung integrieren und die gleichen Talk-Endpunkte wie die offizielle Engine nutzen.

## Was ist der Engine-API-Modus?

Der Engine-API-Modus stellt in einer Laravel-Anwendung eine HTTP-API bereit, die mit der offiziellen VOICEVOX-Engine kompatibel ist.

Sobald Sie die Anwendung mit `php artisan serve --port=50513` starten, können Sie `/audio_query` und `/synthesis` direkt verwenden.

## Vorbereitung

<Steps>
  <Step title="VOICEVOX Core für PHP einrichten">
    Folgen Sie den Schritten unter [Installation und Konfiguration](/de/packages/laravel-voicevox/installation), um `voicevox-core-php` und die Core-Library bereitzustellen.
  </Step>

  <Step title="Umgebungsvariablen setzen und FFI aktivieren">
    ```dotenv theme={null}
    VOICEVOX_CORE_PATH=/path/to/voicevox_core/
    ```

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

  <Step title="Charakter-Ressourcen installieren">
    ```shell theme={null}
    php artisan voicevox:install
    ```
  </Step>
</Steps>

## Laravel-Version der Engine starten

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

Standardmäßig läuft sie unter `http://127.0.0.1:50513`.

### Zum Port 50513

Der Standardport der offiziellen VOICEVOX-Engine ist 50021. Damit die Laravel-Version und die offizielle Engine parallel gestartet werden können, ist als Standardport 50513 festgelegt.

Da nur `--port=50513` beim Start übergeben wird, ist auch die Nutzung anderer Ports wie `--port=8000` problemlos möglich.

<Info>
  Die offizielle Engine passt den Port automatisch auf einen freien Port ab 50022 an, falls der aktuelle Port belegt ist. Auch `php artisan serve` passt auf 8001 ff. an, wenn `--port` nicht angegeben wird; bei angegebenem `--port` schlägt der Start dagegen fehl, falls der Port belegt ist. Es wird empfohlen, einen Port festzulegen, der mit anderen Diensten unwahrscheinlich kollidiert. 50513 ist ein Beispiel dafür.
</Info>

## Talk-Audio generieren

### 1. `audio_query` erstellen

```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. Sprachsynthese mit `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
```

## Verwendung aus einem Laravel-Client

Sie können die Laravel-Version der Engine als Verbindungsziel im Client-Modus verwenden.

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

## Aktivierung/Deaktivierung der Engine-API und Fallback

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

Nicht implementierte Endpunkte wie `cancellable_synthesis` oder `multi_synthesis` können auf die offizielle Engine gefallbackt werden.

<Info>
  Wenn Sie den Fallback nutzen, starten Sie die offizielle Engine unter `VOICEVOX_ENGINE_FALLBACK_URL`.
</Info>

## Unterstützungsstatus der Talk-Endpunkte

| Endpunkt                      | Laravel-Version | Fallback | Hinweise                                    |
| ----------------------------- | --------------- | -------- | ------------------------------------------- |
| `POST /audio_query`           | ✅               | ✅        | `enable_katakana_english` nicht unterstützt |
| `POST /accent_phrases`        | ✅               | ✅        | `enable_katakana_english` nicht unterstützt |
| `POST /synthesis`             | ✅               | ✅        |                                             |
| `POST /mora_data`             | ✅               | ✅        |                                             |
| `POST /mora_length`           | ✅               | ✅        |                                             |
| `POST /mora_pitch`            | ✅               | ✅        |                                             |
| `GET /speakers`               | ✅               | ✅        |                                             |
| `GET /speaker_info`           | ✅               | ✅        | Ressourceninstallation erforderlich         |
| `POST /cancellable_synthesis` | ❌               | ✅        | Nur Fallback                                |
| `POST /multi_synthesis`       | ❌               | ✅        | Nur Fallback                                |

## OpenAI-kompatibler TTS-Endpunkt

Mit `POST /v1/audio/speech` wird dasselbe Request-Format wie die OpenAI-Sprachsynthese-API akzeptiert. Durch reine Änderung der Base URL kann er unter anderem aus dem Laravel AI SDK und vielen anderen OpenAI-kompatiblen Tools verwendet werden.

```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
```

### Parameter

| Parameter         | Beschreibung                                                                                         |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| `input`           | Zu sprechender Text (max. 4096 Zeichen)                                                              |
| `voice`           | Style-ID (numerisch), Alias (`ずんだもん`, `四国めたん` usw.) oder OpenAI-Voice-Name (`alloy`, `shimmer` usw.) |
| `speed`           | Wiedergabegeschwindigkeit. Wird als `speedScale` angewendet (0,25–4,0, Standard 1,0)                 |
| `response_format` | Es wird immer WAV zurückgegeben. Angegebene Werte werden ignoriert.                                  |
| Weitere Parameter | Werden ignoriert.                                                                                    |

<Info>
  Die OpenAI-Voice-Namen (`alloy`, `shimmer` usw.) sind vorläufige Zuweisungen. Da es keine definierte Zuordnung zwischen den Klangeigenschaften der einzelnen OpenAI-Voices und VOICEVOX-Charakteren gibt, wird zur Kompatibilität pragmatisch gemappt. Es wird empfohlen, die VOICEVOX-Charakter-Aliase (`ずんだもん`, `四国めたん/ノーマル` usw.) zu verwenden.
</Info>

## Nächste Seiten

<Columns cols={2}>
  <Card title="Engine-API: Song" href="/de/packages/laravel-voicevox/engine-song" icon="music">
    Verwendung von `sing_frame_audio_query` und `frame_synthesis`.
  </Card>

  <Card title="Laravel-AI-SDK-Integration" href="/de/packages/laravel-voicevox/ai-sdk" icon="sparkles">
    Konfiguration zur Nutzung von VOICEVOX über die `Audio`-Facade.
  </Card>
</Columns>


## Related topics

- [Native-Modus: Talk (Text-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/native-talk.md)
- [Engine-API-Modus: Song (Gesangs-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/engine-song.md)
- [Client-Modus: Talk (Text-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/client-talk.md)
- [Client-Modus: Song (Gesangs-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/client-song.md)
- [Native-Modus: Song (Gesangs-Sprachsynthese) - VOICEVOX für Laravel](/de/packages/laravel-voicevox/native-song.md)
