모델

Microsoft AI: MAI-Voice-2.1-Flash

Markdown · JSON

Microsoft AI: MAI-Voice-2.1-Flash

Microsoft AI의 MAI-Voice-2.1-Flash는 대화형 음성 애플리케이션을 위해 23개 언어의 표현력 있는 음성을 생성합니다. 선별된 목소리 라이브러리를 제공하며 스트리밍, 다중 화자, 문장 수준의 표현 제어를 지원합니다.

모델 소개

이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.

MAI-Voice-2.1-Flash는 빠른 음성 상호작용을 중심으로 설계된 Microsoft AI의 프롬프트 기반 텍스트 음성 변환 모델입니다. 제조사는 음성 어시스턴트, 고객 지원 대화, 전화 메뉴용으로 소개합니다. 23개 언어에서 자연스럽고 표현력 있는 음성을 생성하며 어조와 표현을 제어합니다. Flash는 실시간 응답에 중점을 둔 버전입니다. 별도 이름의 MAI-Voice-2.1은 긴 콘텐츠의 세밀한 표현과 충실도를 우선합니다.

텍스트, 화자, 언어

입력은 읽을 발화문과 선택한 목소리이며 선택적으로 SSML 표현 지시를 추가합니다. 관리형 목소리 목록은 화자, 로캘, 모델 버전을 구분합니다. Harper와 Grant는 언어별 항목이 있는 화자의 예입니다. 의도한 목표 언어 텍스트를 사용하고 적절한 로캘을 선택하세요. 준비된 영어 인사와 스페인어 설명은 각자의 문구가 있는 별도 발화 문단입니다.

모델 카드는 지원 언어 전반의 일관된 목소리 정체성과 대화용 다중 화자를 문서화합니다. 이는 현지화된 안내 전반에 하나의 알아볼 수 있는 내레이터가 필요한 애플리케이션이나 역할이 다른 짧은 대화에 도움이 됩니다. 대사를 의도한 화자에 명시적으로 배정하고 배정을 안정적으로 유지하세요. 오디오는 해당 대본을 읽은 결과이며 열린 질문으로부터 새로 작성한 답변이 아닙니다.

어조와 말하기 스타일

Microsoft는 SSML을 통한 문장 및 대화 차례 수준의 감정과 표현 제어를 설명합니다. 사용 가능한 스타일은 선택한 목소리에 따라 다릅니다. 관리형 목록에는 narrator, educational, customer_call_center 같은 작업 스타일과 특정 화자의 표현 스타일이 포함됩니다. 예를 들어 미국 Harper 항목에는 joyful와 relieved가 있습니다. 모든 화자가 같은 집합을 허용한다고 가정하지 말고 목소리에서 지원하는 스타일을 선택하세요.

실용적인 지원 문장은 “적절한 문서를 찾도록 도와드릴 수 있습니다. 제목을 말하거나 주제를 설명해 주세요.”입니다. 청취자가 행동할 수 있을 만큼 짧게 요청하고 상호작용에 맞는 차분하거나 격려하는 표현을 선택하세요. 학습 활동에서는 설명과 다음 질문을 별도 발화 단위로 작성하세요. 대본이 의도 변화를 명확히 하면 표현력이 의미를 뒷받침합니다.

스트리밍과 오디오 전달

Flash 모델 카드는 청취자가 응답 중에 끼어드는 상황을 처리하는 워크플로를 포함해 실시간 대화용 스트리밍 출력을 명시합니다. 애플리케이션은 오디오가 도착하는 대로 재생하고 끼어들기와 다음 차례를 조율할 수 있습니다. 따라서 모든 응답을 먼저 완전한 녹음으로 준비할 필요 없이 발화 메시지의 타이밍이 상호작용의 일부가 됩니다.

제조사는 합성 워크플로에서 출력 형식을 지정할 수 있게 합니다. 공개 예제는 24 kHz, 160 kbit/s 모노 MP3 파일을 생성합니다. 이는 하나의 문서화된 출력 설정이며 고정된 기본 형식 제약이 아닙니다. 의도한 재생 경로가 받는 오디오 표현 방식을 선택하고 결과 검토를 위해 화자와 발화 문구를 보관하세요.

