Source: https://ailoot.ai/models/zh-hant-tw/microsoft-mai-voice-2-1/
Canonical: https://ailoot.ai/models/zh-hant-tw/microsoft-mai-voice-2-1/
Language: zh-hant-tw

# Microsoft AI: MAI-Voice-2.1

[Markdown](https://ailoot.ai/models/zh-hant-tw/microsoft-mai-voice-2-1/index.md) · [JSON](https://ailoot.ai/models/zh-hant-tw/microsoft-mai-voice-2-1/facts.json)

## [Microsoft AI: MAI-Voice-2.1](https://ailoot.ai/models/zh-hant-tw/microsoft-mai-voice-2-1/)

Microsoft AI 的 MAI-Voice-2.1 可為旁白、有聲書、教學內容及配音，生成富有表現力的多語言語音。其 23 種語言規格支援一致的說話者聲音、多位說話者，以及可控制的表達方式。

- [**Ailoot Ultra · 語音合成** `POST /v1/audio/speech` `microsoft/mai-voice-2.1`](https://ailoot.ai/models/zh-hant-tw/microsoft-mai-voice-2-1/#method-0)

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。

MAI-Voice-2.1 是 Microsoft AI 透過提示控制的文字轉語音模型，適合重視表現力與音訊保真度的工作。其模型卡涵蓋 23 種語言、26 個地區設定，提供自然的語調、節奏與細膩情感。製造商將有聲書、媒體旁白、內容創作及配音列為主要用途。此版本著重較長、富有表現力的內容；針對對延遲敏感的互動，則有另一款 MAI-Voice-2.1-Flash。

#### 以一致的說話者聲音製作旁白

模型卡記載，同一個聲音身分可在支援的語言中一致呈現。長篇生成透過分塊與上下文延續，改善段落之間的連貫性。這適合需要保留敘述者特質的課程、有聲書章節，或一連串相關配音段落。請準備邊界清楚且連貫的段落，並在作品中維持相同的說話者選擇。

輸入是最終朗讀文稿，可另外提供說話者參考音訊與 SSML 表現控制。旁白需求說明應將聽眾會聽到的內容與製作備註區分。製作技術解說時，先寫清楚的導言，再寫實際步驟與結尾指示。產品名稱與反覆出現的術語應使用一致的書面形式。製作在地化旁白時，請準備目標語言文稿；所選語言與聲音會決定其語音呈現。

#### 說話者、角色與表現控制

Microsoft 提供經挑選的聲音庫，並記載可在對話中使用多位說話者。Harper 與 Grant 是說話者身分的例子，在多個地區設定都有項目。雙人教學對話可將問題與解釋分配給不同聲音，並在角色再次出現時維持原分配。請清楚標示台詞，讓合成輸入呈現預期的對話。

SSML 可在輪次或句子層級調整口吻、說話方式與情感。風格因說話者而異：受管理的目錄為適合的聲音列出任務導向的旁白或教學風格，並為其他聲音列出喜悅、如釋重負等情緒選項。美國版 Harper 項目支援上述兩種情緒風格。應將說話者與其文件記載的風格一併選擇，而非移用另一個聲音的風格。

在故事或簡報中，表現力可以區分事實說明、反思段落與生動引述。例如：「第一次嘗試讓我們看到的景象並不完整。檢視整個過程後，缺少的步驟就清楚了。」請決定意義在哪裡改變，並據此準備發話單位。試聽轉換處，讓表達跟隨敘事發展，而非對每個句子給予同樣強烈的強調。

#### 參考聲音與音訊結果

選用的自訂聲音模式可從 5 至 60 秒的參考音訊，在無須微調的情況下匹配已取得同意的說話者。Microsoft 建議參考錄音採自然對話方式，活力適中，因為樣本會影響生成的聲音。其自訂聲音工作流程需要製造商核准，以及錄製的同意聲明。預建聲音庫則是另一條聲音選擇途徑。

製造商允許選擇輸出格式，其公開合成範例儲存為 24 kHz、160 kbit/s 的單聲道 MP3。這些設定描述一種輸出工作流程。請依下一個編輯或播放階段選擇音訊表示方式，並將文稿、說話者及段落順序與錄音建立關聯。完成的章節或課程可包含數個生成段落，同時維持連貫的聆聽體驗。

#### 使用長篇結果

MAI-Voice-2.1 適合即時回應速度的重要性低於語音表現時，追求自然與表現力的工作。製作較長作品時，請檢查反覆出現的名稱、段落邊界、對話分配的聲音，以及情緒層次的變化。文件確立了長篇能力與維持一致性的機制，但未指定無限長文稿或保證最長錄音時間。實際交付成果是富有表現力的音訊，其敘述者、用詞與進展都符合準備的素材。

**Ailoot Ultra · 語音合成** `POST /v1/audio/speech` `microsoft/mai-voice-2.1`

[`microsoft/mai-voice-2.1`](https://ailoot.ai/models/zh-hant-tw/#m=microsoft%2Fmai-voice-2.1&route=Ultra&caller=microsoft%2Fmai-voice-2.1&fmt=speech)

Microsoft AI /`microsoft/mai-voice-2.1`

### 入門

Microsoft AI 的 MAI-Voice-2.1 可為旁白、有聲書、教學內容及配音，生成富有表現力的多語言語音。其 23 種語言規格支援一致的說話者聲音、多位說話者，以及可控制的表達方式。

接受的輸入

文字

結果

音訊

### Ailoot 可用 · 輸入與方法

**Ailoot Ultra · 語音合成** `POST /v1/audio/speech`

輸入

`text`

輸出

`audio`

輸出格式

mp3

| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
| --- | --- | --- | --- | --- |
| 欄位`model` | 類型`string` | 要求必填 | 值與限制 microsoft/mai-voice-2.1 | 預設值— |
| 欄位`input` | 類型`string` | 要求必填 | 值與限制 長度下限: 1 單位: Unicode 字元 | 預設值— |
| 欄位`voice` | 類型`string` | 要求必填 | 值與限制 cs-CZ-Grant:MAI-Voice-2.1, cs-CZ-Harper:MAI-Voice-2.1, da-DK-Grant:MAI-Voice-2.1, da-DK-Harper:MAI-Voice-2.1, de-DE-Grant:MAI-Voice-2.1, de-DE-Harper:MAI-Voice-2.1, de-DE-Klaus:MAI-Voice-2.1, de-DE-Mia:MAI-Voice-2.1, en-AU-Isla:MAI-Voice-2.1, en-GB-Emily:MAI-Voice-2.1, en-GB-Harry:MAI-Voice-2.1, en-IN-Dhruv:MAI-Voice-2.1, en-IN-Priya:MAI-Voice-2.1, en-US-Ethan:MAI-Voice-2.1, en-US-Grant:MAI-Voice-2.1, en-US-Harper:MAI-Voice-2.1, en-US-Iris:MAI-Voice-2.1, en-US-Jasper:MAI-Voice-2.1, en-US-Olivia:MAI-Voice-2.1, en-US-Sage:MAI-Voice-2.1, es-ES-Marta:MAI-Voice-2.1, es-MX-Alejo:MAI-Voice-2.1, es-MX-Grant:MAI-Voice-2.1, es-MX-Harper:MAI-Voice-2.1, es-MX-Valeria:MAI-Voice-2.1, fi-FI-Grant:MAI-Voice-2.1, fi-FI-Harper:MAI-Voice-2.1, fr-FR-Grant:MAI-Voice-2.1, fr-FR-Harper:MAI-Voice-2.1, fr-FR-Marc:MAI-Voice-2.1, fr-FR-Soleil:MAI-Voice-2.1, hi-IN-Arjun:MAI-Voice-2.1, hi-IN-Dhruv:MAI-Voice-2.1, hi-IN-Grant:MAI-Voice-2.1, hi-IN-Harper:MAI-Voice-2.1, hi-IN-Kavya:MAI-Voice-2.1, hi-IN-Priya:MAI-Voice-2.1, hu-HU-Bence:MAI-Voice-2.1, hu-HU-Grant:MAI-Voice-2.1, hu-HU-Harper:MAI-Voice-2.1, hu-HU-Levente:MAI-Voice-2.1, hu-HU-Lilla:MAI-Voice-2.1, hu-HU-Reka:MAI-Voice-2.1, id-ID-Grant:MAI-Voice-2.1, id-ID-Harper:MAI-Voice-2.1, it-IT-Grant:MAI-Voice-2.1, it-IT-Harper:MAI-Voice-2.1, it-IT-Luca:MAI-Voice-2.1, it-IT-Rosa:MAI-Voice-2.1, ko-KR-Grant:MAI-Voice-2.1, ko-KR-Haena:MAI-Voice-2.1, ko-KR-Harper:MAI-Voice-2.1, ko-KR-Junho:MAI-Voice-2.1, nb-NO-Grant:MAI-Voice-2.1, nb-NO-Harper:MAI-Voice-2.1, nl-NL-Grant:MAI-Voice-2.1, nl-NL-Harper:MAI-Voice-2.1, nl-NL-Sander:MAI-Voice-2.1, pl-PL-Grant:MAI-Voice-2.1, pl-PL-Harper:MAI-Voice-2.1, pt-BR-Caio:MAI-Voice-2.1, pt-BR-Grant:MAI-Voice-2.1, pt-BR-Harper:MAI-Voice-2.1, pt-BR-Luana:MAI-Voice-2.1, pt-BR-Pedro:MAI-Voice-2.1, pt-BR-Rafael:MAI-Voice-2.1, pt-PT-Grant:MAI-Voice-2.1, pt-PT-Harper:MAI-Voice-2.1, pt-PT-Rui:MAI-Voice-2.1, ro-RO-Andrei:MAI-Voice-2.1, ro-RO-Elena:MAI-Voice-2.1, ro-RO-Grant:MAI-Voice-2.1, ro-RO-Harper:MAI-Voice-2.1, ro-RO-Ioana:MAI-Voice-2.1, ro-RO-Radu:MAI-Voice-2.1, ru-RU-Grant:MAI-Voice-2.1, ru-RU-Harper:MAI-Voice-2.1, ru-RU-Lev:MAI-Voice-2.1, ru-RU-Masha:MAI-Voice-2.1, sv-SE-Grant:MAI-Voice-2.1, sv-SE-Harper:MAI-Voice-2.1, th-TH-Grant:MAI-Voice-2.1, th-TH-Harper:MAI-Voice-2.1, th-TH-Krit:MAI-Voice-2.1, th-TH-Nattapong:MAI-Voice-2.1, tr-TR-Aydin:MAI-Voice-2.1, tr-TR-Elif:MAI-Voice-2.1, tr-TR-Grant:MAI-Voice-2.1, tr-TR-Harper:MAI-Voice-2.1, vi-VN-Grant:MAI-Voice-2.1, vi-VN-Harper:MAI-Voice-2.1, zh-CN-Bo:MAI-Voice-2.1, zh-CN-Grant:MAI-Voice-2.1, zh-CN-Harper:MAI-Voice-2.1, zh-CN-Lan:MAI-Voice-2.1, zh-CN-Mei:MAI-Voice-2.1, zh-CN-Wei:MAI-Voice-2.1 | 預設值— |
| 欄位`response_format` | 類型`string` | 要求必填 | 值與限制 mp3 | 預設值— |

輸入素材組合

**text\_to\_speech** · 必填： input

方法參數與生命週期

| 參數 | 規格 |
| --- | --- |
| 參數`content_type` | 規格application/json |
| 參數`required` | 規格model, input, voice, response\_format |
| 參數`voice_ids` | 規格cs-CZ-Grant:MAI-Voice-2.1, cs-CZ-Harper:MAI-Voice-2.1, da-DK-Grant:MAI-Voice-2.1, da-DK-Harper:MAI-Voice-2.1, de-DE-Grant:MAI-Voice-2.1, de-DE-Harper:MAI-Voice-2.1, de-DE-Klaus:MAI-Voice-2.1, de-DE-Mia:MAI-Voice-2.1, en-AU-Isla:MAI-Voice-2.1, en-GB-Emily:MAI-Voice-2.1, en-GB-Harry:MAI-Voice-2.1, en-IN-Dhruv:MAI-Voice-2.1, en-IN-Priya:MAI-Voice-2.1, en-US-Ethan:MAI-Voice-2.1, en-US-Grant:MAI-Voice-2.1, en-US-Harper:MAI-Voice-2.1, en-US-Iris:MAI-Voice-2.1, en-US-Jasper:MAI-Voice-2.1, en-US-Olivia:MAI-Voice-2.1, en-US-Sage:MAI-Voice-2.1, es-ES-Marta:MAI-Voice-2.1, es-MX-Alejo:MAI-Voice-2.1, es-MX-Grant:MAI-Voice-2.1, es-MX-Harper:MAI-Voice-2.1, es-MX-Valeria:MAI-Voice-2.1, fi-FI-Grant:MAI-Voice-2.1, fi-FI-Harper:MAI-Voice-2.1, fr-FR-Grant:MAI-Voice-2.1, fr-FR-Harper:MAI-Voice-2.1, fr-FR-Marc:MAI-Voice-2.1, fr-FR-Soleil:MAI-Voice-2.1, hi-IN-Arjun:MAI-Voice-2.1, hi-IN-Dhruv:MAI-Voice-2.1, hi-IN-Grant:MAI-Voice-2.1, hi-IN-Harper:MAI-Voice-2.1, hi-IN-Kavya:MAI-Voice-2.1, hi-IN-Priya:MAI-Voice-2.1, hu-HU-Bence:MAI-Voice-2.1, hu-HU-Grant:MAI-Voice-2.1, hu-HU-Harper:MAI-Voice-2.1, hu-HU-Levente:MAI-Voice-2.1, hu-HU-Lilla:MAI-Voice-2.1, hu-HU-Reka:MAI-Voice-2.1, id-ID-Grant:MAI-Voice-2.1, id-ID-Harper:MAI-Voice-2.1, it-IT-Grant:MAI-Voice-2.1, it-IT-Harper:MAI-Voice-2.1, it-IT-Luca:MAI-Voice-2.1, it-IT-Rosa:MAI-Voice-2.1, ko-KR-Grant:MAI-Voice-2.1, ko-KR-Haena:MAI-Voice-2.1, ko-KR-Harper:MAI-Voice-2.1, ko-KR-Junho:MAI-Voice-2.1, nb-NO-Grant:MAI-Voice-2.1, nb-NO-Harper:MAI-Voice-2.1, nl-NL-Grant:MAI-Voice-2.1, nl-NL-Harper:MAI-Voice-2.1, nl-NL-Sander:MAI-Voice-2.1, pl-PL-Grant:MAI-Voice-2.1, pl-PL-Harper:MAI-Voice-2.1, pt-BR-Caio:MAI-Voice-2.1, pt-BR-Grant:MAI-Voice-2.1, pt-BR-Harper:MAI-Voice-2.1, pt-BR-Luana:MAI-Voice-2.1, pt-BR-Pedro:MAI-Voice-2.1, pt-BR-Rafael:MAI-Voice-2.1, pt-PT-Grant:MAI-Voice-2.1, pt-PT-Harper:MAI-Voice-2.1, pt-PT-Rui:MAI-Voice-2.1, ro-RO-Andrei:MAI-Voice-2.1, ro-RO-Elena:MAI-Voice-2.1, ro-RO-Grant:MAI-Voice-2.1, ro-RO-Harper:MAI-Voice-2.1, ro-RO-Ioana:MAI-Voice-2.1, ro-RO-Radu:MAI-Voice-2.1, ru-RU-Grant:MAI-Voice-2.1, ru-RU-Harper:MAI-Voice-2.1, ru-RU-Lev:MAI-Voice-2.1, ru-RU-Masha:MAI-Voice-2.1, sv-SE-Grant:MAI-Voice-2.1, sv-SE-Harper:MAI-Voice-2.1, th-TH-Grant:MAI-Voice-2.1, th-TH-Harper:MAI-Voice-2.1, th-TH-Krit:MAI-Voice-2.1, th-TH-Nattapong:MAI-Voice-2.1, tr-TR-Aydin:MAI-Voice-2.1, tr-TR-Elif:MAI-Voice-2.1, tr-TR-Grant:MAI-Voice-2.1, tr-TR-Harper:MAI-Voice-2.1, vi-VN-Grant:MAI-Voice-2.1, vi-VN-Harper:MAI-Voice-2.1, zh-CN-Bo:MAI-Voice-2.1, zh-CN-Grant:MAI-Voice-2.1, zh-CN-Harper:MAI-Voice-2.1, zh-CN-Lan:MAI-Voice-2.1, zh-CN-Mei:MAI-Voice-2.1, zh-CN-Wei:MAI-Voice-2.1 |
| 參數`response_format` | 規格mp3 |
| 參數`max_input_characters` | 規格null |
| 參數`other_options` | 規格false |
| 參數`input` | 規格完全相符的 UTF-8 文字；不經正規化的 Unicode 字元計數 |
| 參數`material_types` | 規格text |

生命週期： `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · 實際回傳的 task\_id 或媒體庫紀錄

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

請從此模型設定檔中選擇完全相符的語音。

輸入字元數與音訊秒數是不同的計量方式。

### 方案

費率資訊不會增加請求選項。支援的參數列於所選方法中。

快速模式

未指定 選取快速模式時

flex 模式

未指定 選取 flex 模式時

最高推理強度

未指定 最高推理強度採用 default 調整值時

#### Ailoot 費率

#### 各設定的價格

請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。

| 設定 | 費率表 | 應計費數量 | 計費單位 | 費用 |
| --- | --- | --- | --- | --- |
| 設定基礎 token 費率 | 費率表基本費率 | 應計費數量— | 計費單位— | 費用 輸入 · 輸入 Token **—** / 1K Token 輸出 · 輸出 Token **—** / 1K Token 輸入 · 讀取快取 **—** / 1K Token 輸入 · 寫入快取 **—** / 1K Token 輸入 · 寫入快取，1 小時 **—** / 1K Token |
| 設定Ultra | 費率表— | 應計費數量每個 Unicode 碼位均計為一個字元，漢字亦同。 | 計費單位每 1K 個輸入字元 | 費用 輸入 · 輸入字元 **$0.044** 每 1K 個輸入字元 |

#### 參考費率詳情

模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。

Microsoft AI: MAI-Voice-2.1

#### 各設定的價格

| 設定 | 計費條件 | 費用 |
| --- | --- | --- |
| 設定Microsoft AI: MAI-Voice-2.1 · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入字元數 **US$0.000044** 每個輸入字元 |

Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。[預留金額與結算的運作方式 →](https://ailoot.ai/docs/zh-hant-tw/billing/reserve/)

### 請求範例

#### Ailoot Ultra · 語音合成

curl

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "microsoft/mai-voice-2.1", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["cs-CZ-Grant:MAI-Voice-2.1", "cs-CZ-Harper:MAI-Voice-2.1", "da-DK-Grant:MAI-Voice-2.1", "da-DK-Harper:MAI-Voice-2.1", "de-DE-Grant:MAI-Voice-2.1", "de-DE-Harper:MAI-Voice-2.1", "de-DE-Klaus:MAI-Voice-2.1", "de-DE-Mia:MAI-Voice-2.1", "en-AU-Isla:MAI-Voice-2.1", "en-GB-Emily:MAI-Voice-2.1", "en-GB-Harry:MAI-Voice-2.1", "en-IN-Dhruv:MAI-Voice-2.1", "en-IN-Priya:MAI-Voice-2.1", "en-US-Ethan:MAI-Voice-2.1", "en-US-Grant:MAI-Voice-2.1", "en-US-Harper:MAI-Voice-2.1", "en-US-Iris:MAI-Voice-2.1", "en-US-Jasper:MAI-Voice-2.1", "en-US-Olivia:MAI-Voice-2.1", "en-US-Sage:MAI-Voice-2.1", "es-ES-Marta:MAI-Voice-2.1", "es-MX-Alejo:MAI-Voice-2.1", "es-MX-Grant:MAI-Voice-2.1", "es-MX-Harper:MAI-Voice-2.1", "es-MX-Valeria:MAI-Voice-2.1", "fi-FI-Grant:MAI-Voice-2.1", "fi-FI-Harper:MAI-Voice-2.1", "fr-FR-Grant:MAI-Voice-2.1", "fr-FR-Harper:MAI-Voice-2.1", "fr-FR-Marc:MAI-Voice-2.1", "fr-FR-Soleil:MAI-Voice-2.1", "hi-IN-Arjun:MAI-Voice-2.1", "hi-IN-Dhruv:MAI-Voice-2.1", "hi-IN-Grant:MAI-Voice-2.1", "hi-IN-Harper:MAI-Voice-2.1", "hi-IN-Kavya:MAI-Voice-2.1", "hi-IN-Priya:MAI-Voice-2.1", "hu-HU-Bence:MAI-Voice-2.1", "hu-HU-Grant:MAI-Voice-2.1", "hu-HU-Harper:MAI-Voice-2.1", "hu-HU-Levente:MAI-Voice-2.1", "hu-HU-Lilla:MAI-Voice-2.1", "hu-HU-Reka:MAI-Voice-2.1", "id-ID-Grant:MAI-Voice-2.1", "id-ID-Harper:MAI-Voice-2.1", "it-IT-Grant:MAI-Voice-2.1", "it-IT-Harper:MAI-Voice-2.1", "it-IT-Luca:MAI-Voice-2.1", "it-IT-Rosa:MAI-Voice-2.1", "ko-KR-Grant:MAI-Voice-2.1", "ko-KR-Haena:MAI-Voice-2.1", "ko-KR-Harper:MAI-Voice-2.1", "ko-KR-Junho:MAI-Voice-2.1", "nb-NO-Grant:MAI-Voice-2.1", "nb-NO-Harper:MAI-Voice-2.1", "nl-NL-Grant:MAI-Voice-2.1", "nl-NL-Harper:MAI-Voice-2.1", "nl-NL-Sander:MAI-Voice-2.1", "pl-PL-Grant:MAI-Voice-2.1", "pl-PL-Harper:MAI-Voice-2.1", "pt-BR-Caio:MAI-Voice-2.1", "pt-BR-Grant:MAI-Voice-2.1", "pt-BR-Harper:MAI-Voice-2.1", "pt-BR-Luana:MAI-Voice-2.1", "pt-BR-Pedro:MAI-Voice-2.1", "pt-BR-Rafael:MAI-Voice-2.1", "pt-PT-Grant:MAI-Voice-2.1", "pt-PT-Harper:MAI-Voice-2.1", "pt-PT-Rui:MAI-Voice-2.1", "ro-RO-Andrei:MAI-Voice-2.1", "ro-RO-Elena:MAI-Voice-2.1", "ro-RO-Grant:MAI-Voice-2.1", "ro-RO-Harper:MAI-Voice-2.1", "ro-RO-Ioana:MAI-Voice-2.1", "ro-RO-Radu:MAI-Voice-2.1", "ru-RU-Grant:MAI-Voice-2.1", "ru-RU-Harper:MAI-Voice-2.1", "ru-RU-Lev:MAI-Voice-2.1", "ru-RU-Masha:MAI-Voice-2.1", "sv-SE-Grant:MAI-Voice-2.1", "sv-SE-Harper:MAI-Voice-2.1", "th-TH-Grant:MAI-Voice-2.1", "th-TH-Harper:MAI-Voice-2.1", "th-TH-Krit:MAI-Voice-2.1", "th-TH-Nattapong:MAI-Voice-2.1", "tr-TR-Aydin:MAI-Voice-2.1", "tr-TR-Elif:MAI-Voice-2.1", "tr-TR-Grant:MAI-Voice-2.1", "tr-TR-Harper:MAI-Voice-2.1", "vi-VN-Grant:MAI-Voice-2.1", "vi-VN-Harper:MAI-Voice-2.1", "zh-CN-Bo:MAI-Voice-2.1", "zh-CN-Grant:MAI-Voice-2.1", "zh-CN-Harper:MAI-Voice-2.1", "zh-CN-Lan:MAI-Voice-2.1", "zh-CN-Mei:MAI-Voice-2.1", "zh-CN-Wei:MAI-Voice-2.1"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.mp3
```

### 接收並儲存結果

#### Ailoot Ultra · 語音合成

mp3

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

其他內容讀取方式

媒體庫工作狀態素材詳細資訊

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
```

##### 保留所有已完成的結果

請保留所有完整傳回的回應、檔案與內容區塊。

保留完整的二進位結果與標頭。若回傳 JSON 或多個輸出，請保留所有資料項目，並透過每個實際回傳的已簽署資產 URL 取得內容。

##### 需要檢查原始回應時

保留原始 operation\_id/X-Client-Request-ID 以供核對，請勿重新提交；沒有專用的音訊輪詢路由。

回應欄位

| 欄位 | 類型 |
| --- | --- |
| 欄位`binary audio` | 類型bytes |
| 欄位`response headers` | 類型headers |

錯誤與後續步驟

| 回應 | 條件 | 下一步 |
| --- | --- | --- |
| 回應400 · `invalid_request_error` | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前，先修正指定欄位。 |
| 回應`server_error` | 條件回傳的回應表示該作業或結果需要檢查 | 下一步保留原始回傳的作業／任務 ID、請求標頭與回應；繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。 |

### 別名

#### 模型別名

**Ailoot Ultra** [`microsoft/mai-voice-2.1`](https://ailoot.ai/models/zh-hant-tw/#m=microsoft%2Fmai-voice-2.1&route=Ultra&caller=microsoft%2Fmai-voice-2.1&fmt=speech)

#### 方法路徑別名

請使用上方列出的 API 方法路徑。

#### 相關呼叫用 ID

[`microsoft/mai-voice-2.1`](https://ailoot.ai/models/zh-hant-tw/#m=microsoft%2Fmai-voice-2.1&route=Ultra&caller=microsoft%2Fmai-voice-2.1&fmt=speech)

FAQ · Microsoft AI: MAI-Voice-2.1

可以使用哪些輸入與結果？

`POST /v1/audio/speech` · `microsoft/mai-voice-2.1`: `text` → `audio`

請求使用哪些欄位？

`POST /v1/audio/speech` · `microsoft/mai-voice-2.1`: `model`, `input`, `voice`, `response_format`

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

## 公司及其專案組合

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

## 優惠購買 token。

訂閱優惠適合持續工作，折扣碼購買 token 最高可折 50%。

訂閱

為定期請求選擇優惠方案。

最高 50% 折扣碼

購買時輸入代碼，價格依活動重算。

歷史中的費用

每次請求保存模型、token 與金額。

[選擇訂閱](https://ailoot.ai/docs/zh-hant-tw/billing/subscriptions/) · [查看模型價格](https://ailoot.ai/models/zh-hant-tw/)

## 將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人；轉售請申請經銷授權。

商用應用程式

在付費功能加入文字、圖片、影片與聲音生成。

經銷授權

提供專案說明與存取方式，要求書面使用和轉售條件。

網站文件

串接前可閱讀正式服務條款、授權合約與資料處理政策。

[申請經銷授權](mailto:support@ailoot.ai) · [正式服務條款與授權合約](https://ailoot.ai/legal/offer?lang=zh-hant-tw)

## Ailoot · 公司及其專案組合





Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。





公司及其專案組合：數百萬客戶，每月銷售額達數十億。





Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
