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

# Speech-to-Text

> Verwenden Sie Whisper-Modelle, um Audiodateien in Text zu konvertieren – mit Unterstützung für Transkription und Übersetzung.

## Einführung

Die Speech-to-Text (STT)-API auf Basis der Whisper-Modelle von OpenAI kann Audiodateien in Text umwandeln. Sie unterstützt verschiedene Anwendungsfälle:

* Transkription von Audiodateien in Text
* Übersetzung mehrsprachiger Audios ins Englische
* Unterstützung mehrerer Audio-Eingabeformate
* Verschiedene Ausgabeformate

**Verfügbare Modellliste:**

* **whisper-large-v3** —— Neuestes großes Whisper-Modell, unterstützt mehrere Sprachen. Für chinesische Erkennung verwenden Sie geeignete Prompts und niedrige Temperaturwerte
* **whisper-1** —— Ursprüngliches Whisper-Modell, stabil und zuverlässig, unterstützt mehrere Sprachen
* **distil-whisper-large-v3-en** —— Distilliertes Modell, schneller, aber leicht verringerte Genauigkeit; empfohlen mit niedrigen Temperaturwerten

<Tip>
  **Performance-Empfehlungen:**

  * Für chinesische Audios wird das Modell `whisper-large-v3` mit geeigneten Prompts und niedrigeren Temperaturwerten (z. B. 0.2) empfohlen, um Halluzinationen zu reduzieren
  * Für englische Audios oder schnellere Verarbeitung verwenden Sie das Modell `distil-whisper-large-v3-en`
  * Unterstützte Audioformate: mp3, mp4, mpeg, mpga, m4a, wav, webm
  * Dateigrößenlimit: maximal 25 MB
</Tip>

## Modellverwendung

### Sprachtranskription

Verwenden Sie den Endpoint `/v1/audio/transcriptions` über die Methode `client.audio.transcriptions.create()`, um Audio in der Originalsprache zu transkribieren.

### Sprachübersetzung

Verwenden Sie den Endpoint `/v1/audio/translations` über die Methode `client.audio.translations.create()`, um Audio in englischen Text zu übersetzen.

### Request-Parameter

#### Transkriptionsparameter

<ParamField body="file" type="file" required>
  Audio-Datei-Objekt zur Transkription. Unterstützte Formate: mp3, mp4, mpeg, mpga, m4a, wav, webm; max. 25 MB.
</ParamField>

<ParamField body="model" type="string" required>
  Zu verwendende Modell-ID. Optionen: `whisper-large-v3`, `whisper-1`, `distil-whisper-large-v3-en`
</ParamField>

<ParamField body="language" type="string">
  Sprache des Eingabe-Audios im Format ISO-639-1 (z. B. „en", „zh"). Die Angabe der Sprache kann Genauigkeit und Latenz verbessern.
</ParamField>

<ParamField body="prompt" type="string">
  Optionaler Text-Prompt, um den Stil des Modells zu steuern oder ein vorheriges Audiosegment fortzusetzen. Der Prompt sollte zur Audiosprache passen.
</ParamField>

<ParamField body="response_format" type="string">
  Ausgabeformat der Transkription. Optionen: `json` (Standard), `text`, `srt`, `verbose_json`, `vtt`.
</ParamField>

<ParamField body="temperature" type="number">
  Sampling-Temperatur zwischen 0 und 1. Höhere Werte machen die Ausgabe zufälliger, niedrigere Werte machen sie fokussierter und deterministischer. Standard: 0.
</ParamField>

<ParamField body="timestamp_granularities[]" type="array">
  Zeitstempel-Granularitäten. Optionen: `word`, `segment`. Nur verfügbar, wenn `response_format` auf `verbose_json` gesetzt ist.
</ParamField>

#### Übersetzungsparameter

<ParamField body="file" type="file" required>
  Zu übersetzendes Audio-Datei-Objekt. Gleiche Formate wie bei der Transkription.
</ParamField>

<ParamField body="model" type="string" required>
  Zu verwendende Modell-ID, identisch mit den Transkriptionsparametern.
</ParamField>

<ParamField body="prompt" type="string">
  Optionaler englischer Text-Prompt zur Steuerung des Übersetzungsstils.
</ParamField>

<ParamField body="response_format" type="string">
  Ausgabeformat der Übersetzung, identisch mit den Transkriptionsparametern.
</ParamField>

<ParamField body="temperature" type="number">
  Sampling-Temperatur, identisch mit den Transkriptionsparametern.
</ParamField>

## Anwendungsbeispiele