선택적인 참조 목소리 모드

Microsoft의 사용자 지정 목소리 모드는 미세 조정 없이 5~60초 참조 클립에서 동의받은 화자에 맞출 수 있습니다. 참조가 생성된 연기에 영향을 주므로 모델 카드는 적당한 에너지의 자연스러운 대화체를 권장합니다. 이 모드에는 별도의 제조사 승인 및 녹음된 동의 절차가 있습니다. 사전 설정 라이브러리 목소리는 다른 준비 경로를 이룹니다.

브랜드 내레이터를 정의할 참조에는 깨끗하고 대표적인 문단을 사용하고 어떤 표현을 새 대본에 가져올지 정하세요. 사전 설정 음성에는 애플리케이션이 사용할 실제 이름, 명령, 목표 언어 문구를 준비하세요. 선택한 목소리로 문단을 들어 보고 대화 차례 사이의 전환을 살피세요. 유용한 결과는 의도적으로 선택한 화자, 명확한 텍스트, 청취자의 재생 환경에 맞는 오디오로 이루어진 표현력 있는 음성 상호작용입니다.

Ailoot Ultra · 음성 합성 POST /v1/audio/speech microsoft/mai-voice-2.1-flash

microsoft/mai-voice-2.1-flash

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

시작하기

Microsoft AI의 MAI-Voice-2.1-Flash는 대화형 음성 애플리케이션을 위해 23개 언어의 표현력 있는 음성을 생성합니다. 선별된 목소리 라이브러리를 제공하며 스트리밍, 다중 화자, 문장 수준의 표현 제어를 지원합니다.

허용 입력
텍스트
결과
오디오

Ailoot에서 사용 가능 · 입력 및 메서드

