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

# API audio

> Pilih rute audio CometAPI untuk alur kerja text-to-speech, transkripsi, dan terjemahan audio.

Gunakan dokumentasi model audio CometAPI dengan memilih apakah aplikasi Anda memerlukan output suara, transkripsi, atau terjemahan. Endpoint audio menggunakan pola API key CometAPI yang sama seperti endpoint lain yang kompatibel dengan OpenAI.

## Pilih API audio

<CardGroup cols={3}>
  <Card title="Create speech" icon="microphone" href="/api/audio/create-speech">
    Ubah teks menjadi ucapan.
  </Card>

  <Card title="Create transcription" icon="message" href="/api/audio/create-transcription">
    Transkripsikan audio menjadi teks.
  </Card>

  <Card title="Create translation" icon="sparkles" href="/api/audio/create-translation">
    Terjemahkan audio menjadi teks bahasa Inggris.
  </Card>
</CardGroup>

## Create speech

Gunakan model ID yang mendukung audio dari [halaman Models](/id/overview/models) atau [direktori model](https://www.cometapi.com/models/). Contoh di bawah ini memanggil endpoint speech.

<Note>
  Contoh ini menggunakan placeholder `your-audio-model-id`. Ganti dengan model ID audio yang tersedia dari [halaman Models](/id/overview/models) atau [direktori model](https://www.cometapi.com/models/) sebelum Anda menjalankan request.
</Note>

<Tip>
  Buka [Create speech](/api/audio/create-speech) untuk menggunakan playground dan skema endpoint.
</Tip>

<CodeGroup>
  ```python Python theme={null}
  import os
  import requests

  response = requests.post(
      "https://api.cometapi.com/v1/audio/speech",
      headers={
          "Authorization": "Bearer " + os.environ["COMETAPI_KEY"],
          "Content-Type": "application/json",
      },
      json={
          "model": "your-audio-model-id",
          "input": "Welcome to CometAPI.",
          "voice": "alloy",
          "response_format": "mp3",
      },
      timeout=60,
  )

  response.raise_for_status()

  with open("speech.mp3", "wb") as audio_file:
      audio_file.write(response.content)
  ```

  ```javascript Node.js theme={null}
  import { writeFile } from "node:fs/promises";

  const response = await fetch("https://api.cometapi.com/v1/audio/speech", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "your-audio-model-id",
      input: "Welcome to CometAPI.",
      voice: "alloy",
      response_format: "mp3",
    }),
  });

  if (!response.ok) {
    throw new Error(await response.text());
  }

  const audio = Buffer.from(await response.arrayBuffer());
  await writeFile("speech.mp3", audio);
  ```

  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/audio/speech \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "your-audio-model-id",
      "input": "Welcome to CometAPI.",
      "voice": "alloy",
      "response_format": "mp3"
    }' \
    --output speech.mp3
  ```
</CodeGroup>

## Contoh respons

Respons speech yang berhasil berupa audio biner. Respons HTTP dapat terlihat seperti ini:

```text theme={null}
HTTP/1.1 200 OK
Content-Type: audio/mpeg

speech.mp3
```

## Contoh record model

<Info>
  Contoh respons katalog model ini menampilkan envelope `/api/models` dan bentuk satu record model audio. Ini bukan daftar model yang lengkap.
</Info>

```bash cURL theme={null}
curl https://api.cometapi.com/api/models
```

```json theme={null}
{
  "success": true,
  "page": 1,
  "page_size": 20,
  "total": 302,
  "data": [
    {
      "created": 0,
      "id": "your-audio-model-id",
      "code": "your-audio-model-id",
      "provider": "ExampleProvider",
      "provider_code": "example",
      "name": "Example audio model",
      "model_type": "audio",
      "features": [
        "text-to-speech"
      ],
      "endpoints": [
        "openai"
      ],
      "pricing": {
        "currency": "USD / M Tokens",
        "input": 12,
        "output": 12,
        "per_request": null,
        "per_second": null
      }
    }
  ]
}
```

## Kesalahan umum

<AccordionGroup>
  <Accordion title="Format audio tidak didukung">
    Gunakan format yang didokumentasikan di halaman endpoint.
  </Accordion>

  <Accordion title="Unggahan besar ditolak">
    Kompres file audio atau bagi pekerjaan menjadi file yang lebih kecil.
  </Accordion>

  <Accordion title="Transkripsi kosong">
    Pastikan file berisi ucapan dan nama field sesuai dengan dokumentasi.
  </Accordion>

  <Accordion title="Base URL salah">
    Gunakan `https://api.cometapi.com/v1`.
  </Accordion>
</AccordionGroup>

## Kode error dan strategi retry

<AccordionGroup>
  <Accordion title="400">
    Jangan lakukan retry sampai text, file, model ID, voice, atau format diperbaiki.
  </Accordion>

  <Accordion title="401">
    Jangan lakukan retry sampai API key tersedia dan valid.
  </Accordion>

  <Accordion title="404">
    Periksa base URL, path, dan model ID sebelum melakukan retry.
  </Accordion>

  <Accordion title="413">
    Kurangi ukuran unggahan sebelum melakukan retry.
  </Accordion>

  <Accordion title="429">
    Lakukan retry dengan exponential backoff dan kurangi concurrency.
  </Accordion>

  <Accordion title="500 or 503">
    Lakukan retry dengan backoff untuk error provider atau layanan yang bersifat sementara.
  </Accordion>
</AccordionGroup>

<Tip>
  Untuk pola implementasi, lihat [Kode error dan strategi retry](/id/guides/error-codes-and-retry-strategy) dan [Rate limits dan concurrency](/id/guides/rate-limits-and-concurrency).
</Tip>

## Harga dan direktori model

<CardGroup cols={3}>
  <Card title="Halaman model" icon="list" href="/overview/models">
    Baca bagaimana CometAPI menampilkan model ID dalam dokumentasi.
  </Card>

  <Card title="Direktori model" icon="puzzle-piece" href="https://www.cometapi.com/models/">
    Telusuri ketersediaan dan kapabilitas model.
  </Card>

  <Card title="Harga" icon="tag" href="https://www.cometapi.com/pricing/">
    Periksa harga sebelum Anda memanggil model.
  </Card>
</CardGroup>
