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

# Microsoft AI: MAI-Voice-2.1

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

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

MAI-Voice-2.1 daripada Microsoft AI menjana pertuturan berbilang bahasa yang ekspresif untuk narasi, buku audio, kandungan pendidikan dan suara latar. Profil 23 bahasanya menyokong identiti penutur yang konsisten, berbilang penutur dan penyampaian terkawal.

- [**Ailoot Ultra · Penjanaan suara** `POST /v1/audio/speech` `microsoft/mai-voice-2.1`](https://ailoot.ai/models/ms/microsoft-mai-voice-2-1/#method-0)

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

MAI-Voice-2.1 ialah model teks ke pertuturan berpandukan prompt daripada Microsoft AI untuk kerja yang mementingkan penyampaian ekspresif dan kesetiaan audio. Kad modelnya meliputi dua puluh tiga bahasa dan dua puluh enam varian setempat, dengan intonasi, irama dan nuansa emosi yang semula jadi. Pengeluar mengenal pasti buku audio, narasi media, penciptaan kandungan dan suara latar sebagai kegunaan utama. Edisi ini menekankan kandungan ekspresif yang lebih panjang; MAI-Voice-2.1-Flash ialah pilihan berasingan yang direka untuk interaksi yang sensitif terhadap kependaman.

#### Narasi dengan penutur yang konsisten

Kad model mendokumenkan satu identiti suara yang dihasilkan secara konsisten merentas bahasa yang disokong. Penjanaan bentuk panjang menggunakan pembahagian kepada cebisan dan penerusan konteks untuk meningkatkan kesinambungan antara petikan. Ini berguna untuk pelajaran, bab buku audio atau rangkaian bahagian suara latar yang berkaitan dan perlu mengekalkan perwatakan pencerita. Sediakan petikan yang koheren dengan sempadan yang jelas dan kekalkan pilihan penutur yang sama sepanjang karya.

Inputnya ialah transkrip akhir, dengan rujukan penutur pilihan dan kawalan ekspresif SSML. Taklimat narasi patut membezakan perkara yang didengar oleh pendengar daripada nota produksi. Untuk penerangan teknikal, tulis pengenalan yang jelas, kemudian langkah sebenar dan arahan penutup. Kekalkan nama produk dan istilah berulang dalam bentuk bertulis yang konsisten. Untuk narasi yang disetempatkan, sediakan skrip bahasa sasaran; bahasa dan suara pilihan menentukan cara ia dituturkan.

#### Penutur, peranan dan kawalan ekspresif

Microsoft menyediakan pustaka suara yang dipilih susun dan mendokumenkan berbilang penutur untuk dialog. Harper dan Grant menggambarkan identiti penutur dengan entri bagi beberapa varian setempat. Perbualan pendidikan dua orang boleh memberikan soalan dan penerangan kepada suara yang berbeza, dengan mengekalkan penugasan yang sama apabila sesuatu peranan muncul semula. Labelkan baris pertuturan dengan jelas supaya perbualan yang dikehendaki diwakili dalam input sintesis.

Nada dan penyampaian boleh dibentuk pada peringkat giliran atau ayat melalui SSML. Gaya adalah khusus kepada penutur: katalog terurus menyenaraikan gaya pencerita atau pendidikan yang berorientasikan tugas untuk suara yang sesuai, serta pilihan emosi seperti gembira atau lega untuk suara lain. Entri Harper AS menyokong kedua-dua gaya emosi itu. Pilih penutur bersama gaya penyampaiannya yang didokumenkan dan bukannya memindahkan gaya daripada suara lain.

Untuk cerita atau pembentangan, ekspresiviti boleh membezakan penerangan fakta, petikan bersifat renungan dan petikan kata-kata yang penuh semangat. Ayat praktikal ialah: “Percubaan pertama memberikan gambaran yang tidak lengkap kepada kami. Melihat keseluruhan urutan menjadikan langkah yang hilang itu jelas.” Tentukan tempat makna berubah dan sediakan unit pertuturan sewajarnya. Dengar peralihannya supaya penyampaian mengikuti naratif dan bukannya menjadikan setiap ayat sama kuat penekanannya.

#### Suara rujukan dan hasil audio

Mod suara tersuai pilihan memadankan penutur yang telah memberikan persetujuan berdasarkan rujukan audio selama lima hingga enam puluh saat tanpa penalaan halus. Microsoft mengesyorkan penyampaian perbualan yang semula jadi dan tenaga sederhana dalam rujukan itu, kerana sampel mempengaruhi suara yang dijana. Aliran kerja suara tersuainya memerlukan kelulusan pengeluar dan pernyataan persetujuan yang dirakam. Pustaka terbina dalam ialah laluan pemilihan suara yang berasingan.

Pengeluar membenarkan format output dipilih, dan contoh sintesis yang diterbitkannya menyimpan MP3 mono pada 24 kHz dan 160 kbit/s. Tetapan ini menerangkan satu aliran kerja output. Pilih perwakilan audio untuk peringkat penyuntingan atau main balik seterusnya, dan pastikan skrip, penutur serta susunan bahagian dikaitkan dengan rakaman. Bab atau pelajaran yang siap boleh mengandungi beberapa petikan yang dijana sambil kekal sebagai satu pengalaman mendengar yang koheren.

#### Gunakan hasil bentuk panjang

MAI-Voice-2.1 berorientasikan pertuturan yang semula jadi dan ekspresi apabila masa respons segera kurang penting berbanding persembahan pertuturan. Untuk karya yang panjang, semak nama berulang, sempadan bahagian, suara yang diberikan kepada dialog dan perubahan nada emosi. Dokumentasi menetapkan keupayaan bentuk panjang serta mekanisme ketekalan tanpa menyatakan skrip tanpa had atau tempoh rakaman maksimum yang dijamin. Hasil praktikal ialah audio ekspresif yang pencerita, perkataan dan perkembangannya sepadan dengan bahan yang telah disediakan.

**Ailoot Ultra · Penjanaan suara** `POST /v1/audio/speech` `microsoft/mai-voice-2.1`

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

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

### Pengenalan

MAI-Voice-2.1 daripada Microsoft AI menjana pertuturan berbilang bahasa yang ekspresif untuk narasi, buku audio, kandungan pendidikan dan suara latar. Profil 23 bahasanya menyokong identiti penutur yang konsisten, berbilang penutur dan penyampaian terkawal.

Input yang diterima

Teks

Hasil

Audio

### Tersedia di Ailoot · input & kaedah

**Ailoot Ultra · Penjanaan suara** `POST /v1/audio/speech`

Input

`text`

Output

`audio`

Format output

mp3

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had microsoft/mai-voice-2.1 | Lalai— |
| Medan`input` | Jenis`string` | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 Unit: aksara Unicode | Lalai— |
| Medan`voice` | Jenis`string` | KeperluanDiperlukan | Nilai & had 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 | Lalai— |
| Medan`response_format` | Jenis`string` | KeperluanDiperlukan | Nilai & had mp3 | Lalai— |

Gabungan bahan input

**text\_to\_speech** · Diperlukan: input

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, input, voice, response\_format |
| Parameter`voice_ids` | Kontrakcs-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 |
| Parameter`response_format` | Kontrakmp3 |
| Parameter`max_input_characters` | Kontraknull |
| Parameter`other_options` | Kontrakfalse |
| Parameter`input` | Kontrakteks UTF-8 tepat; kiraan aksara Unicode tanpa penormalan |
| Parameter`material_types` | Kontraktext |

Kitar hayat: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · task\_id sebenar yang dikembalikan atau rekod pustaka media

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

`GET /v1/media/assets`

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

Pilih suara yang tepat daripada profil model ini.

Aksara input dan saat audio ialah ukuran penggunaan yang berbeza.

### Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas

Tidak dinyatakan Apabila mod pantas dipilih

Mod flex

Tidak dinyatakan Apabila mod flex dipilih

Usaha penaakulan maksimum

Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Kadar Ailoot

#### Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

| Konfigurasi | Jadual kadar | Kuantiti yang boleh dibilkan | Unit pengebilan | Caj |
| --- | --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Kuantiti yang boleh dibilkan— | Unit pengebilan— | Caj Input · Token input **—** / 1K token Output · Token output **—** / 1K token Input · Bacaan cache **—** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |
| KonfigurasiUltra | Jadual kadar— | Kuantiti yang boleh dibilkanSetiap titik kod Unicode dikira sebagai satu aksara, termasuk aksara Han. | Unit pengebilanbagi setiap 1K aksara masukan | Caj Input · aksara input **$0.044** bagi setiap 1K aksara masukan |

#### Butiran tarif rujukan

Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.

Microsoft AI: MAI-Voice-2.1

#### Harga mengikut konfigurasi

| Konfigurasi | Syarat pengebilan | Caj |
| --- | --- | --- |
| KonfigurasiMicrosoft AI: MAI-Voice-2.1 · Konfigurasi lalai | Syarat pengebilanKonfigurasi lalai | Caj Input · Aksara input **USD 0.000044** bagi setiap aksara masukan |

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Penjanaan suara

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

### Terima dan simpan hasil

#### Ailoot Ultra · Penjanaan suara

mp3

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

Pembacaan kandungan lain

Pustaka mediaStatus tugasButiran aset

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

##### Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Simpan hasil binari dan pengepala yang lengkap. Jika JSON atau berbilang output dikembalikan, simpan setiap item data dan dapatkan setiap URL aset bertandatangan yang sebenar.

##### Jika respons asal perlu disemak

Simpan operation\_id/X-Client-Request-ID asal untuk penyelarasan rekod tanpa penghantaran semula; tiada laluan khusus untuk meninjau status audio.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`binary audio` | Jenisbytes |
| Medan`response headers` | Jenisheaders |

Ralat dan langkah seterusnya

| Respons | Syarat | Langkah seterusnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |
| Respons`server_error` | SyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan | Langkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan. |

### Alias

#### Alias model

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

#### Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

#### ID pemanggil berkaitan

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

FAQ · Microsoft AI: MAI-Voice-2.1

Apakah input dan hasil yang tersedia?

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

Apakah medan yang digunakan oleh permintaan?

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

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

## Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

## Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan

Pilih pelan berdiskaun untuk permintaan berkala anda.

Kod promosi sehingga 50%

Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.

Perbelanjaan dalam sejarah

Model, token dan jumlah disimpan bagi setiap permintaan.

[Pilih langganan](https://ailoot.ai/docs/ms/billing/subscriptions/) · [Lihat harga model](https://ailoot.ai/models/ms/)

## Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial

Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.

Lesen penjual semula

Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.

Dokumen pada laman

Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

[Mohon lesen penjual semula](mailto:support@ailoot.ai) · [Tawaran dan perjanjian lesen](https://ailoot.ai/legal/offer?lang=ms)

## Ailoot · Syarikat dan portfolio projeknya





Ailoot berteraskan pengalaman operasi yang mantap, pangkalan pelanggan yang besar, perkhidmatan yang stabil dan pemantauan KPI berterusan.





Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.





Ailoot menggunakan pengalaman operasi ini untuk akses API kepada ciri AI dalam produk pelanggan, ejen, aplikasi dan automasi.