Ailoot Ultra · 음성 합성 POST /v1/audio/speech
입력
text
출력
audio
출력 형식
mp3
필드유형요건값과 한도기본값
필드model유형string요건필수값과 한도
microsoft/mai-voice-2.1-flash
기본값—
필드input유형string요건필수값과 한도
최소 길이: 1
단위: Unicode 문자
기본값—
필드voice유형string요건필수값과 한도
cs-CZ-Grant:MAI-Voice-2.1-Flash, cs-CZ-Harper:MAI-Voice-2.1-Flash, da-DK-Grant:MAI-Voice-2.1-Flash, da-DK-Harper:MAI-Voice-2.1-Flash, de-DE-Grant:MAI-Voice-2.1-Flash, de-DE-Harper:MAI-Voice-2.1-Flash, de-DE-Klaus:MAI-Voice-2.1-Flash, de-DE-Mia:MAI-Voice-2.1-Flash, en-AU-Isla:MAI-Voice-2.1-Flash, en-GB-Emily:MAI-Voice-2.1-Flash, en-GB-Harry:MAI-Voice-2.1-Flash, en-IN-Dhruv:MAI-Voice-2.1-Flash, en-IN-Priya:MAI-Voice-2.1-Flash, en-US-Ethan:MAI-Voice-2.1-Flash, en-US-Grant:MAI-Voice-2.1-Flash, en-US-Harper:MAI-Voice-2.1-Flash, en-US-Iris:MAI-Voice-2.1-Flash, en-US-Jasper:MAI-Voice-2.1-Flash, en-US-Olivia:MAI-Voice-2.1-Flash, en-US-Sage:MAI-Voice-2.1-Flash, es-ES-Marta:MAI-Voice-2.1-Flash, es-MX-Alejo:MAI-Voice-2.1-Flash, es-MX-Grant:MAI-Voice-2.1-Flash, es-MX-Harper:MAI-Voice-2.1-Flash, es-MX-Valeria:MAI-Voice-2.1-Flash, fi-FI-Grant:MAI-Voice-2.1-Flash, fi-FI-Harper:MAI-Voice-2.1-Flash, fr-FR-Grant:MAI-Voice-2.1-Flash, fr-FR-Harper:MAI-Voice-2.1-Flash, fr-FR-Marc:MAI-Voice-2.1-Flash, fr-FR-Soleil:MAI-Voice-2.1-Flash, hi-IN-Arjun:MAI-Voice-2.1-Flash, hi-IN-Dhruv:MAI-Voice-2.1-Flash, hi-IN-Grant:MAI-Voice-2.1-Flash, hi-IN-Harper:MAI-Voice-2.1-Flash, hi-IN-Kavya:MAI-Voice-2.1-Flash, hi-IN-Priya:MAI-Voice-2.1-Flash, hu-HU-Bence:MAI-Voice-2.1-Flash, hu-HU-Grant:MAI-Voice-2.1-Flash, hu-HU-Harper:MAI-Voice-2.1-Flash, hu-HU-Levente:MAI-Voice-2.1-Flash, hu-HU-Lilla:MAI-Voice-2.1-Flash, hu-HU-Reka:MAI-Voice-2.1-Flash, id-ID-Grant:MAI-Voice-2.1-Flash, id-ID-Harper:MAI-Voice-2.1-Flash, it-IT-Grant:MAI-Voice-2.1-Flash, it-IT-Harper:MAI-Voice-2.1-Flash, it-IT-Luca:MAI-Voice-2.1-Flash, it-IT-Rosa:MAI-Voice-2.1-Flash, ko-KR-Grant:MAI-Voice-2.1-Flash, ko-KR-Haena:MAI-Voice-2.1-Flash, ko-KR-Harper:MAI-Voice-2.1-Flash, ko-KR-Junho:MAI-Voice-2.1-Flash, nb-NO-Grant:MAI-Voice-2.1-Flash, nb-NO-Harper:MAI-Voice-2.1-Flash, nl-NL-Grant:MAI-Voice-2.1-Flash, nl-NL-Harper:MAI-Voice-2.1-Flash, nl-NL-Sander:MAI-Voice-2.1-Flash, pl-PL-Grant:MAI-Voice-2.1-Flash, pl-PL-Harper:MAI-Voice-2.1-Flash, pt-BR-Caio:MAI-Voice-2.1-Flash, pt-BR-Grant:MAI-Voice-2.1-Flash, pt-BR-Harper:MAI-Voice-2.1-Flash, pt-BR-Luana:MAI-Voice-2.1-Flash, pt-BR-Pedro:MAI-Voice-2.1-Flash, pt-BR-Rafael:MAI-Voice-2.1-Flash, pt-PT-Grant:MAI-Voice-2.1-Flash, pt-PT-Harper:MAI-Voice-2.1-Flash, pt-PT-Rui:MAI-Voice-2.1-Flash, ro-RO-Andrei:MAI-Voice-2.1-Flash, ro-RO-Elena:MAI-Voice-2.1-Flash, ro-RO-Grant:MAI-Voice-2.1-Flash, ro-RO-Harper:MAI-Voice-2.1-Flash, ro-RO-Ioana:MAI-Voice-2.1-Flash, ro-RO-Radu:MAI-Voice-2.1-Flash, ru-RU-Grant:MAI-Voice-2.1-Flash, ru-RU-Harper:MAI-Voice-2.1-Flash, ru-RU-Lev:MAI-Voice-2.1-Flash, ru-RU-Masha:MAI-Voice-2.1-Flash, sv-SE-Grant:MAI-Voice-2.1-Flash, sv-SE-Harper:MAI-Voice-2.1-Flash, th-TH-Grant:MAI-Voice-2.1-Flash, th-TH-Harper:MAI-Voice-2.1-Flash, th-TH-Krit:MAI-Voice-2.1-Flash, th-TH-Nattapong:MAI-Voice-2.1-Flash, tr-TR-Aydin:MAI-Voice-2.1-Flash, tr-TR-Elif:MAI-Voice-2.1-Flash, tr-TR-Grant:MAI-Voice-2.1-Flash, tr-TR-Harper:MAI-Voice-2.1-Flash, vi-VN-Grant:MAI-Voice-2.1-Flash, vi-VN-Harper:MAI-Voice-2.1-Flash, zh-CN-Bo:MAI-Voice-2.1-Flash, zh-CN-Grant:MAI-Voice-2.1-Flash, zh-CN-Harper:MAI-Voice-2.1-Flash, zh-CN-Lan:MAI-Voice-2.1-Flash, zh-CN-Mei:MAI-Voice-2.1-Flash, zh-CN-Wei:MAI-Voice-2.1-Flash
기본값—
필드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-Flash, cs-CZ-Harper:MAI-Voice-2.1-Flash, da-DK-Grant:MAI-Voice-2.1-Flash, da-DK-Harper:MAI-Voice-2.1-Flash, de-DE-Grant:MAI-Voice-2.1-Flash, de-DE-Harper:MAI-Voice-2.1-Flash, de-DE-Klaus:MAI-Voice-2.1-Flash, de-DE-Mia:MAI-Voice-2.1-Flash, en-AU-Isla:MAI-Voice-2.1-Flash, en-GB-Emily:MAI-Voice-2.1-Flash, en-GB-Harry:MAI-Voice-2.1-Flash, en-IN-Dhruv:MAI-Voice-2.1-Flash, en-IN-Priya:MAI-Voice-2.1-Flash, en-US-Ethan:MAI-Voice-2.1-Flash, en-US-Grant:MAI-Voice-2.1-Flash, en-US-Harper:MAI-Voice-2.1-Flash, en-US-Iris:MAI-Voice-2.1-Flash, en-US-Jasper:MAI-Voice-2.1-Flash, en-US-Olivia:MAI-Voice-2.1-Flash, en-US-Sage:MAI-Voice-2.1-Flash, es-ES-Marta:MAI-Voice-2.1-Flash, es-MX-Alejo:MAI-Voice-2.1-Flash, es-MX-Grant:MAI-Voice-2.1-Flash, es-MX-Harper:MAI-Voice-2.1-Flash, es-MX-Valeria:MAI-Voice-2.1-Flash, fi-FI-Grant:MAI-Voice-2.1-Flash, fi-FI-Harper:MAI-Voice-2.1-Flash, fr-FR-Grant:MAI-Voice-2.1-Flash, fr-FR-Harper:MAI-Voice-2.1-Flash, fr-FR-Marc:MAI-Voice-2.1-Flash, fr-FR-Soleil:MAI-Voice-2.1-Flash, hi-IN-Arjun:MAI-Voice-2.1-Flash, hi-IN-Dhruv:MAI-Voice-2.1-Flash, hi-IN-Grant:MAI-Voice-2.1-Flash, hi-IN-Harper:MAI-Voice-2.1-Flash, hi-IN-Kavya:MAI-Voice-2.1-Flash, hi-IN-Priya:MAI-Voice-2.1-Flash, hu-HU-Bence:MAI-Voice-2.1-Flash, hu-HU-Grant:MAI-Voice-2.1-Flash, hu-HU-Harper:MAI-Voice-2.1-Flash, hu-HU-Levente:MAI-Voice-2.1-Flash, hu-HU-Lilla:MAI-Voice-2.1-Flash, hu-HU-Reka:MAI-Voice-2.1-Flash, id-ID-Grant:MAI-Voice-2.1-Flash, id-ID-Harper:MAI-Voice-2.1-Flash, it-IT-Grant:MAI-Voice-2.1-Flash, it-IT-Harper:MAI-Voice-2.1-Flash, it-IT-Luca:MAI-Voice-2.1-Flash, it-IT-Rosa:MAI-Voice-2.1-Flash, ko-KR-Grant:MAI-Voice-2.1-Flash, ko-KR-Haena:MAI-Voice-2.1-Flash, ko-KR-Harper:MAI-Voice-2.1-Flash, ko-KR-Junho:MAI-Voice-2.1-Flash, nb-NO-Grant:MAI-Voice-2.1-Flash, nb-NO-Harper:MAI-Voice-2.1-Flash, nl-NL-Grant:MAI-Voice-2.1-Flash, nl-NL-Harper:MAI-Voice-2.1-Flash, nl-NL-Sander:MAI-Voice-2.1-Flash, pl-PL-Grant:MAI-Voice-2.1-Flash, pl-PL-Harper:MAI-Voice-2.1-Flash, pt-BR-Caio:MAI-Voice-2.1-Flash, pt-BR-Grant:MAI-Voice-2.1-Flash, pt-BR-Harper:MAI-Voice-2.1-Flash, pt-BR-Luana:MAI-Voice-2.1-Flash, pt-BR-Pedro:MAI-Voice-2.1-Flash, pt-BR-Rafael:MAI-Voice-2.1-Flash, pt-PT-Grant:MAI-Voice-2.1-Flash, pt-PT-Harper:MAI-Voice-2.1-Flash, pt-PT-Rui:MAI-Voice-2.1-Flash, ro-RO-Andrei:MAI-Voice-2.1-Flash, ro-RO-Elena:MAI-Voice-2.1-Flash, ro-RO-Grant:MAI-Voice-2.1-Flash, ro-RO-Harper:MAI-Voice-2.1-Flash, ro-RO-Ioana:MAI-Voice-2.1-Flash, ro-RO-Radu:MAI-Voice-2.1-Flash, ru-RU-Grant:MAI-Voice-2.1-Flash, ru-RU-Harper:MAI-Voice-2.1-Flash, ru-RU-Lev:MAI-Voice-2.1-Flash, ru-RU-Masha:MAI-Voice-2.1-Flash, sv-SE-Grant:MAI-Voice-2.1-Flash, sv-SE-Harper:MAI-Voice-2.1-Flash, th-TH-Grant:MAI-Voice-2.1-Flash, th-TH-Harper:MAI-Voice-2.1-Flash, th-TH-Krit:MAI-Voice-2.1-Flash, th-TH-Nattapong:MAI-Voice-2.1-Flash, tr-TR-Aydin:MAI-Voice-2.1-Flash, tr-TR-Elif:MAI-Voice-2.1-Flash, tr-TR-Grant:MAI-Voice-2.1-Flash, tr-TR-Harper:MAI-Voice-2.1-Flash, vi-VN-Grant:MAI-Voice-2.1-Flash, vi-VN-Harper:MAI-Voice-2.1-Flash, zh-CN-Bo:MAI-Voice-2.1-Flash, zh-CN-Grant:MAI-Voice-2.1-Flash, zh-CN-Harper:MAI-Voice-2.1-Flash, zh-CN-Lan:MAI-Voice-2.1-Flash, zh-CN-Mei:MAI-Voice-2.1-Flash, zh-CN-Wei:MAI-Voice-2.1-Flash
매개변수response_format명세mp3
매개변수max_input_characters명세null
매개변수other_options명세false
매개변수input명세정확한 UTF-8 텍스트; 정규화 없이 계산한 유니코드 문자 수
매개변수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 요금