<CodeGroup>
  ```shell Curl Transcription theme={null}
  curl https://aihubmix.com/v1/audio/transcriptions \
    -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
    -H "Content-Type: multipart/form-data" \
    -F file="@/path/to/file/audio.mp3" \
    -F model="whisper-large-v3" \
    -F response_format="text" \
    -F temperature="0.2"
  ```

  ```shell Curl Translation theme={null}
  curl https://aihubmix.com/v1/audio/translations \
    -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
    -H "Content-Type: multipart/form-data" \
    -F file="@/path/to/file/audio.mp3" \
    -F model="whisper-large-v3" \
    -F prompt="autocorrect, clean up the stammer, and translate to english" \
    -F response_format="text" \
    -F temperature="0.2"
  ```

  ```py Speech Transcription theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  # Open audio file
  audio_file = open("path/to/audio.mp3", "rb")

  # Transcribe audio
  transcript = client.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file,
    language="en",  # Specify English for better accuracy
    prompt="Please transcribe accurately with proper punctuation and grammar",
    response_format="text",
    temperature=0.2  # Lower randomness to reduce hallucinations
  )

  print(transcript)
  ```

  ```py Speech Translation theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  # Open audio file
  audio_file = open("path/to/audio.m4a", "rb")

  # Translate audio to English
  translation = client.audio.translations.create(
    model="whisper-large-v3",
    file=audio_file,
    prompt="autocorrect, clean up the stammer, and translate to english",
    response_format="text",
    temperature=0.2
  )

  print(translation)
  ```

  ```py Verbose Output Format theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  audio_file = open("path/to/audio.wav", "rb")

  # Get detailed transcription results with timestamps
  transcript = client.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file,
    response_format="verbose_json",
    timestamp_granularities=["word"],
    temperature=0.2
  )

  # Output results with word-level timestamps
  print(f"Text: {transcript.text}")
  print(f"Language: {transcript.language}")
  for word in transcript.words:
      print(f"'{word.word}' at {word.start}s - {word.end}s")
  ```

  ```py SRT Subtitle Format theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  audio_file = open("path/to/video_audio.mp4", "rb")

  # Generate SRT subtitle file
  srt_transcript = client.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file,
    response_format="srt",
    language="en",
    temperature=0.2
  )

  # Save as .srt file
  with open("subtitles.srt", "w", encoding="utf-8") as f:
      f.write(srt_transcript)

  print("SRT subtitle file generated")
  ```
</CodeGroup>

## Antwortformate

### JSON-Format (Standard)

```json theme={null}
{
  "text": "This is the transcribed text content"
}
```

### Verbose-JSON-Format (verbose\_json)

```json theme={null}
{
  "task": "transcribe",
  "language": "english",
  "duration": 8.470000267028809,
  "text": "This is the transcribed text content",
  "segments": [
    {
      "id": 0,
      "seek": 0,
      "start": 0.0,
      "end": 8.470000267028809,
      "text": " This is the transcribed text content",
      "tokens": [50364, 50365, 50365, 50365],
      "temperature": 0.2,
      "avg_logprob": -0.9929364013671875,
      "compression_ratio": 0.8888888888888888,
      "no_speech_prob": 0.0963134765625
    }
  ]
}
```

### Text-Format

```
This is the transcribed text content
```

### SRT-Format

```srt theme={null}
1
00:00:00,000 --> 00:00:08,470
This is the transcribed text content
```

### VTT-Format

```vtt theme={null}
WEBVTT

00:00:00.000 --> 00:00:08.470
This is the transcribed text content
```

## Best Practices

1. **Verarbeitung chinesischer Audios**: Verwenden Sie das Modell `whisper-large-v3`, setzen Sie `language="zh"`, `temperature=0.2` und geben Sie geeignete chinesische Prompts an
2. **Verarbeitung englischer Audios**: Verwenden Sie `distil-whisper-large-v3-en` für eine höhere Geschwindigkeit
3. **Umgang mit Geräuschen**: Verwenden Sie Prompts, um das Modell anzuweisen, Hintergrundgeräusche zu ignorieren oder Stottern zu bereinigen
4. **Lange Audios**: Die API segmentiert lange Audios automatisch; eine Vorverarbeitung der Audioqualität wird für beste Ergebnisse empfohlen
5. **Zeitstempel-Anforderungen**: Verwenden Sie `verbose_json` und `timestamp_granularities`, wenn präzise Zeitstempel benötigt werden
6. **Untertitelerstellung**: Verwenden Sie direkt das Ausgabeformat `srt` oder `vtt`, ohne weitere Nachbearbeitung

***

Zuletzt aktualisiert: 2026-06-01
