# Für Sprache optimieren | AudioDN-Beispiele

> Beliebige Sprachaufnahmen erfassen, eine winzige Opus-Variante erzeugen und das Original löschen, damit Voicemail-große Bibliotheken günstig zu speichern und zu streamen bleiben.

Source: https://audiodeliverynetwork.com/de/examples/optimize-for-voice/

---

# Für Sprache optimieren

Verwandle Anrufbeantworter-Nachrichten, Gesprächsaufzeichnungen und Sprachnotizen in etwas, das du wirklich skalieren kannst. Lade hoch, was der Recorder liefert, lass AudioDN eine sprachoptimierte **Opus**\-Datei mit 32 oder 64 kbps erzeugen, und lösche dann das Original — so behältst und streamst du nur das winzige Archiv, das Hörer brauchen.

Opus ist für Sprache und Streaming mit niedriger Bitrate gebaut. Bei 32 kbps Mono klingt es oft klarer als deutlich größere MP3/AAC-Encodes derselben Voicemail — und deine Speicherkurve bricht ein, sobald du das originale WAV entfernst.

## Was du ausliefern kannst

Nutze dieses Muster, wann immer Sprache das Produkt ist: Voicemail, Support-Gesprächsarchive, IVR-Ansagen, Narration und Sprachnotizen. Diese Quellen sind meist Mono mit enger Dynamik — ein Multi-Megabyte-WAV (oder musikorientiertes HQ-AAC) dauerhaft zu behalten, verbraucht Speicher und Bandbreite ohne spürbaren Gewinn. Eine dedizierte `voice`\-Variante gibt jedem Upload eine vorhersehbare, sprachoptimierte Datei für Player, Download-Endpunkte oder Cold Storage.

| Stufe | Typischer Footprint (~45s Mono) | Hinweise |
| --- | --- | --- |
| Quell-WAV (48 kHz / 16-Bit) | ~4 MB | Verlustfreie Aufnahme / Sample unten |
| Opus `voice` @ 32 kbps Mono | ~180 KB | Klare Sprache; ideal für Voicemail- & IVR-Bibliotheken |
| Opus `voice` @ 64 kbps Mono | ~360 KB | Mehr Headroom bei verrauschten Leitungen oder stärkeren Akzenten |

Das ist grob eine **20×–40×**\-Verkleinerung gegenüber dem Quell-WAV, bevor du das Original löschst. Im Bibliotheksmaßstab — Tausende Nachrichten — wechselst du von „alles für immer behalten“ zu „behalten, was Hörer tatsächlich abspielen“.

## 1\. Beliebige Sprachaufnahme hochladen

Überspringe clientseitiges Crushing. Telefon-Apps, Zoom-Exporte, günstige Recorder und Studio-WAVs können in derselben Collection landen — AudioDN prüft die Datei und baut Varianten aus der besten verfügbaren Quelle. Bevorzuge beim Upload die höchste Qualität, die du hast (WAV / FLAC / AIFF wenn möglich), damit der Opus-Encode von einem sauberen Signal startet.

Dieser Walkthrough nutzt ein generiertes Anrufbeantworter-Sample — ein klassischer Piepton, gefolgt von einer aufdringlichen Mutter, die mit maximalem Timing fragt, wann endlich Enkelkinder kommen. Lade das Quell-WAV herunter, wenn du den Upload selbst ausführen willst: [answering-machine-message.wav](/examples/answering-machine-message.wav).

Upload-Session erstellen

#### Beispielanfrage

  

```
# COLLECTION_ID: uuid of the collection to upload into
curl -X POST "https://api.audiodelivery.net/v1/upload_session" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "collection_id": "COLLECTION_ID",
  "expires_in": 7200
}'
```

```
// COLLECTION_ID: uuid of the collection to upload into

const payload = {
  "collection_id": "COLLECTION_ID",
  "expires_in": 7200
};

const response = await fetch('https://api.audiodelivery.net/v1/upload_session', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
```

```
# COLLECTION_ID: uuid of the collection to upload into

import requests

headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

payload = {
    "collection_id": "COLLECTION_ID",
    "expires_in": 7200
}

response = requests.post(
    "https://api.audiodelivery.net/v1/upload_session",
    headers=headers,
    json=payload,
)
data = response.json()
```