설정별 가격

각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.

설정요금표과금 대상 수량과금 단위요금
설정기본 토큰 요금요금표기본 요금과금 대상 수량—과금 단위—요금
입력 · 입력 토큰 — / 1K 토큰
출력 · 출력 토큰 — / 1K 토큰
입력 · 캐시 읽기 — / 1K 토큰
입력 · 캐시 쓰기 — / 1K 토큰
입력 · 캐시 쓰기, 1시간 — / 1K 토큰
설정Ultra요금표—과금 대상 수량한자를 포함해 Unicode 코드 포인트 하나를 문자 하나로 계산합니다.과금 단위입력 문자 1K개당요금
입력 · 입력 문자 $0.03 입력 문자 1K개당

참조 요금 상세 정보

모델 수준의 참조 요금표는 메서드 선택, 견적 또는 요금을 변경하지 않습니다. 실제 과금에는 선택한 Ailoot 메서드 요금이 적용됩니다.

Microsoft AI: MAI-Voice-2.1-Flash

설정별 가격

설정과금 조건요금
설정Microsoft AI: MAI-Voice-2.1-Flash · 기본 설정과금 조건기본 설정요금
입력 · 입력 문자 수 US$0.00003 입력 문자당

Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →

요청 예제

Ailoot Ultra · 음성 합성

