{
  "aboutHtml": "<p>Google Chirp 3는 발화 오디오를 텍스트로 변환하는 다국어 자동 음성 인식 모델입니다. Google은 Speech-to-Text V2 제품군의 Chirp 3 전사 모델로 문서화하며 모델 식별자는 chirp_3입니다. 언어 감지와 전사 전용 기능을 사용해 녹음 또는 스트리밍 음성을 인식하는 것이 목적입니다. 결과물은 생성 음성이나 개방형 어시스턴트 답변이 아니라 전사문과 선택한 인식 방식에서 지원하는 메타데이터입니다.</p><p>제작사는 스트리밍 인식, 짧은 클립용 동기식 인식, 긴 녹음용 배치 인식을 구분합니다. 원본 오디오와 필요한 결과에 따라 모드를 선택하세요. 짧은 음성 메모에는 완성된 텍스트 응답으로 충분할 수 있습니다. 인터뷰나 녹음 통화에는 화자 정보가 있는 배치 결과가 더 유용할 수 있습니다. 실시간 자막이나 음성 명령 인터페이스에서는 중간 텍스트를 최종 인식 결과와 구분하고 해당 텍스트가 설명하는 오디오 구간을 보존하세요.</p><p>인식 구현이 예상하는 인코딩으로 오디오를 준비하세요. Google의 Chirp 3 예시는 녹음 파일에 자동 감지 디코딩을 사용하고 원시 스트리밍 구성에는 명시적 디코딩을 사용합니다. 관련 V2 디코더 참조는 지원 인코딩으로 WAV PCM 또는 컴팬딩 오디오, FLAC, MP3, Ogg/WebM Opus, MP4·M4A·MOV 컨테이너의 AAC 등을 기재합니다. 컨테이너 이름은 실제 코덱과 샘플 설정을 대체하지 않습니다. 선명한 음성을 유지하고 심한 클리핑이나 들리는 세부 사항을 잃게 하는 불필요한 변환을 피하세요.</p><p>Chirp 3는 주로 사용되는 언어를 자동으로 식별하고 전사할 수 있으며 예상 로캘 집합으로 인식 선택지를 좁힐 수 있습니다. 언어 가용성은 방식과 기능에 따라 다릅니다. 전사 언어 목록은 화자 분리 언어 목록보다 넓으므로 어떤 언어를 인식한다고 그 언어에 모든 화자 또는 시간 기능을 적용할 수 있다는 뜻은 아닙니다. 녹음과 일치하는 로캘을 사용하고 언어가 전환되는 이름이나 전문 용어는 검토를 위해 보존하세요. 감지된 언어 라벨은 결과의 일부이며 드문 단어를 모두 정확하게 인식했다는 증거는 아닙니다.</p><p>화자 분리는 단일 채널 녹음에서 목소리별로 발화를 그룹화합니다. Google은 단어별 화자 정보가 있는 배치 전사 예시를 제공합니다. 인터뷰에서는 해당 라벨을 인식 텍스트와 함께 보관하고 실제 이름이나 역할을 붙이기 전에 화자 전환을 녹음과 비교하세요. 비슷한 목소리, 끼어들기, 겹치는 발화는 각 발화를 화자별로 구분하기 어렵게 만들 수 있습니다. 라벨을 독립적으로 검증된 신원으로 취급하지 말고 원본 채널 구성과 의도한 화자 검토 과제를 명확히 유지하세요.</p><p>시간 정보도 방식에 따라 다릅니다. 스트리밍 인식은 발화 수준 타임스탬프를 제공하며, 제작사의 파일 인식 지침은 전사 품질과의 절충 가능성이 있는 선택적 단어 시간 정보를 설명합니다. 선택한 방식이 실제 반환한 메타데이터를 보관하고 문구와 함께 정렬을 검토하세요. 자막 워크플로에는 둘 다 필요합니다. 읽기 쉬운 인식 텍스트와 시간 경계가 올바른 소리에 대응한다는 증거입니다. Google은 반환된 단어 수준 confidence 값이 진정한 신뢰도 점수가 아니라고도 경고하므로 단어의 정확성을 인증하는 데 사용해서는 안 됩니다.</p><p>음성 적응은 녹음에 나올 가능성이 있는 구절과 고유 명사를 제공합니다. 제작사는 최대 1,000개 구절의 사전을 문서화하며 다른 용어의 인식이 저하되지 않도록 관련 항목을 가능한 한 적게 사용할 것을 권장합니다. 기술 발표에는 실제 제품명과 약어의 짧은 목록을 준비한 다음 전사문에서 확인하세요. 편향 설정은 인식이 해당 용어를 고려하도록 돕지만, 그 용어가 발화되었음을 입증하거나 오디오와의 대조를 대체하지는 않습니다.</p><p>모델은 자동 문장부호와 대문자 표기를 제공하며 문서화된 인터페이스에서 이를 비활성화할 수 있습니다. Google은 특정 이름이나 날짜의 표기 방식 같은 사용자 지정 전사 형식 지시의 프리뷰 기능도 설명합니다. 해당 지시는 인식한 발화의 형식화에 집중하도록 유지하세요. 날짜를 정규화하거나 브랜드를 대문자로 쓰는 전사문도 발화 의미를 보존해야 합니다. 요약, 번역, 사실 분석은 전사문의 후속 활용이며 인식 결과 자체가 입증하는 것은 아닙니다.</p><p>내장 잡음 제거기는 배경 음악과 비, 거리 소음 같은 환경음을 줄이기 위한 기능입니다. Google은 배경의 사람 목소리는 제거할 수 없다고 명시합니다. 대화가 겹치는 녹음을 준비할 때 이 구분을 유지하세요. 더 깔끔해 보이는 전사문이 방해 소리가 제거되었음을 입증한다고 가정하지 말고 시끄러운 구간과 조용한 구간을 원본과 대조하세요. 유용한 결과는 불확실한 구절을 수정할 수 있게 식별 가능한 상태로 유지합니다.</p><p>스트리밍 과제에서는 발화 종료 감지 민감도가 발화를 끝난 것으로 처리하는 시점을 바꿉니다. 제작사는 예상 발화가 점점 짧아지는 경우를 위한 standard, short, supershort 설정을 설명합니다. 더 빠른 설정은 생각을 말하던 중 잠시 멈춘 화자의 발화를 끊을 수 있습니다. 자연스러운 받아쓰기, 짧은 문장, 매우 짧은 명령에 맞춰 설정하고 최종 결과 상태를 전사문과 함께 보관하세요. 완성된 파일에서는 이름, 수량, 부정 표현, 화자 경계를 검토한 뒤 선택한 모드와 원본 오디오를 보관해 결과를 확인하거나 재사용할 수 있도록 하세요.</p>",
  "aboutText": "Google Chirp 3는 발화 오디오를 텍스트로 변환하는 다국어 자동 음성 인식 모델입니다. Google은 Speech-to-Text V2 제품군의 Chirp 3 전사 모델로 문서화하며 모델 식별자는 chirp_3입니다. 언어 감지와 전사 전용 기능을 사용해 녹음 또는 스트리밍 음성을 인식하는 것이 목적입니다. 결과물은 생성 음성이나 개방형 어시스턴트 답변이 아니라 전사문과 선택한 인식 방식에서 지원하는 메타데이터입니다.\n\n제작사는 스트리밍 인식, 짧은 클립용 동기식 인식, 긴 녹음용 배치 인식을 구분합니다. 원본 오디오와 필요한 결과에 따라 모드를 선택하세요. 짧은 음성 메모에는 완성된 텍스트 응답으로 충분할 수 있습니다. 인터뷰나 녹음 통화에는 화자 정보가 있는 배치 결과가 더 유용할 수 있습니다. 실시간 자막이나 음성 명령 인터페이스에서는 중간 텍스트를 최종 인식 결과와 구분하고 해당 텍스트가 설명하는 오디오 구간을 보존하세요.\n\n인식 구현이 예상하는 인코딩으로 오디오를 준비하세요. Google의 Chirp 3 예시는 녹음 파일에 자동 감지 디코딩을 사용하고 원시 스트리밍 구성에는 명시적 디코딩을 사용합니다. 관련 V2 디코더 참조는 지원 인코딩으로 WAV PCM 또는 컴팬딩 오디오, FLAC, MP3, Ogg/WebM Opus, MP4·M4A·MOV 컨테이너의 AAC 등을 기재합니다. 컨테이너 이름은 실제 코덱과 샘플 설정을 대체하지 않습니다. 선명한 음성을 유지하고 심한 클리핑이나 들리는 세부 사항을 잃게 하는 불필요한 변환을 피하세요.\n\nChirp 3는 주로 사용되는 언어를 자동으로 식별하고 전사할 수 있으며 예상 로캘 집합으로 인식 선택지를 좁힐 수 있습니다. 언어 가용성은 방식과 기능에 따라 다릅니다. 전사 언어 목록은 화자 분리 언어 목록보다 넓으므로 어떤 언어를 인식한다고 그 언어에 모든 화자 또는 시간 기능을 적용할 수 있다는 뜻은 아닙니다. 녹음과 일치하는 로캘을 사용하고 언어가 전환되는 이름이나 전문 용어는 검토를 위해 보존하세요. 감지된 언어 라벨은 결과의 일부이며 드문 단어를 모두 정확하게 인식했다는 증거는 아닙니다.\n\n화자 분리는 단일 채널 녹음에서 목소리별로 발화를 그룹화합니다. Google은 단어별 화자 정보가 있는 배치 전사 예시를 제공합니다. 인터뷰에서는 해당 라벨을 인식 텍스트와 함께 보관하고 실제 이름이나 역할을 붙이기 전에 화자 전환을 녹음과 비교하세요. 비슷한 목소리, 끼어들기, 겹치는 발화는 각 발화를 화자별로 구분하기 어렵게 만들 수 있습니다. 라벨을 독립적으로 검증된 신원으로 취급하지 말고 원본 채널 구성과 의도한 화자 검토 과제를 명확히 유지하세요.\n\n시간 정보도 방식에 따라 다릅니다. 스트리밍 인식은 발화 수준 타임스탬프를 제공하며, 제작사의 파일 인식 지침은 전사 품질과의 절충 가능성이 있는 선택적 단어 시간 정보를 설명합니다. 선택한 방식이 실제 반환한 메타데이터를 보관하고 문구와 함께 정렬을 검토하세요. 자막 워크플로에는 둘 다 필요합니다. 읽기 쉬운 인식 텍스트와 시간 경계가 올바른 소리에 대응한다는 증거입니다. Google은 반환된 단어 수준 confidence 값이 진정한 신뢰도 점수가 아니라고도 경고하므로 단어의 정확성을 인증하는 데 사용해서는 안 됩니다.\n\n음성 적응은 녹음에 나올 가능성이 있는 구절과 고유 명사를 제공합니다. 제작사는 최대 1,000개 구절의 사전을 문서화하며 다른 용어의 인식이 저하되지 않도록 관련 항목을 가능한 한 적게 사용할 것을 권장합니다. 기술 발표에는 실제 제품명과 약어의 짧은 목록을 준비한 다음 전사문에서 확인하세요. 편향 설정은 인식이 해당 용어를 고려하도록 돕지만, 그 용어가 발화되었음을 입증하거나 오디오와의 대조를 대체하지는 않습니다.\n\n모델은 자동 문장부호와 대문자 표기를 제공하며 문서화된 인터페이스에서 이를 비활성화할 수 있습니다. Google은 특정 이름이나 날짜의 표기 방식 같은 사용자 지정 전사 형식 지시의 프리뷰 기능도 설명합니다. 해당 지시는 인식한 발화의 형식화에 집중하도록 유지하세요. 날짜를 정규화하거나 브랜드를 대문자로 쓰는 전사문도 발화 의미를 보존해야 합니다. 요약, 번역, 사실 분석은 전사문의 후속 활용이며 인식 결과 자체가 입증하는 것은 아닙니다.\n\n내장 잡음 제거기는 배경 음악과 비, 거리 소음 같은 환경음을 줄이기 위한 기능입니다. Google은 배경의 사람 목소리는 제거할 수 없다고 명시합니다. 대화가 겹치는 녹음을 준비할 때 이 구분을 유지하세요. 더 깔끔해 보이는 전사문이 방해 소리가 제거되었음을 입증한다고 가정하지 말고 시끄러운 구간과 조용한 구간을 원본과 대조하세요. 유용한 결과는 불확실한 구절을 수정할 수 있게 식별 가능한 상태로 유지합니다.\n\n스트리밍 과제에서는 발화 종료 감지 민감도가 발화를 끝난 것으로 처리하는 시점을 바꿉니다. 제작사는 예상 발화가 점점 짧아지는 경우를 위한 standard, short, supershort 설정을 설명합니다. 더 빠른 설정은 생각을 말하던 중 잠시 멈춘 화자의 발화를 끊을 수 있습니다. 자연스러운 받아쓰기, 짧은 문장, 매우 짧은 명령에 맞춰 설정하고 최종 결과 상태를 전사문과 함께 보관하세요. 완성된 파일에서는 이름, 수량, 부정 표현, 화자 경계를 검토한 뒤 선택한 모드와 원본 오디오를 보관해 결과를 확인하거나 재사용할 수 있도록 하세요.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "8bf5d34c518bed4da8f28a79c190e6296b52dd56fbf060b2efc61a31ace0bd56",
    "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: Chirp 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"닫기\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</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|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3\">음성 인식</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 Chirp 3는 스트리밍, 짧은 녹음, 더 긴 배치 전사를 위한 다국어 음성 인식 모델입니다. 자동 언어 감지, 문장부호, 어휘 적응, 모드별 시간 또는 화자 메타데이터를 제공합니다. 잡음 제거기는 배경 소음을 줄이지만 다른 사람의 목소리는 제거할 수 없습니다.</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 Chirp 3는 발화 오디오를 텍스트로 변환하는 다국어 자동 음성 인식 모델입니다. Google은 Speech-to-Text V2 제품군의 Chirp 3 전사 모델로 문서화하며 모델 식별자는 chirp_3입니다. 언어 감지와 전사 전용 기능을 사용해 녹음 또는 스트리밍 음성을 인식하는 것이 목적입니다. 결과물은 생성 음성이나 개방형 어시스턴트 답변이 아니라 전사문과 선택한 인식 방식에서 지원하는 메타데이터입니다.</p><p>제작사는 스트리밍 인식, 짧은 클립용 동기식 인식, 긴 녹음용 배치 인식을 구분합니다. 원본 오디오와 필요한 결과에 따라 모드를 선택하세요. 짧은 음성 메모에는 완성된 텍스트 응답으로 충분할 수 있습니다. 인터뷰나 녹음 통화에는 화자 정보가 있는 배치 결과가 더 유용할 수 있습니다. 실시간 자막이나 음성 명령 인터페이스에서는 중간 텍스트를 최종 인식 결과와 구분하고 해당 텍스트가 설명하는 오디오 구간을 보존하세요.</p><p>인식 구현이 예상하는 인코딩으로 오디오를 준비하세요. Google의 Chirp 3 예시는 녹음 파일에 자동 감지 디코딩을 사용하고 원시 스트리밍 구성에는 명시적 디코딩을 사용합니다. 관련 V2 디코더 참조는 지원 인코딩으로 WAV PCM 또는 컴팬딩 오디오, FLAC, MP3, Ogg/WebM Opus, MP4·M4A·MOV 컨테이너의 AAC 등을 기재합니다. 컨테이너 이름은 실제 코덱과 샘플 설정을 대체하지 않습니다. 선명한 음성을 유지하고 심한 클리핑이나 들리는 세부 사항을 잃게 하는 불필요한 변환을 피하세요.</p><p>Chirp 3는 주로 사용되는 언어를 자동으로 식별하고 전사할 수 있으며 예상 로캘 집합으로 인식 선택지를 좁힐 수 있습니다. 언어 가용성은 방식과 기능에 따라 다릅니다. 전사 언어 목록은 화자 분리 언어 목록보다 넓으므로 어떤 언어를 인식한다고 그 언어에 모든 화자 또는 시간 기능을 적용할 수 있다는 뜻은 아닙니다. 녹음과 일치하는 로캘을 사용하고 언어가 전환되는 이름이나 전문 용어는 검토를 위해 보존하세요. 감지된 언어 라벨은 결과의 일부이며 드문 단어를 모두 정확하게 인식했다는 증거는 아닙니다.</p><p>화자 분리는 단일 채널 녹음에서 목소리별로 발화를 그룹화합니다. Google은 단어별 화자 정보가 있는 배치 전사 예시를 제공합니다. 인터뷰에서는 해당 라벨을 인식 텍스트와 함께 보관하고 실제 이름이나 역할을 붙이기 전에 화자 전환을 녹음과 비교하세요. 비슷한 목소리, 끼어들기, 겹치는 발화는 각 발화를 화자별로 구분하기 어렵게 만들 수 있습니다. 라벨을 독립적으로 검증된 신원으로 취급하지 말고 원본 채널 구성과 의도한 화자 검토 과제를 명확히 유지하세요.</p><p>시간 정보도 방식에 따라 다릅니다. 스트리밍 인식은 발화 수준 타임스탬프를 제공하며, 제작사의 파일 인식 지침은 전사 품질과의 절충 가능성이 있는 선택적 단어 시간 정보를 설명합니다. 선택한 방식이 실제 반환한 메타데이터를 보관하고 문구와 함께 정렬을 검토하세요. 자막 워크플로에는 둘 다 필요합니다. 읽기 쉬운 인식 텍스트와 시간 경계가 올바른 소리에 대응한다는 증거입니다. Google은 반환된 단어 수준 confidence 값이 진정한 신뢰도 점수가 아니라고도 경고하므로 단어의 정확성을 인증하는 데 사용해서는 안 됩니다.</p><p>음성 적응은 녹음에 나올 가능성이 있는 구절과 고유 명사를 제공합니다. 제작사는 최대 1,000개 구절의 사전을 문서화하며 다른 용어의 인식이 저하되지 않도록 관련 항목을 가능한 한 적게 사용할 것을 권장합니다. 기술 발표에는 실제 제품명과 약어의 짧은 목록을 준비한 다음 전사문에서 확인하세요. 편향 설정은 인식이 해당 용어를 고려하도록 돕지만, 그 용어가 발화되었음을 입증하거나 오디오와의 대조를 대체하지는 않습니다.</p><p>모델은 자동 문장부호와 대문자 표기를 제공하며 문서화된 인터페이스에서 이를 비활성화할 수 있습니다. Google은 특정 이름이나 날짜의 표기 방식 같은 사용자 지정 전사 형식 지시의 프리뷰 기능도 설명합니다. 해당 지시는 인식한 발화의 형식화에 집중하도록 유지하세요. 날짜를 정규화하거나 브랜드를 대문자로 쓰는 전사문도 발화 의미를 보존해야 합니다. 요약, 번역, 사실 분석은 전사문의 후속 활용이며 인식 결과 자체가 입증하는 것은 아닙니다.</p><p>내장 잡음 제거기는 배경 음악과 비, 거리 소음 같은 환경음을 줄이기 위한 기능입니다. Google은 배경의 사람 목소리는 제거할 수 없다고 명시합니다. 대화가 겹치는 녹음을 준비할 때 이 구분을 유지하세요. 더 깔끔해 보이는 전사문이 방해 소리가 제거되었음을 입증한다고 가정하지 말고 시끄러운 구간과 조용한 구간을 원본과 대조하세요. 유용한 결과는 불확실한 구절을 수정할 수 있게 식별 가능한 상태로 유지합니다.</p><p>스트리밍 과제에서는 발화 종료 감지 민감도가 발화를 끝난 것으로 처리하는 시점을 바꿉니다. 제작사는 예상 발화가 점점 짧아지는 경우를 위한 standard, short, supershort 설정을 설명합니다. 더 빠른 설정은 생각을 말하던 중 잠시 멈춘 화자의 발화를 끊을 수 있습니다. 자연스러운 받아쓰기, 짧은 문장, 매우 짧은 명령에 맞춰 설정하고 최종 결과 상태를 전사문과 함께 보관하세요. 완성된 파일에서는 이름, 수량, 부정 표현, 화자 경계를 검토한 뒤 선택한 모드와 원본 오디오를 보관해 결과를 확인하거나 재사용할 수 있도록 하세요.</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/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>입력</dt><dd><code>audio</code></dd></div><div><dt>출력</dt><dd><code>text</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/chirp-3</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_audio</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_audio</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>audio</td></tr><tr><th data-cell-label=\"매개변수\" scope=\"row\"><span class=\"card-cell-label\">매개변수</span><code>material_conditions</code></th><td data-cell-label=\"명세\"><span class=\"card-cell-label\">명세</span>이 예제는 비어 있지 않은 실제 PCM WAV 파일을 읽고, 파일의 전체 바이트를 base64로 인코딩한 다음 input_audio.format을 wav로 전송합니다.</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>입력 오디오 초당</td><td data-cell-label=\"요금\"><span class=\"card-cell-label\">요금</span><div><span>입력 · 입력 오디오(초)</span> <b>$0.000533333333334</b> <span class=\"price-unit\">입력 오디오 초당</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-1435-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1435-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · 실제 WAV 파일과 원본 결과 전체</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-1435-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1435-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;google/chirp-3&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\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\">원본 응답 본문 전체, 상태 및 전달된 헤더입니다. 이 핸들러는 공통 JSON 구조, 텍스트 필드 또는 작업 바깥 구조를 추가하지 않습니다.</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><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와 응답 전체를 보존하세요. 원래 소유 자산과 해당 자산의 정확한 서명된 콘텐츠 URL을 조회하세요. 생성 여부가 불확실한 요청을 절대로 다시 제출하지 마세요.</p></div><details class=\"card-about\" data-output-fields><summary>응답 필드</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><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\">text (when present)</code></th><td data-cell-label=\"유형\" data-field-type><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\">usage (when present)</code></th><td data-cell-label=\"유형\" data-field-type><span class=\"card-cell-label\">유형</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>오류와 다음 단계</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>응답</th><th>조건</th><th>다음 단계</th></tr></thead><tbody><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>JSON 본문 또는 명시적인 표준 모델 ID가 유효하지 않습니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>응답을 보존하고 표시된 요청 필드를 수정하세요.</td></tr><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>401 · <code>authentication_error</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>Ailoot API 키가 유효하지 않습니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>사용 권한이 있는 Ailoot API 키를 사용하세요.</td></tr><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>403 · <code>permission_error</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>이 키 그룹은 해당 메서드를 허용하지 않습니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>반환된 오류 세부 정보를 보존하세요.</td></tr><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>404 · <code>not_found_error</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>선택한 메서드에는 허용된 경로가 없습니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>반환된 오류 세부 정보를 보존하세요.</td></tr><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>승인된 요금제에서 필요한 입력 수량 또는 상한을 확보할 수 없습니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>응답을 보존하세요. 승인된 요금제에서 요구하는 입력 표현 형식을 사용하세요.</td></tr><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>503 · <code></code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>필요한 저장소, 경로, 메서드 요금 또는 예약을 사용할 수 없습니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>원본 응답 전체를 보존하세요. 예약 여부가 불확실하다고 해서 다시 제출할 수 있는 것은 아닙니다.</td></tr><tr><th data-cell-label=\"응답\" scope=\"row\"><span class=\"card-cell-label\">응답</span>502 · <code>server_error</code></th><td data-cell-label=\"조건\"><span class=\"card-cell-label\">조건</span>원래 결과, 사용량 또는 정산을 확인해야 합니다.</td><td data-cell-label=\"다음 단계\"><span class=\"card-cell-label\">다음 단계</span>실제 요청 ID와 원본 응답을 보존하세요. 기존 소유 기록을 조회하고 생성을 다시 제출하지 마세요.</td></tr></tbody></table></div></details></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%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></span></p><h4>메서드 경로 별칭</h4><p class=\"note-s\">위에 표시된 메서드 경로를 사용하세요.</p><h4>관련 호출용 ID</h4><p class=\"note-s\"><a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/chirp-3",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3",
      "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.",
            "errors": [
              {
                "code": null,
                "condition": "JSON 본문 또는 명시적인 표준 모델 ID가 유효하지 않습니다.",
                "http_status": 400,
                "recovery": "응답을 보존하고 표시된 요청 필드를 수정하세요.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API 키가 유효하지 않습니다.",
                "http_status": 401,
                "recovery": "사용 권한이 있는 Ailoot API 키를 사용하세요.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "이 키 그룹은 해당 메서드를 허용하지 않습니다.",
                "http_status": 403,
                "recovery": "반환된 오류 세부 정보를 보존하세요.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "선택한 메서드에는 허용된 경로가 없습니다.",
                "http_status": 404,
                "recovery": "반환된 오류 세부 정보를 보존하세요.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "승인된 요금제에서 필요한 입력 수량 또는 상한을 확보할 수 없습니다.",
                "http_status": 422,
                "recovery": "응답을 보존하세요. 승인된 요금제에서 요구하는 입력 표현 형식을 사용하세요.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "필요한 저장소, 경로, 메서드 요금 또는 예약을 사용할 수 없습니다.",
                "http_status": 503,
                "recovery": "원본 응답 전체를 보존하세요. 예약 여부가 불확실하다고 해서 다시 제출할 수 있는 것은 아닙니다.",
                "type": null
              },
              {
                "code": null,
                "condition": "원래 결과, 사용량 또는 정산을 확인해야 합니다.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "실제 요청 ID와 원본 응답을 보존하세요. 기존 소유 기록을 조회하고 생성을 다시 제출하지 마세요.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "실제 X-Client-Request-ID와 응답 전체를 보존하세요. 원래 소유 자산과 해당 자산의 정확한 서명된 콘텐츠 URL을 조회하세요. 생성 여부가 불확실한 요청을 절대로 다시 제출하지 마세요."
            },
            "outputs": {
              "all_results": "전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "원본 응답 본문 전체, 상태 및 전달된 헤더입니다. 이 핸들러는 공통 JSON 구조, 텍스트 필드 또는 작업 바깥 구조를 추가하지 않습니다."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "이 예제는 비어 있지 않은 실제 PCM WAV 파일을 읽고, 파일의 전체 바이트를 base64로 인코딩한 다음 input_audio.format을 wav로 전송합니다."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "기존 소유 미디어 기록의 정확한 task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "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": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "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": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": [
          "audio"
        ],
        "label": "음성 전사",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "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": {
            "audio_input_second": 0.000533333333334
          }
        },
        "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": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "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.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "google/chirp-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0d87962d2f360d245e2da9eea5cabb44b4ba659f6ee6d1c08f75fd4be28c5974",
    "input_html_sha256": "0ebb163dacdc68426375c77f83d43144a7b80e66b147742a8c749e8e1c85bfeb",
    "private_audit_sha256": "6c8c841c9350528abd337707b4abe5bdf6dd8a3288cf5ae0d68c75324950ad3b",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ko/google-chirp-3/",
    "description": "Google Chirp 3는 스트리밍, 짧은 녹음, 더 긴 배치 전사를 위한 다국어 음성 인식 모델입니다. 자동 언어 감지, 문장부호, 어휘 적응, 모드별 시간 또는 화자 메타데이터를 제공합니다. 잡음 제거기는 배경 소음을 줄이지만 다른 사람의 목소리는 제거할 수 없습니다.",
    "locale": "ko",
    "md_url": "https://ailoot.ai/models/ko/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/ko/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3는 발화 오디오를 텍스트로 변환하는 다국어 자동 음성 인식 모델입니다. Google은 Speech-to-Text V2 제품군의 Chirp 3 전사 모델로 문서화하며 모델 식별자는 chirp_3입니다. 언어 감지와 전사 전용 기능을 사용해 녹음 또는 스트리밍 음성을 인식하는 것이 목적입니다. 결과물은 생성 음성이나 개방형 어시스턴트 답변이 아니라 전사문과 선택한 인식 방식에서 지원하는 메타데이터입니다.\n\n제작사는 스트리밍 인식, 짧은 클립용 동기식 인식, 긴 녹음용 배치 인식을 구분합니다. 원본 오디오와 필요한 결과에 따라 모드를 선택하세요. 짧은 음성 메모에는 완성된 텍스트 응답으로 충분할 수 있습니다. 인터뷰나 녹음 통화에는 화자 정보가 있는 배치 결과가 더 유용할 수 있습니다. 실시간 자막이나 음성 명령 인터페이스에서는 중간 텍스트를 최종 인식 결과와 구분하고 해당 텍스트가 설명하는 오디오 구간을 보존하세요.\n\n인식 구현이 예상하는 인코딩으로 오디오를 준비하세요. Google의 Chirp 3 예시는 녹음 파일에 자동 감지 디코딩을 사용하고 원시 스트리밍 구성에는 명시적 디코딩을 사용합니다. 관련 V2 디코더 참조는 지원 인코딩으로 WAV PCM 또는 컴팬딩 오디오, FLAC, MP3, Ogg/WebM Opus, MP4·M4A·MOV 컨테이너의 AAC 등을 기재합니다. 컨테이너 이름은 실제 코덱과 샘플 설정을 대체하지 않습니다. 선명한 음성을 유지하고 심한 클리핑이나 들리는 세부 사항을 잃게 하는 불필요한 변환을 피하세요.\n\nChirp 3는 주로 사용되는 언어를 자동으로 식별하고 전사할 수 있으며 예상 로캘 집합으로 인식 선택지를 좁힐 수 있습니다. 언어 가용성은 방식과 기능에 따라 다릅니다. 전사 언어 목록은 화자 분리 언어 목록보다 넓으므로 어떤 언어를 인식한다고 그 언어에 모든 화자 또는 시간 기능을 적용할 수 있다는 뜻은 아닙니다. 녹음과 일치하는 로캘을 사용하고 언어가 전환되는 이름이나 전문 용어는 검토를 위해 보존하세요. 감지된 언어 라벨은 결과의 일부이며 드문 단어를 모두 정확하게 인식했다는 증거는 아닙니다.\n\n화자 분리는 단일 채널 녹음에서 목소리별로 발화를 그룹화합니다. Google은 단어별 화자 정보가 있는 배치 전사 예시를 제공합니다. 인터뷰에서는 해당 라벨을 인식 텍스트와 함께 보관하고 실제 이름이나 역할을 붙이기 전에 화자 전환을 녹음과 비교하세요. 비슷한 목소리, 끼어들기, 겹치는 발화는 각 발화를 화자별로 구분하기 어렵게 만들 수 있습니다. 라벨을 독립적으로 검증된 신원으로 취급하지 말고 원본 채널 구성과 의도한 화자 검토 과제를 명확히 유지하세요.\n\n시간 정보도 방식에 따라 다릅니다. 스트리밍 인식은 발화 수준 타임스탬프를 제공하며, 제작사의 파일 인식 지침은 전사 품질과의 절충 가능성이 있는 선택적 단어 시간 정보를 설명합니다. 선택한 방식이 실제 반환한 메타데이터를 보관하고 문구와 함께 정렬을 검토하세요. 자막 워크플로에는 둘 다 필요합니다. 읽기 쉬운 인식 텍스트와 시간 경계가 올바른 소리에 대응한다는 증거입니다. Google은 반환된 단어 수준 confidence 값이 진정한 신뢰도 점수가 아니라고도 경고하므로 단어의 정확성을 인증하는 데 사용해서는 안 됩니다.\n\n음성 적응은 녹음에 나올 가능성이 있는 구절과 고유 명사를 제공합니다. 제작사는 최대 1,000개 구절의 사전을 문서화하며 다른 용어의 인식이 저하되지 않도록 관련 항목을 가능한 한 적게 사용할 것을 권장합니다. 기술 발표에는 실제 제품명과 약어의 짧은 목록을 준비한 다음 전사문에서 확인하세요. 편향 설정은 인식이 해당 용어를 고려하도록 돕지만, 그 용어가 발화되었음을 입증하거나 오디오와의 대조를 대체하지는 않습니다.\n\n모델은 자동 문장부호와 대문자 표기를 제공하며 문서화된 인터페이스에서 이를 비활성화할 수 있습니다. Google은 특정 이름이나 날짜의 표기 방식 같은 사용자 지정 전사 형식 지시의 프리뷰 기능도 설명합니다. 해당 지시는 인식한 발화의 형식화에 집중하도록 유지하세요. 날짜를 정규화하거나 브랜드를 대문자로 쓰는 전사문도 발화 의미를 보존해야 합니다. 요약, 번역, 사실 분석은 전사문의 후속 활용이며 인식 결과 자체가 입증하는 것은 아닙니다.\n\n내장 잡음 제거기는 배경 음악과 비, 거리 소음 같은 환경음을 줄이기 위한 기능입니다. Google은 배경의 사람 목소리는 제거할 수 없다고 명시합니다. 대화가 겹치는 녹음을 준비할 때 이 구분을 유지하세요. 더 깔끔해 보이는 전사문이 방해 소리가 제거되었음을 입증한다고 가정하지 말고 시끄러운 구간과 조용한 구간을 원본과 대조하세요. 유용한 결과는 불확실한 구절을 수정할 수 있게 식별 가능한 상태로 유지합니다.\n\n스트리밍 과제에서는 발화 종료 감지 민감도가 발화를 끝난 것으로 처리하는 시점을 바꿉니다. 제작사는 예상 발화가 점점 짧아지는 경우를 위한 standard, short, supershort 설정을 설명합니다. 더 빠른 설정은 생각을 말하던 중 잠시 멈춘 화자의 발화를 끊을 수 있습니다. 자연스러운 받아쓰기, 짧은 문장, 매우 짧은 명령에 맞춰 설정하고 최종 결과 상태를 전사문과 함께 보관하세요. 완성된 파일에서는 이름, 수량, 부정 표현, 화자 경계를 검토한 뒤 선택한 모드와 원본 오디오를 보관해 결과를 확인하거나 재사용할 수 있도록 하세요.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "구성의 전체 요금 정보는 상세 정보에서 확인할 수 있습니다."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "google/chirp-3",
    "input": [
      "audio"
    ],
    "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.",
            "errors": [
              {
                "code": null,
                "condition": "JSON 본문 또는 명시적인 표준 모델 ID가 유효하지 않습니다.",
                "http_status": 400,
                "recovery": "응답을 보존하고 표시된 요청 필드를 수정하세요.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API 키가 유효하지 않습니다.",
                "http_status": 401,
                "recovery": "사용 권한이 있는 Ailoot API 키를 사용하세요.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "이 키 그룹은 해당 메서드를 허용하지 않습니다.",
                "http_status": 403,
                "recovery": "반환된 오류 세부 정보를 보존하세요.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "선택한 메서드에는 허용된 경로가 없습니다.",
                "http_status": 404,
                "recovery": "반환된 오류 세부 정보를 보존하세요.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "승인된 요금제에서 필요한 입력 수량 또는 상한을 확보할 수 없습니다.",
                "http_status": 422,
                "recovery": "응답을 보존하세요. 승인된 요금제에서 요구하는 입력 표현 형식을 사용하세요.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "필요한 저장소, 경로, 메서드 요금 또는 예약을 사용할 수 없습니다.",
                "http_status": 503,
                "recovery": "원본 응답 전체를 보존하세요. 예약 여부가 불확실하다고 해서 다시 제출할 수 있는 것은 아닙니다.",
                "type": null
              },
              {
                "code": null,
                "condition": "원래 결과, 사용량 또는 정산을 확인해야 합니다.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "실제 요청 ID와 원본 응답을 보존하세요. 기존 소유 기록을 조회하고 생성을 다시 제출하지 마세요.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "실제 X-Client-Request-ID와 응답 전체를 보존하세요. 원래 소유 자산과 해당 자산의 정확한 서명된 콘텐츠 URL을 조회하세요. 생성 여부가 불확실한 요청을 절대로 다시 제출하지 마세요."
            },
            "outputs": {
              "all_results": "전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "원본 응답 본문 전체, 상태 및 전달된 헤더입니다. 이 핸들러는 공통 JSON 구조, 텍스트 필드 또는 작업 바깥 구조를 추가하지 않습니다."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "이 예제는 비어 있지 않은 실제 PCM WAV 파일을 읽고, 파일의 전체 바이트를 base64로 인코딩한 다음 input_audio.format을 wav로 전송합니다."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "기존 소유 미디어 기록의 정확한 task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "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": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "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": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": [
          "audio"
        ],
        "label": "음성 전사",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "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": {
            "audio_input_second": 0.000533333333334
          }
        },
        "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": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "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.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/chirp-3",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Chirp 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Google Chirp 3는 스트리밍, 짧은 녹음, 더 긴 배치 전사를 위한 다국어 음성 인식 모델입니다. 자동 언어 감지, 문장부호, 어휘 적응, 모드별 시간 또는 화자 메타데이터를 제공합니다. 잡음 제거기는 배경 소음을 줄이지만 다른 사람의 목소리는 제거할 수 없습니다."
  },
  "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 Chirp 3는 스트리밍, 짧은 녹음, 더 긴 배치 전사를 위한 다국어 음성 인식 모델입니다. 자동 언어 감지, 문장부호, 어휘 적응, 모드별 시간 또는 화자 메타데이터를 제공합니다. 잡음 제거기는 배경 소음을 줄이지만 다른 사람의 목소리는 제거할 수 없습니다.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "c8eacb0bce795957c4db14c282668349ac62b6f4221b3dc84aab76d3f235471b",
    "renderer_sha256": "6825a317438b70ab0939441dcebefece462384e77f7e96cce899605c4b208caa"
  },
  "sourceRevision": "1ff374de60a1e240167cb9f0d8acfeb937d9f0e88685102b16dc9c6b78c851c0"
}