Spur in der Session erstellen

#### Beispielanfrage

  

```
# SESSION_ID: upload_session_id from the previous call
curl -X POST "https://api.audiodelivery.net/v1/upload/SESSION_ID/track" \
  -H "Content-Type: application/json" \
  -d '{
  "file_name": "answering-machine-message.wav"
}'
```

```
// SESSION_ID: upload_session_id from the previous call

const payload = {
  "file_name": "answering-machine-message.wav"
};

const response = await fetch('https://api.audiodelivery.net/v1/upload/SESSION_ID/track', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
```

```
# SESSION_ID: upload_session_id from the previous call

import requests

headers = {
    "Content-Type": "application/json",
}

payload = {
    "file_name": "answering-machine-message.wav"
}

response = requests.post(
    "https://api.audiodelivery.net/v1/upload/SESSION_ID/track",
    headers=headers,
    json=payload,
)
data = response.json()
```

Datei-Bytes hochladen

PUT track\_upload.upload\_url

```
# PUT der Aufnahme-Bytes an track_upload.upload_url.
# Jedes unterstützte Audio funktioniert — starte mit der höchsten Qualität, die du hast (hier WAV).
curl -X PUT "$UPLOAD_URL" \
  --data-binary @answering-machine-message.wav \
  -H "Content-Type: audio/wav"
```

Polle `GET /v1/track/:track_id`, bis `track_status_id` `ready` ist. Organisationsweite Varianten werden in diesem Durchlauf fertig — einschließlich einer Original-Upload-Datei, falls dieses Rezept aktiviert ist. Details zur Upload-Session: [Upload Sessions API](/docs/api/upload-sessions).

## 2\. In eine Voice-Opus-Variante transcodieren

Erstelle eine `transcode`\-Variante namens `voice` mit `codec: “opus”`. Für Sprache starte bei **32 kbps Mono** — deutlich kleiner als Musik-Presets, weiterhin verständlich auf Earbuds und Handys. Gehe auf **64 kbps**, wenn du mehr Fidelity für verrauschte Quellen brauchst. Tags und Cover-Art entfernen; bei Voicemail verschwenden sie nur Bytes.

Konfiguriere das Rezept einmal im Dashboard, damit jeder Upload automatisch eine `voice`\-Datei erhält, oder hänge es an eine fertige Spur mit der Variants API an (unten). Auf diesem Endpunkt sind nur lossy Codecs erlaubt — Opus ist genau das, was du hier willst.

Empfohlen: 32 kbps Mono Opus

#### Beispielanfrage

  

```
# TRACK_ID: uuid of the ready track
curl -X POST "https://api.audiodelivery.net/v1/track/TRACK_ID/variant" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "variant_type_id": "transcode",
  "index": "voice",
  "codec": "opus",
  "bitrate": 32,
  "is_stereo": false,
  "is_strip_tags": true,
  "is_strip_cover": true
}'
```

```
// TRACK_ID: uuid of the ready track

const payload = {
  "variant_type_id": "transcode",
  "index": "voice",
  "codec": "opus",
  "bitrate": 32,
  "is_stereo": false,
  "is_strip_tags": true,
  "is_strip_cover": true
};

const response = await fetch('https://api.audiodelivery.net/v1/track/TRACK_ID/variant', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
```

```
# TRACK_ID: uuid of the ready track

import requests

headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

payload = {
    "variant_type_id": "transcode",
    "index": "voice",
    "codec": "opus",
    "bitrate": 32,
    "is_stereo": False,
    "is_strip_tags": True,
    "is_strip_cover": True
}

response = requests.post(
    "https://api.audiodelivery.net/v1/track/TRACK_ID/variant",
    headers=headers,
    json=payload,
)
data = response.json()
```

Optional: 64 kbps, wenn du mehr Headroom brauchst

#### Alternate Request

  

```
# TRACK_ID: uuid of the ready track
curl -X POST "https://api.audiodelivery.net/v1/track/TRACK_ID/variant" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "variant_type_id": "transcode",
  "index": "voice",
  "codec": "opus",
  "bitrate": 64,
  "is_stereo": false,
  "is_strip_tags": true,
  "is_strip_cover": true
}'
```