curl
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-flash", "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-Flash", "cs-CZ-Harper:MAI-Voice-2.1-Flash", "da-DK-Grant:MAI-Voice-2.1-Flash", "da-DK-Harper:MAI-Voice-2.1-Flash", "de-DE-Grant:MAI-Voice-2.1-Flash", "de-DE-Harper:MAI-Voice-2.1-Flash", "de-DE-Klaus:MAI-Voice-2.1-Flash", "de-DE-Mia:MAI-Voice-2.1-Flash", "en-AU-Isla:MAI-Voice-2.1-Flash", "en-GB-Emily:MAI-Voice-2.1-Flash", "en-GB-Harry:MAI-Voice-2.1-Flash", "en-IN-Dhruv:MAI-Voice-2.1-Flash", "en-IN-Priya:MAI-Voice-2.1-Flash", "en-US-Ethan:MAI-Voice-2.1-Flash", "en-US-Grant:MAI-Voice-2.1-Flash", "en-US-Harper:MAI-Voice-2.1-Flash", "en-US-Iris:MAI-Voice-2.1-Flash", "en-US-Jasper:MAI-Voice-2.1-Flash", "en-US-Olivia:MAI-Voice-2.1-Flash", "en-US-Sage:MAI-Voice-2.1-Flash", "es-ES-Marta:MAI-Voice-2.1-Flash", "es-MX-Alejo:MAI-Voice-2.1-Flash", "es-MX-Grant:MAI-Voice-2.1-Flash", "es-MX-Harper:MAI-Voice-2.1-Flash", "es-MX-Valeria:MAI-Voice-2.1-Flash", "fi-FI-Grant:MAI-Voice-2.1-Flash", "fi-FI-Harper:MAI-Voice-2.1-Flash", "fr-FR-Grant:MAI-Voice-2.1-Flash", "fr-FR-Harper:MAI-Voice-2.1-Flash", "fr-FR-Marc:MAI-Voice-2.1-Flash", "fr-FR-Soleil:MAI-Voice-2.1-Flash", "hi-IN-Arjun:MAI-Voice-2.1-Flash", "hi-IN-Dhruv:MAI-Voice-2.1-Flash", "hi-IN-Grant:MAI-Voice-2.1-Flash", "hi-IN-Harper:MAI-Voice-2.1-Flash", "hi-IN-Kavya:MAI-Voice-2.1-Flash", "hi-IN-Priya:MAI-Voice-2.1-Flash", "hu-HU-Bence:MAI-Voice-2.1-Flash", "hu-HU-Grant:MAI-Voice-2.1-Flash", "hu-HU-Harper:MAI-Voice-2.1-Flash", "hu-HU-Levente:MAI-Voice-2.1-Flash", "hu-HU-Lilla:MAI-Voice-2.1-Flash", "hu-HU-Reka:MAI-Voice-2.1-Flash", "id-ID-Grant:MAI-Voice-2.1-Flash", "id-ID-Harper:MAI-Voice-2.1-Flash", "it-IT-Grant:MAI-Voice-2.1-Flash", "it-IT-Harper:MAI-Voice-2.1-Flash", "it-IT-Luca:MAI-Voice-2.1-Flash", "it-IT-Rosa:MAI-Voice-2.1-Flash", "ko-KR-Grant:MAI-Voice-2.1-Flash", "ko-KR-Haena:MAI-Voice-2.1-Flash", "ko-KR-Harper:MAI-Voice-2.1-Flash", "ko-KR-Junho:MAI-Voice-2.1-Flash", "nb-NO-Grant:MAI-Voice-2.1-Flash", "nb-NO-Harper:MAI-Voice-2.1-Flash", "nl-NL-Grant:MAI-Voice-2.1-Flash", "nl-NL-Harper:MAI-Voice-2.1-Flash", "nl-NL-Sander:MAI-Voice-2.1-Flash", "pl-PL-Grant:MAI-Voice-2.1-Flash", "pl-PL-Harper:MAI-Voice-2.1-Flash", "pt-BR-Caio:MAI-Voice-2.1-Flash", "pt-BR-Grant:MAI-Voice-2.1-Flash", "pt-BR-Harper:MAI-Voice-2.1-Flash", "pt-BR-Luana:MAI-Voice-2.1-Flash", "pt-BR-Pedro:MAI-Voice-2.1-Flash", "pt-BR-Rafael:MAI-Voice-2.1-Flash", "pt-PT-Grant:MAI-Voice-2.1-Flash", "pt-PT-Harper:MAI-Voice-2.1-Flash", "pt-PT-Rui:MAI-Voice-2.1-Flash", "ro-RO-Andrei:MAI-Voice-2.1-Flash", "ro-RO-Elena:MAI-Voice-2.1-Flash", "ro-RO-Grant:MAI-Voice-2.1-Flash", "ro-RO-Harper:MAI-Voice-2.1-Flash", "ro-RO-Ioana:MAI-Voice-2.1-Flash", "ro-RO-Radu:MAI-Voice-2.1-Flash", "ru-RU-Grant:MAI-Voice-2.1-Flash", "ru-RU-Harper:MAI-Voice-2.1-Flash", "ru-RU-Lev:MAI-Voice-2.1-Flash", "ru-RU-Masha:MAI-Voice-2.1-Flash", "sv-SE-Grant:MAI-Voice-2.1-Flash", "sv-SE-Harper:MAI-Voice-2.1-Flash", "th-TH-Grant:MAI-Voice-2.1-Flash", "th-TH-Harper:MAI-Voice-2.1-Flash", "th-TH-Krit:MAI-Voice-2.1-Flash", "th-TH-Nattapong:MAI-Voice-2.1-Flash", "tr-TR-Aydin:MAI-Voice-2.1-Flash", "tr-TR-Elif:MAI-Voice-2.1-Flash", "tr-TR-Grant:MAI-Voice-2.1-Flash", "tr-TR-Harper:MAI-Voice-2.1-Flash", "vi-VN-Grant:MAI-Voice-2.1-Flash", "vi-VN-Harper:MAI-Voice-2.1-Flash", "zh-CN-Bo:MAI-Voice-2.1-Flash", "zh-CN-Grant:MAI-Voice-2.1-Flash", "zh-CN-Harper:MAI-Voice-2.1-Flash", "zh-CN-Lan:MAI-Voice-2.1-Flash", "zh-CN-Mei:MAI-Voice-2.1-Flash", "zh-CN-Wei:MAI-Voice-2.1-Flash"]')
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}
기타 콘텐츠 조회
미디어 라이브러리작업 상태자산 세부 정보
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
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
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-flash

