{
  "aboutHtml": "<p>Google Gemini 3.8 Flash-Lite TTS는 Google 3.8 텍스트 음성 변환 제품군 중 처리량에 중점을 둔 모델입니다. 작성된 대본을 입력받아 음성 오디오를 생성합니다. Google은 읽어 주기 기능, 일상적인 단일 화자 내레이션, 대량 오디오 제작, 음성 에이전트 시스템의 음성 출력 단계에 적합한 모델로 소개합니다. 유용한 결과물은 일관된 목소리로 읽은 기사, 음성 제품 설명, 짧은 안내 녹음 모음입니다. 대본에는 청자가 들어야 할 문구가 이미 담겨 있어야 합니다.</p><p>3.8 제품군은 대본과 연기 지시를 구분합니다. 발화 텍스트는 그대로 유지하고 지속적인 감정, 속도, 음량, 전달 스타일은 음성 메타데이터에 넣으세요. 따뜻한 도입, 긴급한 지시, 조용한 마무리 각각의 턴에 짧은 스타일 설명을 붙일 수 있습니다. 대본 안의 “밝게 말하세요” 같은 텍스트는 그 자체가 소리로 읽힐 수 있습니다. 화자 이름도 들리는 대본의 라벨이 아니라 화자 메타데이터에 넣어야 합니다. Gemini 3.1 Flash TTS용으로 작성한 프롬프트를 재사용할 때 이런 준비가 특히 중요합니다.</p><p>호흡, 웃음, 기침, 한숨, 쉼처럼 특정 위치에서 발생하는 짧은 사건에는 인라인 꺾쇠괄호 태그를 사용하세요. 예를 들어 “다음 단계는 간단합니다. &lt;short pause&gt; 원하는 언어를 선택하세요.”라는 대본은 영향을 주는 문구 옆에 의도한 쉼을 배치합니다. 지속적인 속삭임은 사건 태그를 반복해서 추가하는 대신 스타일 설명에 넣으세요. Google은 다른 언어 대본에서도 영어 태그명을 권장합니다. 이런 제어는 목소리를 지시합니다. 박수 소리나 문을 세게 닫는 소리는 발성 사건 태그가 아니라 별도 음향 제작이 필요합니다.</p><p>Google은 이 에디션이 영어, 러시아어, 중국어, 일본어, 한국어, 프랑스어, 독일어, 스페인어, 인도네시아어, 베트남어 등을 포함한 101개 언어를 지원한다고 기재합니다. 이름, 약어, 숫자를 원하는 형태로 포함해 최종 대본을 대상 언어로 작성하세요. 청자가 특정한 형태로 들어야 할 때는 편집 준비 단계에서 모호한 약어를 풀어 쓰거나 숫자를 어떻게 읽어야 하는지 명시하세요. 긴 녹음을 완료된 것으로 판단하기 전에 어려운 이름과 전환이 포함된 첫 구절을 들어 보세요. 지원 언어 수가 모든 지역 발음을 서로 대체 가능하게 만들지는 않습니다.</p><p>제작사는 사전 제작 음성, 확장 음성 라이브러리, 설계한 음성 페르소나, 음성 복제를 지원합니다. 음성 정체성은 임시 연기 지시와 별도로 선택하세요. 일관된 내레이션이 필요하면 여러 구간에서 해당 정체성과 간결한 전달 방식 설명을 재사용하세요. 문서화된 2인 화자 구성에서는 각 턴에 설정된 2개의 사전 제작 음성 중 하나와 일치하는 화자를 명시하세요. Google 가이드는 설계하거나 복제한 음성으로 다인물 장면을 만들 때 개별 턴을 생성하도록 다룹니다. 이 구분은 단일 내레이터가 아닌 대화를 계획할 때 중요합니다.</p><p>일반적인 완료 요청에 대해 Google의 3.8 가이드는 RIFF 헤더가 있는 WAV 오디오를 명시하며, 내용은 24 kHz 모노, 부호 있는 16비트 리틀 엔디언 PCM입니다. 스트리밍 구성은 기본적으로 헤더 없는 원시 PCM 청크를 반환합니다. 가이드는 원시 선형 PCM, mu-law, A-law 인코딩도 문서화합니다. 재생이나 편집 설정을 실제 출력 형식에 맞추세요. 헤더 없는 PCM의 확장자를 WAV로 바꾼다고 컨테이너 정보가 생기지는 않습니다. 따로 생성한 턴을 조합할 때는 오디오 형식을 일관되게 유지하고 각 완성 WAV를 자체 헤더가 있는 파일로 취급하세요.</p><p>해당 모델 페이지는 Gemini API 한도를 입력 8,192 토큰, 출력 16,384 토큰으로 기재합니다. 오디오 토큰은 고정된 발화 초 수를 나타내지 않습니다. 긴 자료는 의미 있는 구간으로 준비하면서 같은 음성과 스타일 기획을 유지하고 연결부를 들어 보세요. 이는 제작사가 문서화한 이 모델의 제공 한도로, 일반적인 카탈로그 컨텍스트 필드와는 다른 양을 설명합니다. 입력은 텍스트이고 출력은 오디오이므로 대본 초안 작성, 번역, 음성 전사는 별도의 준비 또는 후속 과제입니다.</p><p>Flash-Lite는 Gemini 3.8 Flash TTS와 3.8 요청 구조를 공유합니다. 실무적인 선택 기준은 필요한 연기입니다. Flash-Lite는 빠르고 반복적인 제작을 겨냥하며 Flash TTS는 어려운 발음, 미묘한 연기, 더 넓은 방언 지원을 위한 창작 등급입니다. 일반 도움말 기사와 극적인 2인 대화 장면은 목소리에 서로 다른 요구를 합니다. 최종 청취 경험에 사용하기 전에 실제 녹음에서 빠지거나 반복된 단어, 발음, 속도, 구간 사이의 들리는 변화를 확인하세요.</p>",
  "aboutText": "Google Gemini 3.8 Flash-Lite TTS는 Google 3.8 텍스트 음성 변환 제품군 중 처리량에 중점을 둔 모델입니다. 작성된 대본을 입력받아 음성 오디오를 생성합니다. Google은 읽어 주기 기능, 일상적인 단일 화자 내레이션, 대량 오디오 제작, 음성 에이전트 시스템의 음성 출력 단계에 적합한 모델로 소개합니다. 유용한 결과물은 일관된 목소리로 읽은 기사, 음성 제품 설명, 짧은 안내 녹음 모음입니다. 대본에는 청자가 들어야 할 문구가 이미 담겨 있어야 합니다.\n\n3.8 제품군은 대본과 연기 지시를 구분합니다. 발화 텍스트는 그대로 유지하고 지속적인 감정, 속도, 음량, 전달 스타일은 음성 메타데이터에 넣으세요. 따뜻한 도입, 긴급한 지시, 조용한 마무리 각각의 턴에 짧은 스타일 설명을 붙일 수 있습니다. 대본 안의 “밝게 말하세요” 같은 텍스트는 그 자체가 소리로 읽힐 수 있습니다. 화자 이름도 들리는 대본의 라벨이 아니라 화자 메타데이터에 넣어야 합니다. Gemini 3.1 Flash TTS용으로 작성한 프롬프트를 재사용할 때 이런 준비가 특히 중요합니다.\n\n호흡, 웃음, 기침, 한숨, 쉼처럼 특정 위치에서 발생하는 짧은 사건에는 인라인 꺾쇠괄호 태그를 사용하세요. 예를 들어 “다음 단계는 간단합니다. <short pause> 원하는 언어를 선택하세요.”라는 대본은 영향을 주는 문구 옆에 의도한 쉼을 배치합니다. 지속적인 속삭임은 사건 태그를 반복해서 추가하는 대신 스타일 설명에 넣으세요. Google은 다른 언어 대본에서도 영어 태그명을 권장합니다. 이런 제어는 목소리를 지시합니다. 박수 소리나 문을 세게 닫는 소리는 발성 사건 태그가 아니라 별도 음향 제작이 필요합니다.\n\nGoogle은 이 에디션이 영어, 러시아어, 중국어, 일본어, 한국어, 프랑스어, 독일어, 스페인어, 인도네시아어, 베트남어 등을 포함한 101개 언어를 지원한다고 기재합니다. 이름, 약어, 숫자를 원하는 형태로 포함해 최종 대본을 대상 언어로 작성하세요. 청자가 특정한 형태로 들어야 할 때는 편집 준비 단계에서 모호한 약어를 풀어 쓰거나 숫자를 어떻게 읽어야 하는지 명시하세요. 긴 녹음을 완료된 것으로 판단하기 전에 어려운 이름과 전환이 포함된 첫 구절을 들어 보세요. 지원 언어 수가 모든 지역 발음을 서로 대체 가능하게 만들지는 않습니다.\n\n제작사는 사전 제작 음성, 확장 음성 라이브러리, 설계한 음성 페르소나, 음성 복제를 지원합니다. 음성 정체성은 임시 연기 지시와 별도로 선택하세요. 일관된 내레이션이 필요하면 여러 구간에서 해당 정체성과 간결한 전달 방식 설명을 재사용하세요. 문서화된 2인 화자 구성에서는 각 턴에 설정된 2개의 사전 제작 음성 중 하나와 일치하는 화자를 명시하세요. Google 가이드는 설계하거나 복제한 음성으로 다인물 장면을 만들 때 개별 턴을 생성하도록 다룹니다. 이 구분은 단일 내레이터가 아닌 대화를 계획할 때 중요합니다.\n\n일반적인 완료 요청에 대해 Google의 3.8 가이드는 RIFF 헤더가 있는 WAV 오디오를 명시하며, 내용은 24 kHz 모노, 부호 있는 16비트 리틀 엔디언 PCM입니다. 스트리밍 구성은 기본적으로 헤더 없는 원시 PCM 청크를 반환합니다. 가이드는 원시 선형 PCM, mu-law, A-law 인코딩도 문서화합니다. 재생이나 편집 설정을 실제 출력 형식에 맞추세요. 헤더 없는 PCM의 확장자를 WAV로 바꾼다고 컨테이너 정보가 생기지는 않습니다. 따로 생성한 턴을 조합할 때는 오디오 형식을 일관되게 유지하고 각 완성 WAV를 자체 헤더가 있는 파일로 취급하세요.\n\n해당 모델 페이지는 Gemini API 한도를 입력 8,192 토큰, 출력 16,384 토큰으로 기재합니다. 오디오 토큰은 고정된 발화 초 수를 나타내지 않습니다. 긴 자료는 의미 있는 구간으로 준비하면서 같은 음성과 스타일 기획을 유지하고 연결부를 들어 보세요. 이는 제작사가 문서화한 이 모델의 제공 한도로, 일반적인 카탈로그 컨텍스트 필드와는 다른 양을 설명합니다. 입력은 텍스트이고 출력은 오디오이므로 대본 초안 작성, 번역, 음성 전사는 별도의 준비 또는 후속 과제입니다.\n\nFlash-Lite는 Gemini 3.8 Flash TTS와 3.8 요청 구조를 공유합니다. 실무적인 선택 기준은 필요한 연기입니다. Flash-Lite는 빠르고 반복적인 제작을 겨냥하며 Flash TTS는 어려운 발음, 미묘한 연기, 더 넓은 방언 지원을 위한 창작 등급입니다. 일반 도움말 기사와 극적인 2인 대화 장면은 목소리에 서로 다른 요구를 합니다. 최종 청취 경험에 사용하기 전에 실제 녹음에서 빠지거나 반복된 단어, 발음, 속도, 구간 사이의 들리는 변화를 확인하세요.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "189c704875864b9d01b947ab25adf61c8cb12550773ae2096748775910d95feb",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ko",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Gemini 3.8 Flash Lite TTS</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"닫기\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/gemini-3.8-flash-lite-tts</code><button type=\"button\" id=\"copy-id\">ID 복사</button></div><nav class=\"card-jump-nav\" aria-label=\"모델 카드 섹션\"><button type=\"button\" data-card-jump=\"overview\">시작하기</button><button type=\"button\" data-card-jump=\"methods\">입력 및 메서드</button><button type=\"button\" data-card-jump=\"pricing\">요금</button><button type=\"button\" data-card-jump=\"examples\">예제</button><button type=\"button\" data-card-jump=\"results\">결과</button><button type=\"button\" data-card-jump=\"aliases\">별칭</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 메서드\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|google%2Fgemini-3.8-flash-lite-tts\">음성 합성</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">시작하기</h3><p class=\"mdesc-full\">Google Gemini 3.8 Flash-Lite TTS는 정확한 대본을 음성으로 변환해 읽어 주기 기능, 일상적인 내레이션, 대량의 발화 콘텐츠에 활용합니다. 101개 언어, 선택 가능한 음성, 별도의 스타일 메타데이터를 통한 전달 방식 제어를 지원하며, 짧은 쉼과 발성 사건에는 인라인 태그를 사용합니다.</p><dl class=\"card-io\" data-card-io><div><dt>허용 입력</dt><dd>텍스트</dd></div><div><dt>결과</dt><dd>오디오</dd></div></dl><details class=\"card-about\"><summary>모델 소개</summary><p class=\"note-s\" data-model-method-boundary>이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.</p><div class=\"mabout\" id=\"m-about\"><p>Google Gemini 3.8 Flash-Lite TTS는 Google 3.8 텍스트 음성 변환 제품군 중 처리량에 중점을 둔 모델입니다. 작성된 대본을 입력받아 음성 오디오를 생성합니다. Google은 읽어 주기 기능, 일상적인 단일 화자 내레이션, 대량 오디오 제작, 음성 에이전트 시스템의 음성 출력 단계에 적합한 모델로 소개합니다. 유용한 결과물은 일관된 목소리로 읽은 기사, 음성 제품 설명, 짧은 안내 녹음 모음입니다. 대본에는 청자가 들어야 할 문구가 이미 담겨 있어야 합니다.</p><p>3.8 제품군은 대본과 연기 지시를 구분합니다. 발화 텍스트는 그대로 유지하고 지속적인 감정, 속도, 음량, 전달 스타일은 음성 메타데이터에 넣으세요. 따뜻한 도입, 긴급한 지시, 조용한 마무리 각각의 턴에 짧은 스타일 설명을 붙일 수 있습니다. 대본 안의 “밝게 말하세요” 같은 텍스트는 그 자체가 소리로 읽힐 수 있습니다. 화자 이름도 들리는 대본의 라벨이 아니라 화자 메타데이터에 넣어야 합니다. Gemini 3.1 Flash TTS용으로 작성한 프롬프트를 재사용할 때 이런 준비가 특히 중요합니다.</p><p>호흡, 웃음, 기침, 한숨, 쉼처럼 특정 위치에서 발생하는 짧은 사건에는 인라인 꺾쇠괄호 태그를 사용하세요. 예를 들어 “다음 단계는 간단합니다. &lt;short pause&gt; 원하는 언어를 선택하세요.”라는 대본은 영향을 주는 문구 옆에 의도한 쉼을 배치합니다. 지속적인 속삭임은 사건 태그를 반복해서 추가하는 대신 스타일 설명에 넣으세요. Google은 다른 언어 대본에서도 영어 태그명을 권장합니다. 이런 제어는 목소리를 지시합니다. 박수 소리나 문을 세게 닫는 소리는 발성 사건 태그가 아니라 별도 음향 제작이 필요합니다.</p><p>Google은 이 에디션이 영어, 러시아어, 중국어, 일본어, 한국어, 프랑스어, 독일어, 스페인어, 인도네시아어, 베트남어 등을 포함한 101개 언어를 지원한다고 기재합니다. 이름, 약어, 숫자를 원하는 형태로 포함해 최종 대본을 대상 언어로 작성하세요. 청자가 특정한 형태로 들어야 할 때는 편집 준비 단계에서 모호한 약어를 풀어 쓰거나 숫자를 어떻게 읽어야 하는지 명시하세요. 긴 녹음을 완료된 것으로 판단하기 전에 어려운 이름과 전환이 포함된 첫 구절을 들어 보세요. 지원 언어 수가 모든 지역 발음을 서로 대체 가능하게 만들지는 않습니다.</p><p>제작사는 사전 제작 음성, 확장 음성 라이브러리, 설계한 음성 페르소나, 음성 복제를 지원합니다. 음성 정체성은 임시 연기 지시와 별도로 선택하세요. 일관된 내레이션이 필요하면 여러 구간에서 해당 정체성과 간결한 전달 방식 설명을 재사용하세요. 문서화된 2인 화자 구성에서는 각 턴에 설정된 2개의 사전 제작 음성 중 하나와 일치하는 화자를 명시하세요. Google 가이드는 설계하거나 복제한 음성으로 다인물 장면을 만들 때 개별 턴을 생성하도록 다룹니다. 이 구분은 단일 내레이터가 아닌 대화를 계획할 때 중요합니다.</p><p>일반적인 완료 요청에 대해 Google의 3.8 가이드는 RIFF 헤더가 있는 WAV 오디오를 명시하며, 내용은 24 kHz 모노, 부호 있는 16비트 리틀 엔디언 PCM입니다. 스트리밍 구성은 기본적으로 헤더 없는 원시 PCM 청크를 반환합니다. 가이드는 원시 선형 PCM, mu-law, A-law 인코딩도 문서화합니다. 재생이나 편집 설정을 실제 출력 형식에 맞추세요. 헤더 없는 PCM의 확장자를 WAV로 바꾼다고 컨테이너 정보가 생기지는 않습니다. 따로 생성한 턴을 조합할 때는 오디오 형식을 일관되게 유지하고 각 완성 WAV를 자체 헤더가 있는 파일로 취급하세요.</p><p>해당 모델 페이지는 Gemini API 한도를 입력 8,192 토큰, 출력 16,384 토큰으로 기재합니다. 오디오 토큰은 고정된 발화 초 수를 나타내지 않습니다. 긴 자료는 의미 있는 구간으로 준비하면서 같은 음성과 스타일 기획을 유지하고 연결부를 들어 보세요. 이는 제작사가 문서화한 이 모델의 제공 한도로, 일반적인 카탈로그 컨텍스트 필드와는 다른 양을 설명합니다. 입력은 텍스트이고 출력은 오디오이므로 대본 초안 작성, 번역, 음성 전사는 별도의 준비 또는 후속 과제입니다.</p><p>Flash-Lite는 Gemini 3.8 Flash TTS와 3.8 요청 구조를 공유합니다. 실무적인 선택 기준은 필요한 연기입니다. Flash-Lite는 빠르고 반복적인 제작을 겨냥하며 Flash TTS는 어려운 발음, 미묘한 연기, 더 넓은 방언 지원을 위한 창작 등급입니다. 일반 도움말 기사와 극적인 2인 대화 장면은 목소리에 서로 다른 요구를 합니다. 최종 청취 경험에 사용하기 전에 실제 녹음에서 빠지거나 반복된 단어, 발음, 속도, 구간 사이의 들리는 변화를 확인하세요.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot에서 사용 가능 · 입력 및 메서드</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · 음성</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>입력</dt><dd><code>text</code></dd></div><div><dt>출력</dt><dd><code>audio</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>필드</th><th>유형</th><th>요건</th><th>값과 한도</th><th>기본값</th></tr></thead><tbody><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>string</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>필수</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>google/gemini-3.8-flash-lite-tts</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>string</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>필수</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>최소 길이: 1</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>string</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>필수</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat</div><div>최소 길이: 1</div></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>string</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>선택 사항</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span><div>mp3, pcm</div></td><td data-cell-label=\"기본값\" data-default=\"known\"><span class=\"card-cell-label\">기본값</span>pcm</td></tr><tr><th data-cell-label=\"필드\" scope=\"row\"><span class=\"card-cell-label\">필드</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span><code>object</code></td><td data-cell-label=\"요건\"><span class=\"card-cell-label\">요건</span>선택 사항</td><td data-cell-label=\"값과 한도\"><span class=\"card-cell-label\">값과 한도</span></td><td data-cell-label=\"기본값\" data-default=\"unspecified\"><span class=\"card-cell-label\">기본값</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>메서드 매개변수와 수명 주기</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>매개변수</th><th>명세</th></tr></thead><tbody><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>content_type</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>application/json</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>required</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>model, input, voice</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>material_types</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>text</td></tr></tbody></table></div><p>수명 주기: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · 실제로 반환된 task_id 또는 미디어 라이브러리 기록</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">요금</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.</p><dl data-price-conditions><dt>빠른 모드</dt><dd>미지정 <span class=\"note-s\">빠른 모드를 선택한 경우</span></dd><dt>Flex 모드</dt><dd>미지정 <span class=\"note-s\">flex 모드를 선택한 경우</span></dd><dt>최대 추론 수준</dt><dd>미지정 <span class=\"note-s\">최대 추론 수준에 default 조정값을 적용하는 경우</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot 요금</h4><h4>설정별 가격</h4><p class=\"note-s\">각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>설정</th><th>요금표</th><th>과금 단위</th><th>요금</th></tr></thead><tbody><tr><th data-cell-label=\"설정\" scope=\"row\"><span class=\"card-cell-label\">설정</span>기본 토큰 요금</th><td data-cell-label=\"요금표\"><span class=\"card-cell-label\">요금표</span>기본 요금</td><td data-cell-label=\"과금 단위\"><span class=\"card-cell-label\">과금 단위</span>—</td><td data-cell-label=\"요금\"><span class=\"card-cell-label\">요금</span><div><span>입력 · 입력 토큰</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>출력 · 출력 토큰</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>입력 · 캐시 읽기</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>입력 · 캐시 쓰기</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div><div><span>입력 · 캐시 쓰기, 1시간</span> <b>—</b> <span class=\"price-unit\">/ 1K 토큰</span></div></td></tr><tr><th data-cell-label=\"설정\" scope=\"row\"><span class=\"card-cell-label\">설정</span>입력 토큰</th><td data-cell-label=\"요금표\"><span class=\"card-cell-label\">요금표</span>—</td><td data-cell-label=\"과금 단위\"><span class=\"card-cell-label\">과금 단위</span>/ 1K 토큰</td><td data-cell-label=\"요금\"><span class=\"card-cell-label\">요금</span><div><span>입력</span> <b>$0.001</b> <span class=\"price-unit\">/ 1K 토큰</span></div></td></tr><tr><th data-cell-label=\"설정\" scope=\"row\"><span class=\"card-cell-label\">설정</span>출력 토큰</th><td data-cell-label=\"요금표\"><span class=\"card-cell-label\">요금표</span>—</td><td data-cell-label=\"과금 단위\"><span class=\"card-cell-label\">과금 단위</span>/ 1K 토큰</td><td data-cell-label=\"요금\"><span class=\"card-cell-label\">요금</span><div><span>출력</span> <b>$0.012</b> <span class=\"price-unit\">/ 1K 토큰</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. <a href=\"/docs/ko/billing/reserve/\">금액 확보와 정산 방식 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">요청 예제</h3><h4>Ailoot Ultra · 음성</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"코드 예제 형식\"><button class=\"cg-tab\" id=\"model-code-1476-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1476-panel-0\" aria-selected=\"true\" tabindex=\"0\">실제 입력을 사용하고 결과 전체를 보관하세요</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"코드 복사\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1476-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1476-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_TEXT:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_TEXT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;google/gemini-3.8-flash-lite-tts&#39;, &#39;input&#39;: &#39;${ACTUAL_INPUT_TEXT}&#39;, &#39;voice&#39;: &#39;Zephyr&#39;}\nrequest[&#39;input&#39;]=os.environ[&#39;AILOOT_INPUT_TEXT&#39;]\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">결과 수신 및 저장</h3><h4>Ailoot Ultra · 음성</h4><p class=\"note-s\">바이너리 오디오 전체 또는 원래 audio_url 응답, 헤더 및 모든 소유 자산입니다.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>기타 콘텐츠 조회</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"코드 예제 형식\"><button class=\"cg-tab\" id=\"model-code-1477-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1477-panel-0\" aria-selected=\"true\" tabindex=\"0\">내 소유의 기존 자산 조회</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"코드 복사\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1477-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1477-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>완료된 결과 모두 보관</h5><p class=\"note-s\">반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.</p><p class=\"note-s\">전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>원래 응답을 확인해야 할 경우</h5><p class=\"note-s\">정산 대조를 위해 반환된 X-Client-Request-ID를 보관하세요. 실제로 반환된 task_id/asset_id 값이나 소유한 미디어 라이브러리만 조회하세요. 작업 ID로 태스크 URL을 만들거나 생성 요청을 다시 제출하지 마세요.</p></div></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">별칭</h3><h4>모델 별칭</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fgemini-3.8-flash-lite-tts&amp;route=Ultra&amp;caller=google%2Fgemini-3.8-flash-lite-tts&amp;fmt=speech\"><code>google/gemini-3.8-flash-lite-tts</code></a></span></p><h4>메서드 경로 별칭</h4><p class=\"note-s\">위에 표시된 메서드 경로를 사용하세요.</p><h4>관련 호출용 ID</h4><p class=\"note-s\"><a href=\"#m=google%2Fgemini-3.8-flash-lite-tts&amp;route=Ultra&amp;caller=google%2Fgemini-3.8-flash-lite-tts&amp;fmt=speech\"><code>google/gemini-3.8-flash-lite-tts</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/gemini-3.8-flash-lite-tts",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "google/gemini-3.8-flash-lite-tts",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|google%2Fgemini-3.8-flash-lite-tts",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "정산 대조를 위해 반환된 X-Client-Request-ID를 보관하세요. 실제로 반환된 task_id/asset_id 값이나 소유한 미디어 라이브러리만 조회하세요. 작업 ID로 태스크 URL을 만들거나 생성 요청을 다시 제출하지 마세요."
            },
            "outputs": {
              "all_results": "전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "바이너리 오디오 전체 또는 원래 audio_url 응답, 헤더 및 모든 소유 자산입니다."
            },
            "parameters": [
              {
                "enum": [
                  "google/gemini-3.8-flash-lite-tts"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "Zephyr",
                  "Puck",
                  "Charon",
                  "Kore",
                  "Fenrir",
                  "Leda",
                  "Orus",
                  "Aoede",
                  "Callirrhoe",
                  "Autonoe",
                  "Enceladus",
                  "Iapetus",
                  "Umbriel",
                  "Algieba",
                  "Despina",
                  "Erinome",
                  "Algenib",
                  "Rasalgethi",
                  "Laomedeia",
                  "Achernar",
                  "Alnilam",
                  "Schedar",
                  "Gacrux",
                  "Pulcherrima",
                  "Achird",
                  "Zubenelgenubi",
                  "Vindemiatrix",
                  "Sadachbia",
                  "Sadaltager",
                  "Sulafat"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "google/gemini-3.8-flash-lite-tts"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "Zephyr",
                    "Puck",
                    "Charon",
                    "Kore",
                    "Fenrir",
                    "Leda",
                    "Orus",
                    "Aoede",
                    "Callirrhoe",
                    "Autonoe",
                    "Enceladus",
                    "Iapetus",
                    "Umbriel",
                    "Algieba",
                    "Despina",
                    "Erinome",
                    "Algenib",
                    "Rasalgethi",
                    "Laomedeia",
                    "Achernar",
                    "Alnilam",
                    "Schedar",
                    "Gacrux",
                    "Pulcherrima",
                    "Achird",
                    "Zubenelgenubi",
                    "Vindemiatrix",
                    "Sadachbia",
                    "Sadaltager",
                    "Sulafat"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "google/gemini-3.8-flash-lite-tts",
                "voice": "Zephyr"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "실제로 반환된 task_id 또는 미디어 라이브러리 기록",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "input token",
            "units": [
              {
                "amount": "0.001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "output token",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_token",
                "label": "output token",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'google/gemini-3.8-flash-lite-tts', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'Zephyr'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "음성",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "input_token": 1e-06,
            "output_token": 1.2e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "input token",
            "units": [
              {
                "amount": "0.001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "output token",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_token",
                "label": "output token",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              }
            ]
          }
        ],
        "request_model_id": "google/gemini-3.8-flash-lite-tts",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_token",
            "label": "input token",
            "native_amount_usd_per_unit": "0.000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_token",
            "label": "output token",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ]
      }
    }
  ],
  "model_id": "google/gemini-3.8-flash-lite-tts",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "9164f7367acbbc149d477af82f416227c0d51146158f876e8336b5f5bba7a808",
    "input_html_sha256": "aa7856b879cd4dc7d84cc2a328f9a1610898caed16a2236383cffb310d92f2ae",
    "private_audit_sha256": "1f9619d8d9a12d231789142f136347c2c3b194496d9b295a18aeea27309f8823",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ko/google-gemini-3-8-flash-lite-tts/",
    "description": "Google Gemini 3.8 Flash-Lite TTS는 정확한 대본을 음성으로 변환해 읽어 주기 기능, 일상적인 내레이션, 대량의 발화 콘텐츠에 활용합니다. 101개 언어, 선택 가능한 음성, 별도의 스타일 메타데이터를 통한 전달 방식 제어를 지원하며, 짧은 쉼과 발성 사건에는 인라인 태그를 사용합니다.",
    "locale": "ko",
    "md_url": "https://ailoot.ai/models/ko/google-gemini-3-8-flash-lite-tts/index.md",
    "title": "Google: Gemini 3.8 Flash Lite TTS — Ailoot",
    "url": "https://ailoot.ai/models/ko/google-gemini-3-8-flash-lite-tts/"
  },
  "rawModel": {
    "about": "Google Gemini 3.8 Flash-Lite TTS는 Google 3.8 텍스트 음성 변환 제품군 중 처리량에 중점을 둔 모델입니다. 작성된 대본을 입력받아 음성 오디오를 생성합니다. Google은 읽어 주기 기능, 일상적인 단일 화자 내레이션, 대량 오디오 제작, 음성 에이전트 시스템의 음성 출력 단계에 적합한 모델로 소개합니다. 유용한 결과물은 일관된 목소리로 읽은 기사, 음성 제품 설명, 짧은 안내 녹음 모음입니다. 대본에는 청자가 들어야 할 문구가 이미 담겨 있어야 합니다.\n\n3.8 제품군은 대본과 연기 지시를 구분합니다. 발화 텍스트는 그대로 유지하고 지속적인 감정, 속도, 음량, 전달 스타일은 음성 메타데이터에 넣으세요. 따뜻한 도입, 긴급한 지시, 조용한 마무리 각각의 턴에 짧은 스타일 설명을 붙일 수 있습니다. 대본 안의 “밝게 말하세요” 같은 텍스트는 그 자체가 소리로 읽힐 수 있습니다. 화자 이름도 들리는 대본의 라벨이 아니라 화자 메타데이터에 넣어야 합니다. Gemini 3.1 Flash TTS용으로 작성한 프롬프트를 재사용할 때 이런 준비가 특히 중요합니다.\n\n호흡, 웃음, 기침, 한숨, 쉼처럼 특정 위치에서 발생하는 짧은 사건에는 인라인 꺾쇠괄호 태그를 사용하세요. 예를 들어 “다음 단계는 간단합니다. <short pause> 원하는 언어를 선택하세요.”라는 대본은 영향을 주는 문구 옆에 의도한 쉼을 배치합니다. 지속적인 속삭임은 사건 태그를 반복해서 추가하는 대신 스타일 설명에 넣으세요. Google은 다른 언어 대본에서도 영어 태그명을 권장합니다. 이런 제어는 목소리를 지시합니다. 박수 소리나 문을 세게 닫는 소리는 발성 사건 태그가 아니라 별도 음향 제작이 필요합니다.\n\nGoogle은 이 에디션이 영어, 러시아어, 중국어, 일본어, 한국어, 프랑스어, 독일어, 스페인어, 인도네시아어, 베트남어 등을 포함한 101개 언어를 지원한다고 기재합니다. 이름, 약어, 숫자를 원하는 형태로 포함해 최종 대본을 대상 언어로 작성하세요. 청자가 특정한 형태로 들어야 할 때는 편집 준비 단계에서 모호한 약어를 풀어 쓰거나 숫자를 어떻게 읽어야 하는지 명시하세요. 긴 녹음을 완료된 것으로 판단하기 전에 어려운 이름과 전환이 포함된 첫 구절을 들어 보세요. 지원 언어 수가 모든 지역 발음을 서로 대체 가능하게 만들지는 않습니다.\n\n제작사는 사전 제작 음성, 확장 음성 라이브러리, 설계한 음성 페르소나, 음성 복제를 지원합니다. 음성 정체성은 임시 연기 지시와 별도로 선택하세요. 일관된 내레이션이 필요하면 여러 구간에서 해당 정체성과 간결한 전달 방식 설명을 재사용하세요. 문서화된 2인 화자 구성에서는 각 턴에 설정된 2개의 사전 제작 음성 중 하나와 일치하는 화자를 명시하세요. Google 가이드는 설계하거나 복제한 음성으로 다인물 장면을 만들 때 개별 턴을 생성하도록 다룹니다. 이 구분은 단일 내레이터가 아닌 대화를 계획할 때 중요합니다.\n\n일반적인 완료 요청에 대해 Google의 3.8 가이드는 RIFF 헤더가 있는 WAV 오디오를 명시하며, 내용은 24 kHz 모노, 부호 있는 16비트 리틀 엔디언 PCM입니다. 스트리밍 구성은 기본적으로 헤더 없는 원시 PCM 청크를 반환합니다. 가이드는 원시 선형 PCM, mu-law, A-law 인코딩도 문서화합니다. 재생이나 편집 설정을 실제 출력 형식에 맞추세요. 헤더 없는 PCM의 확장자를 WAV로 바꾼다고 컨테이너 정보가 생기지는 않습니다. 따로 생성한 턴을 조합할 때는 오디오 형식을 일관되게 유지하고 각 완성 WAV를 자체 헤더가 있는 파일로 취급하세요.\n\n해당 모델 페이지는 Gemini API 한도를 입력 8,192 토큰, 출력 16,384 토큰으로 기재합니다. 오디오 토큰은 고정된 발화 초 수를 나타내지 않습니다. 긴 자료는 의미 있는 구간으로 준비하면서 같은 음성과 스타일 기획을 유지하고 연결부를 들어 보세요. 이는 제작사가 문서화한 이 모델의 제공 한도로, 일반적인 카탈로그 컨텍스트 필드와는 다른 양을 설명합니다. 입력은 텍스트이고 출력은 오디오이므로 대본 초안 작성, 번역, 음성 전사는 별도의 준비 또는 후속 과제입니다.\n\nFlash-Lite는 Gemini 3.8 Flash TTS와 3.8 요청 구조를 공유합니다. 실무적인 선택 기준은 필요한 연기입니다. Flash-Lite는 빠르고 반복적인 제작을 겨냥하며 Flash TTS는 어려운 발음, 미묘한 연기, 더 넓은 방언 지원을 위한 창작 등급입니다. 일반 도움말 기사와 극적인 2인 대화 장면은 목소리에 서로 다른 요구를 합니다. 최종 청취 경험에 사용하기 전에 실제 녹음에서 빠지거나 반복된 단어, 발음, 속도, 구간 사이의 들리는 변화를 확인하세요.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 32768,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_token",
            "label": "input token",
            "native_amount_usd_per_unit": "0.000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_token",
            "label": "output token",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "구성의 전체 요금 정보는 상세 정보에서 확인할 수 있습니다."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "google/gemini-3.8-flash-lite-tts",
    "input": [
      "text"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "정산 대조를 위해 반환된 X-Client-Request-ID를 보관하세요. 실제로 반환된 task_id/asset_id 값이나 소유한 미디어 라이브러리만 조회하세요. 작업 ID로 태스크 URL을 만들거나 생성 요청을 다시 제출하지 마세요."
            },
            "outputs": {
              "all_results": "전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "바이너리 오디오 전체 또는 원래 audio_url 응답, 헤더 및 모든 소유 자산입니다."
            },
            "parameters": [
              {
                "enum": [
                  "google/gemini-3.8-flash-lite-tts"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "Zephyr",
                  "Puck",
                  "Charon",
                  "Kore",
                  "Fenrir",
                  "Leda",
                  "Orus",
                  "Aoede",
                  "Callirrhoe",
                  "Autonoe",
                  "Enceladus",
                  "Iapetus",
                  "Umbriel",
                  "Algieba",
                  "Despina",
                  "Erinome",
                  "Algenib",
                  "Rasalgethi",
                  "Laomedeia",
                  "Achernar",
                  "Alnilam",
                  "Schedar",
                  "Gacrux",
                  "Pulcherrima",
                  "Achird",
                  "Zubenelgenubi",
                  "Vindemiatrix",
                  "Sadachbia",
                  "Sadaltager",
                  "Sulafat"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "google/gemini-3.8-flash-lite-tts"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "Zephyr",
                    "Puck",
                    "Charon",
                    "Kore",
                    "Fenrir",
                    "Leda",
                    "Orus",
                    "Aoede",
                    "Callirrhoe",
                    "Autonoe",
                    "Enceladus",
                    "Iapetus",
                    "Umbriel",
                    "Algieba",
                    "Despina",
                    "Erinome",
                    "Algenib",
                    "Rasalgethi",
                    "Laomedeia",
                    "Achernar",
                    "Alnilam",
                    "Schedar",
                    "Gacrux",
                    "Pulcherrima",
                    "Achird",
                    "Zubenelgenubi",
                    "Vindemiatrix",
                    "Sadachbia",
                    "Sadaltager",
                    "Sulafat"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "google/gemini-3.8-flash-lite-tts",
                "voice": "Zephyr"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "실제로 반환된 task_id 또는 미디어 라이브러리 기록",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "input token",
            "units": [
              {
                "amount": "0.001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "output token",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_token",
                "label": "output token",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'google/gemini-3.8-flash-lite-tts', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'Zephyr'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "음성",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "input_token": 1e-06,
            "output_token": 1.2e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "input token",
            "units": [
              {
                "amount": "0.001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "/ 1K tokens"
            },
            "label": "output token",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_token",
                "label": "output token",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              }
            ]
          }
        ],
        "request_model_id": "google/gemini-3.8-flash-lite-tts",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_token",
            "label": "input token",
            "native_amount_usd_per_unit": "0.000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_token",
            "label": "output token",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/gemini-3.8-flash-lite-tts",
        "request_model_id": "google/gemini-3.8-flash-lite-tts",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Gemini 3.8 Flash Lite TTS",
    "price": {
      "in": null,
      "in_label": null,
      "out": 0.012,
      "out_label": "/ 1K tokens",
      "sort_in": null,
      "sort_out": 0.012,
      "varies": true
    },
    "short": "Google Gemini 3.8 Flash-Lite TTS는 정확한 대본을 음성으로 변환해 읽어 주기 기능, 일상적인 내레이션, 대량의 발화 콘텐츠에 활용합니다. 101개 언어, 선택 가능한 음성, 별도의 스타일 메타데이터를 통한 전달 방식 제어를 지원하며, 짧은 쉼과 발성 사건에는 인라인 태그를 사용합니다."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Google Gemini 3.8 Flash-Lite TTS는 정확한 대본을 음성으로 변환해 읽어 주기 기능, 일상적인 내레이션, 대량의 발화 콘텐츠에 활용합니다. 101개 언어, 선택 가능한 음성, 별도의 스타일 메타데이터를 통한 전달 방식 제어를 지원하며, 짧은 쉼과 발성 사건에는 인라인 태그를 사용합니다.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "5abf30085dae1245c664849488c88cc155194ce5c9d1d511b30760de5808de5c",
    "renderer_sha256": "6825a317438b70ab0939441dcebefece462384e77f7e96cce899605c4b208caa"
  },
  "sourceRevision": "034da1c01194932d9f87a82cc3023fd2a4008529fd16e140f964e9c25559f1e0"
}