```
// TRACK_ID: uuid of the ready track

const payload = {
  "variant_type_id": "transcode",
  "index": "voice",
  "codec": "opus",
  "bitrate": 64,
  "is_stereo": false,
  "is_strip_tags": true,
  "is_strip_cover": true
};

const response = await fetch('https://api.audiodelivery.net/v1/track/TRACK_ID/variant', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
```

```
# TRACK_ID: uuid of the ready track

import requests

headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

payload = {
    "variant_type_id": "transcode",
    "index": "voice",
    "codec": "opus",
    "bitrate": 64,
    "is_stereo": False,
    "is_strip_tags": True,
    "is_strip_cover": True
}

response = requests.post(
    "https://api.audiodelivery.net/v1/track/TRACK_ID/variant",
    headers=headers,
    json=payload,
)
data = response.json()
```

#### Index muss eindeutig sein

Der Wert von `index` (`voice`) darf nicht mit einer bestehenden Organisations- oder Spur-Variante kollidieren. Wähle ein Bitraten-Rezept pro Index — poste nicht sowohl 32 als auch 64 gegen denselben `voice`\-Namen.

Die Spur geht erneut in `processing`, während Opus gebaut wird, und kehrt dann zu `ready` zurück. Parameterreferenz: [Variants API](/docs/api/variants).

## 3\. Das Original löschen, wenn du zufrieden bist

Solange du Rezepte noch feinabstimmst, behalte den Original Upload, damit du Varianten neu erzeugen kannst. Sobald `voice` richtig klingt und du keine erneute Verarbeitung mehr brauchst, lösche das Original, um das große WAV (oder eine andere Quelle) aus dem Speicher freizugeben. Danach kann AudioDN für diese Spur keine neuen Varianten mehr erzeugen — nur die verbleibenden Dateien (wie `voice`) bleiben für Wiedergabe und Download verfügbar.

Im Dashboard die Spur öffnen → files / variants, bestätigen dass `voice` ready ist, dann den Original Upload entfernen. Siehe [Original Upload](/docs/variant-types#original-upload) zum Trade-off: Originale sind Versicherung; nachdem du mit dem Opus-Ergebnis zufrieden bist, sind sie meist teure Nostalgie.

Muster für Voicemail- / Archivprodukte: hohe Qualität hochladen → auf `voice` warten → Original löschen → für immer nur `variants=“voice”` ausliefern.

## 4\. Nur die Voice-Variante abspielen

Richte den Player auf die Spur und fordere `variants=“voice”` mit einem Client-Side-Player-Schlüssel an. Hörer laden nie die Multi-Megabyte-Quelle herunter — nur die Opus-Datei, die du behalten hast.

#### Abhängigkeit

 

```
npm install @audiodn/components
```

```
<script type="module" src="https://unpkg.com/@audiodn/components@latest/dist/player.js"></script>
```

#### Verwendung

```
<script type="module">
  import '@audiodn/components/player';
</script>

<audiodn-player
  api-key="YOUR_PLAYER_API_KEY"
  scope="track"
  id="9b46405d-edc0-497c-9c36-4c97ceb15337"
  variants="voice"
  size="regular"
></audiodn-player>
```

### Live-Demo

Die Wiedergabe ist die `voice`\-Opus-Variante des Anrufbeantworter-Samples — so hörst du den Footprint, den du ausliefern kannst.

Demo-Voicemail — generiertes Beispiel für dieses Beispiel (Anrufbeantworter-Signalton + Nachricht).

Weitere Player-Optionen: [Player component docs](/docs/components/player).

## Checkliste

-   Lade die höchste Qualität der Sprachquelle hoch, die du hast (WAV gezeigt; jedes unterstützte Format funktioniert).
-   Eine `voice`\-Transcode existiert mit `codec: “opus”`, Mono und 32 (oder 64) kbps.
    
-   Höre `variants=“voice”` und bestätige, dass die Sprachqualität für dein Produkt ausreicht.
-   Lösche den Original Upload, wenn du Varianten nicht mehr neu erzeugen musst — behalte nur das günstige Opus-Archiv.

Veröffentlicht 14\. Juli 2026