메서드 경로 별칭

위에 표시된 메서드 경로를 사용하세요.

관련 호출용 ID

microsoft/mai-voice-2.1-flash

FAQ · Microsoft AI: MAI-Voice-2.1-Flash
어떤 입력과 결과를 사용할 수 있나요?

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

요청은 어떤 필드를 사용하나요?

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

자세히 보기

Claude Code, OpenCode, Hermes, 자체 앱에 Ailoot를 연결하세요.

회사와 그 프로젝트 포트폴리오

회사와 그 프로젝트 포트폴리오: 수백만 고객, 매월 수십억 규모의 매출.

할인받아 토큰을 구매하세요.

정기 작업에는 구독 할인, 토큰 구매에는 최대 50% 프로모션 코드.

구독
정기 요청에 맞는 할인 요금제를 선택하세요.
최대 50% 프로모션 코드
구매할 때 코드를 넣으면 진행 중 행사에 따라 가격을 다시 계산합니다.
이력의 지출
요청마다 모델, 토큰, 금액을 저장합니다.

구독 선택 · 모델 가격 보기

판매하는 제품에 API를 연결하세요.

Ailoot 공식 이용 조건과 라이선스 계약으로 SaaS, 앱, 봇에 사용하세요. 재판매에는 리셀러 라이선스를 요청하세요.

상업용 앱
서비스의 유료 기능에 텍스트, 이미지, 영상, 소리 생성을 넣으세요.
리셀러 라이선스
프로젝트 설명과 접근 구조를 보내 사용·재판매의 서면 조건을 요청하세요.
사이트의 문서
연결 전에 공식 이용 조건, 라이선스 계약, 데이터 처리 정책을 읽을 수 있습니다.

리셀러 라이선스 요청 · 공식 이용 조건과 라이선스 계약