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

> 為文字轉語音、轉錄與音訊翻譯工作流程選擇 CometAPI 音訊路由。

依照你的應用程式需要語音輸出、轉錄或翻譯，選擇使用 CometAPI 音訊模型文件。音訊端點與其他 OpenAI 相容端點使用相同的 CometAPI API key 模式。

## 選擇音訊 API

<CardGroup cols={3}>
  <Card title="建立語音" icon="microphone" href="/api/audio/create-speech">
    將文字轉換為語音。
  </Card>

  <Card title="建立轉錄" icon="message" href="/api/audio/create-transcription">
    將音訊轉錄為文字。
  </Card>

  <Card title="建立翻譯" icon="sparkles" href="/api/audio/create-translation">
    將音訊翻譯為英文文字。
  </Card>
</CardGroup>

## 建立語音

使用來自[模型頁面](/zh-Hant/overview/models)或[模型目錄](https://www.cometapi.com/models/)的音訊能力 model ID。以下範例會呼叫語音端點。

<Note>
  這些範例使用預留位置 `your-audio-model-id`。在執行請求前，請將它替換為可用的音訊 model ID，可從[模型頁面](/zh-Hant/overview/models)或[模型目錄](https://www.cometapi.com/models/)取得。
</Note>

<Tip>
  開啟[建立語音](/api/audio/create-speech)以使用 playground 和端點 schema。
</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>

## 回應範例

成功的語音回應會是二進位音訊。HTTP 回應可能如下所示：

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

speech.mp3
```

## 模型記錄範例

<Info>
  這個模型目錄回應範例展示了 `/api/models` 的封裝格式，以及單一音訊模型記錄的結構。它不是完整的模型清單。
</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
      }
    }
  ]
}
```

## 常見錯誤

<AccordionGroup>
  <Accordion title="不支援的音訊格式">
    請使用端點頁面中記載的格式。
  </Accordion>

  <Accordion title="大型上傳遭拒">
    請壓縮音訊檔案，或將工作拆分為較小的檔案。
  </Accordion>

  <Accordion title="空白轉錄">
    請確認檔案包含語音，且欄位名稱與文件一致。
  </Accordion>

  <Accordion title="錯誤的 base URL">
    請使用 `https://api.cometapi.com/v1`。
  </Accordion>
</AccordionGroup>

## 錯誤代碼與重試策略

<AccordionGroup>
  <Accordion title="400">
    在修正文字、檔案、model ID、voice 或格式之前，請勿重試。
  </Accordion>

  <Accordion title="401">
    在 API key 已提供且有效之前，請勿重試。
  </Accordion>

  <Accordion title="404">
    重試前請檢查 base URL、路徑與 model ID。
  </Accordion>

  <Accordion title="413">
    重試前請先降低上傳大小。
  </Accordion>

  <Accordion title="429">
    請使用指數退避重試，並降低並行數。
  </Accordion>

  <Accordion title="500 or 503">
    針對暫時性的 provider 或服務錯誤，請使用退避策略重試。
  </Accordion>
</AccordionGroup>

<Tip>
  如需實作模式，請參閱[錯誤代碼與重試策略](/zh-Hant/guides/error-codes-and-retry-strategy)與[速率限制與並行](/zh-Hant/guides/rate-limits-and-concurrency)。
</Tip>

## 定價與模型目錄

<CardGroup cols={3}>
  <Card title="模型頁面" icon="list" href="/overview/models">
    了解 CometAPI 如何在文件中呈現 model ID。
  </Card>

  <Card title="模型目錄" icon="puzzle-piece" href="https://www.cometapi.com/models/">
    瀏覽模型的可用性與能力。
  </Card>

  <Card title="定價" icon="tag" href="https://www.cometapi.com/pricing/">
    在呼叫模型前先確認定價。
  </Card>
</CardGroup>
