{
  "aboutHtml": "<p>Turbo라고도 불리는 Whisper large-v3-turbo는 Whisper large-v3에서 파생된 OpenAI의 최적화된 음성 전사 모델입니다. 디코더는 32층에서 네 층으로 줄었고, 인코더는 32층을 유지합니다. 공개된 모델의 파라미터는 약 8억900만 개입니다. 제조사의 목적은 정확도를 다소 양보하면서 음성 인식을 더 빠르게 하는 것이며, 다른 음성 생성 모드를 제공하는 것이 아닙니다. 녹음된 말이 입력이고 인식된 텍스트가 결과입니다.</p><p>출시 발표는 Turbo의 제작 과정을 별도로 증류된 Whisper 모델과 구분합니다. Turbo는 번역 데이터를 제외한 다국어 전사 데이터로 추가 두 에포크 동안 미세 조정되었습니다. 이 차이는 운용상 중요합니다. OpenAI 저장소는 Turbo가 영어가 아닌 음성을 영어로 번역하도록 학습되지 않았으며, 번역 작업을 요청해도 원래 언어로 반환할 수 있다고 설명합니다. 이 버전은 같은 언어의 전사에 사용하세요. 번역이 필요하다면 적합한 다른 모델이나 전사 후 별도 단계에서 처리해야 합니다.</p><p>원어 감지와 명시적인 언어 선택은 전사에 유용한 선택지입니다. 녹음 언어를 이미 알고 있다면 작업 지시에 명시하세요. 모르는 경우에는 문서화된 작업 흐름에서 감지할 수 있습니다. 편집상 정리를 요청하기 전에 이름, 수량과 실제 발화된 말을 보존하세요. 회의 기록, 인터뷰 전사나 강의 텍스트는 이후 별도 작업에서 검색하거나 주석을 달거나 요약할 수 있습니다. Turbo의 인식 작업을 음성 합성, 화자 모방 또는 녹음 속 사람들에 대한 의미적 판단과 혼동해서는 안 됩니다.</p><p>OpenAI의 오디오 로더는 입력 파일을 16 kHz 모노 샘플로 디코딩하며, 모델은 30초 음향 윈도와 128개의 멜 주파수 빈을 사용합니다. 더 긴 녹음에는 장시간 음성 추론이 필요합니다. 순차 처리는 윈도를 차례대로 진행합니다. 청크 방식은 겹치는 구간을 전사하고 경계를 이어 붙입니다. 모델 카드는 하나의 긴 파일에서 처리 완료까지의 시간이 최우선인 경우 후자가 유용하고, 순차 처리는 정확도를 중시하는 대안이라고 설명합니다. 윈도나 모델명만으로 호스팅 서비스의 업로드 파일 크기 상한이 고정되는 것은 아닙니다.</p><p>정확한 Turbo 설정에는 하나의 디코딩 시퀀스에 대해 디코더 위치가 448개로 명시되어 있습니다. 문서화된 추론 작업 흐름은 전사와 함께 구간 또는 단어의 시간 정보를 포함할 수 있습니다. 시간 정보는 필요한 위치로 이동하거나 이후 자막 형식을 정리하는 데 도움이 됩니다. 자막 파일 형식이나 신뢰할 수 있는 화자 라벨이 자동으로 추가되는 것은 아닙니다. 일반 전사와 시간 정보가 있는 구간 중 무엇이 필요한지 명시하고, 의견이 갈리는 구절을 확인할 수 있도록 원본 녹음을 보관하세요. 장시간 음성 처리와 최종 형식 정리는 체크포인트의 정체성과 별개입니다.</p><p>Turbo는 디코딩 작업량을 줄이지만, 실제 소요 시간은 하드웨어, 녹음 길이, 언어, 말하는 속도와 추론 방식에 따라 달라집니다. 제조사는 모든 언어에서 동작이 같기보다 태국어와 광둥어 등 일부 언어에서 품질 저하가 더 크다고 설명합니다. 속도를 중시하는 이 절충이 모든 자료에 적합하다고 판단하기 전에 의도한 언어의 대표 구간을 비교하세요. 아카이브 처리 작업에서는 깨끗한 첫 문장만이 아니라 어려운 어휘, 말 사이의 멈춤, 소음이나 겹치는 발화가 있는 구간을 검토 샘플에 포함하세요.</p><p>공개된 카드는 Whisper의 중요한 인식 한계를 설명합니다. 예측된 텍스트에 실제로 발화되지 않은 단어가 포함되거나 텍스트가 반복될 수 있습니다. 결과는 언어, 억양과 방언에 따라 다르며, 특히 학습에서 충분히 다루지 못한 경우에 차이가 나타납니다. 카드는 기본 모델의 화자 분리나 화자 분류가 신뢰할 만한 표준 능력이라고 입증하지 않습니다. 실용적인 검토는 원음에 대한 충실성에 초점을 맞춥니다. 중요한 이름과 숫자, 누락된 발화, 무음 중의 예상치 못한 텍스트와 반복 등이 대상입니다. 읽기 쉬운 전사도 녹음과 비교할 결과물이며, 정확한 인식의 보장은 아닙니다.</p><p>유용한 최종 결과물은 요청한 시간 정보와 원본 녹음에 대한 명확한 연결을 갖춘 원어 전사입니다. 변경을 추적할 수 있도록 인식 결과 버전과 편집된 출판용 버전을 구분하세요. 버전을 비교할 때는 large-v3-turbo라는 이름을 유지하세요. 이는 전체 large-v3 모델이 아니며, large-v3의 영어 번역 작업을 암묵적으로 이어받아서는 안 됩니다. 이러한 공개 가중치 모델의 정체성에 호스팅된 whisper-1 서비스의 업로드 한도, 응답 컨테이너나 실시간 스트리밍 보장이 포함되지는 않습니다. 문서화된 전사의 절충이 실제 자료와 원하는 처리 시간에 맞을 때 Turbo를 선택하세요.</p>",
  "aboutText": "Turbo라고도 불리는 Whisper large-v3-turbo는 Whisper large-v3에서 파생된 OpenAI의 최적화된 음성 전사 모델입니다. 디코더는 32층에서 네 층으로 줄었고, 인코더는 32층을 유지합니다. 공개된 모델의 파라미터는 약 8억900만 개입니다. 제조사의 목적은 정확도를 다소 양보하면서 음성 인식을 더 빠르게 하는 것이며, 다른 음성 생성 모드를 제공하는 것이 아닙니다. 녹음된 말이 입력이고 인식된 텍스트가 결과입니다.\n\n출시 발표는 Turbo의 제작 과정을 별도로 증류된 Whisper 모델과 구분합니다. Turbo는 번역 데이터를 제외한 다국어 전사 데이터로 추가 두 에포크 동안 미세 조정되었습니다. 이 차이는 운용상 중요합니다. OpenAI 저장소는 Turbo가 영어가 아닌 음성을 영어로 번역하도록 학습되지 않았으며, 번역 작업을 요청해도 원래 언어로 반환할 수 있다고 설명합니다. 이 버전은 같은 언어의 전사에 사용하세요. 번역이 필요하다면 적합한 다른 모델이나 전사 후 별도 단계에서 처리해야 합니다.\n\n원어 감지와 명시적인 언어 선택은 전사에 유용한 선택지입니다. 녹음 언어를 이미 알고 있다면 작업 지시에 명시하세요. 모르는 경우에는 문서화된 작업 흐름에서 감지할 수 있습니다. 편집상 정리를 요청하기 전에 이름, 수량과 실제 발화된 말을 보존하세요. 회의 기록, 인터뷰 전사나 강의 텍스트는 이후 별도 작업에서 검색하거나 주석을 달거나 요약할 수 있습니다. Turbo의 인식 작업을 음성 합성, 화자 모방 또는 녹음 속 사람들에 대한 의미적 판단과 혼동해서는 안 됩니다.\n\nOpenAI의 오디오 로더는 입력 파일을 16 kHz 모노 샘플로 디코딩하며, 모델은 30초 음향 윈도와 128개의 멜 주파수 빈을 사용합니다. 더 긴 녹음에는 장시간 음성 추론이 필요합니다. 순차 처리는 윈도를 차례대로 진행합니다. 청크 방식은 겹치는 구간을 전사하고 경계를 이어 붙입니다. 모델 카드는 하나의 긴 파일에서 처리 완료까지의 시간이 최우선인 경우 후자가 유용하고, 순차 처리는 정확도를 중시하는 대안이라고 설명합니다. 윈도나 모델명만으로 호스팅 서비스의 업로드 파일 크기 상한이 고정되는 것은 아닙니다.\n\n정확한 Turbo 설정에는 하나의 디코딩 시퀀스에 대해 디코더 위치가 448개로 명시되어 있습니다. 문서화된 추론 작업 흐름은 전사와 함께 구간 또는 단어의 시간 정보를 포함할 수 있습니다. 시간 정보는 필요한 위치로 이동하거나 이후 자막 형식을 정리하는 데 도움이 됩니다. 자막 파일 형식이나 신뢰할 수 있는 화자 라벨이 자동으로 추가되는 것은 아닙니다. 일반 전사와 시간 정보가 있는 구간 중 무엇이 필요한지 명시하고, 의견이 갈리는 구절을 확인할 수 있도록 원본 녹음을 보관하세요. 장시간 음성 처리와 최종 형식 정리는 체크포인트의 정체성과 별개입니다.\n\nTurbo는 디코딩 작업량을 줄이지만, 실제 소요 시간은 하드웨어, 녹음 길이, 언어, 말하는 속도와 추론 방식에 따라 달라집니다. 제조사는 모든 언어에서 동작이 같기보다 태국어와 광둥어 등 일부 언어에서 품질 저하가 더 크다고 설명합니다. 속도를 중시하는 이 절충이 모든 자료에 적합하다고 판단하기 전에 의도한 언어의 대표 구간을 비교하세요. 아카이브 처리 작업에서는 깨끗한 첫 문장만이 아니라 어려운 어휘, 말 사이의 멈춤, 소음이나 겹치는 발화가 있는 구간을 검토 샘플에 포함하세요.\n\n공개된 카드는 Whisper의 중요한 인식 한계를 설명합니다. 예측된 텍스트에 실제로 발화되지 않은 단어가 포함되거나 텍스트가 반복될 수 있습니다. 결과는 언어, 억양과 방언에 따라 다르며, 특히 학습에서 충분히 다루지 못한 경우에 차이가 나타납니다. 카드는 기본 모델의 화자 분리나 화자 분류가 신뢰할 만한 표준 능력이라고 입증하지 않습니다. 실용적인 검토는 원음에 대한 충실성에 초점을 맞춥니다. 중요한 이름과 숫자, 누락된 발화, 무음 중의 예상치 못한 텍스트와 반복 등이 대상입니다. 읽기 쉬운 전사도 녹음과 비교할 결과물이며, 정확한 인식의 보장은 아닙니다.\n\n유용한 최종 결과물은 요청한 시간 정보와 원본 녹음에 대한 명확한 연결을 갖춘 원어 전사입니다. 변경을 추적할 수 있도록 인식 결과 버전과 편집된 출판용 버전을 구분하세요. 버전을 비교할 때는 large-v3-turbo라는 이름을 유지하세요. 이는 전체 large-v3 모델이 아니며, large-v3의 영어 번역 작업을 암묵적으로 이어받아서는 안 됩니다. 이러한 공개 가중치 모델의 정체성에 호스팅된 whisper-1 서비스의 업로드 한도, 응답 컨테이너나 실시간 스트리밍 보장이 포함되지는 않습니다. 문서화된 전사의 절충이 실제 자료와 원하는 처리 시간에 맞을 때 Turbo를 선택하세요.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "821cd41d1c1fd735381a11197191ea54038f1f1b4c0e1e0359c892a1dc4d5e4d",
    "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\">O</span><h2 id=\"sheet-title\">OpenAI: Whisper Large V3 Turbo</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"닫기\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/whisper-large-v3-turbo</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|openai%2Fwhisper-large-v3-turbo\">음성 인식</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\">Whisper large-v3-turbo는 large-v3에서 파생된 OpenAI의 더 빠른 공개 가중치 음성 전사 버전으로, 디코더 네 층과 8억900만 개의 파라미터를 갖춥니다. 다국어 음성을 텍스트로 변환하는 데 초점을 맞추며, 제조사의 공식 문서는 음성을 영어로 번역하는 작업이 Turbo의 학습 대상에서 제외되었다고 명시합니다.</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>Turbo라고도 불리는 Whisper large-v3-turbo는 Whisper large-v3에서 파생된 OpenAI의 최적화된 음성 전사 모델입니다. 디코더는 32층에서 네 층으로 줄었고, 인코더는 32층을 유지합니다. 공개된 모델의 파라미터는 약 8억900만 개입니다. 제조사의 목적은 정확도를 다소 양보하면서 음성 인식을 더 빠르게 하는 것이며, 다른 음성 생성 모드를 제공하는 것이 아닙니다. 녹음된 말이 입력이고 인식된 텍스트가 결과입니다.</p><p>출시 발표는 Turbo의 제작 과정을 별도로 증류된 Whisper 모델과 구분합니다. Turbo는 번역 데이터를 제외한 다국어 전사 데이터로 추가 두 에포크 동안 미세 조정되었습니다. 이 차이는 운용상 중요합니다. OpenAI 저장소는 Turbo가 영어가 아닌 음성을 영어로 번역하도록 학습되지 않았으며, 번역 작업을 요청해도 원래 언어로 반환할 수 있다고 설명합니다. 이 버전은 같은 언어의 전사에 사용하세요. 번역이 필요하다면 적합한 다른 모델이나 전사 후 별도 단계에서 처리해야 합니다.</p><p>원어 감지와 명시적인 언어 선택은 전사에 유용한 선택지입니다. 녹음 언어를 이미 알고 있다면 작업 지시에 명시하세요. 모르는 경우에는 문서화된 작업 흐름에서 감지할 수 있습니다. 편집상 정리를 요청하기 전에 이름, 수량과 실제 발화된 말을 보존하세요. 회의 기록, 인터뷰 전사나 강의 텍스트는 이후 별도 작업에서 검색하거나 주석을 달거나 요약할 수 있습니다. Turbo의 인식 작업을 음성 합성, 화자 모방 또는 녹음 속 사람들에 대한 의미적 판단과 혼동해서는 안 됩니다.</p><p>OpenAI의 오디오 로더는 입력 파일을 16 kHz 모노 샘플로 디코딩하며, 모델은 30초 음향 윈도와 128개의 멜 주파수 빈을 사용합니다. 더 긴 녹음에는 장시간 음성 추론이 필요합니다. 순차 처리는 윈도를 차례대로 진행합니다. 청크 방식은 겹치는 구간을 전사하고 경계를 이어 붙입니다. 모델 카드는 하나의 긴 파일에서 처리 완료까지의 시간이 최우선인 경우 후자가 유용하고, 순차 처리는 정확도를 중시하는 대안이라고 설명합니다. 윈도나 모델명만으로 호스팅 서비스의 업로드 파일 크기 상한이 고정되는 것은 아닙니다.</p><p>정확한 Turbo 설정에는 하나의 디코딩 시퀀스에 대해 디코더 위치가 448개로 명시되어 있습니다. 문서화된 추론 작업 흐름은 전사와 함께 구간 또는 단어의 시간 정보를 포함할 수 있습니다. 시간 정보는 필요한 위치로 이동하거나 이후 자막 형식을 정리하는 데 도움이 됩니다. 자막 파일 형식이나 신뢰할 수 있는 화자 라벨이 자동으로 추가되는 것은 아닙니다. 일반 전사와 시간 정보가 있는 구간 중 무엇이 필요한지 명시하고, 의견이 갈리는 구절을 확인할 수 있도록 원본 녹음을 보관하세요. 장시간 음성 처리와 최종 형식 정리는 체크포인트의 정체성과 별개입니다.</p><p>Turbo는 디코딩 작업량을 줄이지만, 실제 소요 시간은 하드웨어, 녹음 길이, 언어, 말하는 속도와 추론 방식에 따라 달라집니다. 제조사는 모든 언어에서 동작이 같기보다 태국어와 광둥어 등 일부 언어에서 품질 저하가 더 크다고 설명합니다. 속도를 중시하는 이 절충이 모든 자료에 적합하다고 판단하기 전에 의도한 언어의 대표 구간을 비교하세요. 아카이브 처리 작업에서는 깨끗한 첫 문장만이 아니라 어려운 어휘, 말 사이의 멈춤, 소음이나 겹치는 발화가 있는 구간을 검토 샘플에 포함하세요.</p><p>공개된 카드는 Whisper의 중요한 인식 한계를 설명합니다. 예측된 텍스트에 실제로 발화되지 않은 단어가 포함되거나 텍스트가 반복될 수 있습니다. 결과는 언어, 억양과 방언에 따라 다르며, 특히 학습에서 충분히 다루지 못한 경우에 차이가 나타납니다. 카드는 기본 모델의 화자 분리나 화자 분류가 신뢰할 만한 표준 능력이라고 입증하지 않습니다. 실용적인 검토는 원음에 대한 충실성에 초점을 맞춥니다. 중요한 이름과 숫자, 누락된 발화, 무음 중의 예상치 못한 텍스트와 반복 등이 대상입니다. 읽기 쉬운 전사도 녹음과 비교할 결과물이며, 정확한 인식의 보장은 아닙니다.</p><p>유용한 최종 결과물은 요청한 시간 정보와 원본 녹음에 대한 명확한 연결을 갖춘 원어 전사입니다. 변경을 추적할 수 있도록 인식 결과 버전과 편집된 출판용 버전을 구분하세요. 버전을 비교할 때는 large-v3-turbo라는 이름을 유지하세요. 이는 전체 large-v3 모델이 아니며, large-v3의 영어 번역 작업을 암묵적으로 이어받아서는 안 됩니다. 이러한 공개 가중치 모델의 정체성에 호스팅된 whisper-1 서비스의 업로드 한도, 응답 컨테이너나 실시간 스트리밍 보장이 포함되지는 않습니다. 문서화된 전사의 절충이 실제 자료와 원하는 처리 시간에 맞을 때 Turbo를 선택하세요.</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>openai/whisper-large-v3-turbo</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.00000666</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-2186-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2186-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-2186-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2186-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;openai/whisper-large-v3-turbo&#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=openai%2Fwhisper-large-v3-turbo&amp;route=Ultra&amp;caller=openai%2Fwhisper-large-v3-turbo&amp;fmt=transcriptions\"><code>openai/whisper-large-v3-turbo</code></a></span></p><h4>메서드 경로 별칭</h4><p class=\"note-s\">위에 표시된 메서드 경로를 사용하세요.</p><h4>관련 호출용 ID</h4><p class=\"note-s\"><a href=\"#m=openai%2Fwhisper-large-v3-turbo&amp;route=Ultra&amp;caller=openai%2Fwhisper-large-v3-turbo&amp;fmt=transcriptions\"><code>openai/whisper-large-v3-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/whisper-large-v3-turbo",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/whisper-large-v3-turbo",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fwhisper-large-v3-turbo",
      "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": [
                  "openai/whisper-large-v3-turbo"
                ],
                "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": [
                    "openai/whisper-large-v3-turbo"
                  ],
                  "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": "openai/whisper-large-v3-turbo"
              },
              "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.00000666",
                "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.00000666",
                "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': 'openai/whisper-large-v3-turbo', '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": 6.66e-06
          }
        },
        "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.00000666",
                "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.00000666",
                "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": "openai/whisper-large-v3-turbo",
        "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.00000666",
            "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.00000666",
            "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": "openai/whisper-large-v3-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "db33d983f6d109fb52d5c4d787b6179e403360e6c956fd3bb125ecf975298077",
    "input_html_sha256": "b7632b3cd74c91c1ff167d3184afb87c09ef19d1b75432e51bdbcb11173349e6",
    "private_audit_sha256": "f0591f492233a81880ea71a217f9fb1d7063bb52b6a0cdbf1a8dc476ad034a9a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ko/openai-whisper-large-v3-turbo/",
    "description": "Whisper large-v3-turbo는 large-v3에서 파생된 OpenAI의 더 빠른 공개 가중치 음성 전사 버전으로, 디코더 네 층과 8억900만 개의 파라미터를 갖춥니다. 다국어 음성을 텍스트로 변환하는 데 초점을 맞추며, 제조사의 공식 문서는 음성을 영어로 번역하는 작업이 Turbo의 학습 대상에서 제외되었다고 명시합니다.",
    "locale": "ko",
    "md_url": "https://ailoot.ai/models/ko/openai-whisper-large-v3-turbo/index.md",
    "title": "OpenAI: Whisper Large V3 Turbo — Ailoot",
    "url": "https://ailoot.ai/models/ko/openai-whisper-large-v3-turbo/"
  },
  "rawModel": {
    "about": "Turbo라고도 불리는 Whisper large-v3-turbo는 Whisper large-v3에서 파생된 OpenAI의 최적화된 음성 전사 모델입니다. 디코더는 32층에서 네 층으로 줄었고, 인코더는 32층을 유지합니다. 공개된 모델의 파라미터는 약 8억900만 개입니다. 제조사의 목적은 정확도를 다소 양보하면서 음성 인식을 더 빠르게 하는 것이며, 다른 음성 생성 모드를 제공하는 것이 아닙니다. 녹음된 말이 입력이고 인식된 텍스트가 결과입니다.\n\n출시 발표는 Turbo의 제작 과정을 별도로 증류된 Whisper 모델과 구분합니다. Turbo는 번역 데이터를 제외한 다국어 전사 데이터로 추가 두 에포크 동안 미세 조정되었습니다. 이 차이는 운용상 중요합니다. OpenAI 저장소는 Turbo가 영어가 아닌 음성을 영어로 번역하도록 학습되지 않았으며, 번역 작업을 요청해도 원래 언어로 반환할 수 있다고 설명합니다. 이 버전은 같은 언어의 전사에 사용하세요. 번역이 필요하다면 적합한 다른 모델이나 전사 후 별도 단계에서 처리해야 합니다.\n\n원어 감지와 명시적인 언어 선택은 전사에 유용한 선택지입니다. 녹음 언어를 이미 알고 있다면 작업 지시에 명시하세요. 모르는 경우에는 문서화된 작업 흐름에서 감지할 수 있습니다. 편집상 정리를 요청하기 전에 이름, 수량과 실제 발화된 말을 보존하세요. 회의 기록, 인터뷰 전사나 강의 텍스트는 이후 별도 작업에서 검색하거나 주석을 달거나 요약할 수 있습니다. Turbo의 인식 작업을 음성 합성, 화자 모방 또는 녹음 속 사람들에 대한 의미적 판단과 혼동해서는 안 됩니다.\n\nOpenAI의 오디오 로더는 입력 파일을 16 kHz 모노 샘플로 디코딩하며, 모델은 30초 음향 윈도와 128개의 멜 주파수 빈을 사용합니다. 더 긴 녹음에는 장시간 음성 추론이 필요합니다. 순차 처리는 윈도를 차례대로 진행합니다. 청크 방식은 겹치는 구간을 전사하고 경계를 이어 붙입니다. 모델 카드는 하나의 긴 파일에서 처리 완료까지의 시간이 최우선인 경우 후자가 유용하고, 순차 처리는 정확도를 중시하는 대안이라고 설명합니다. 윈도나 모델명만으로 호스팅 서비스의 업로드 파일 크기 상한이 고정되는 것은 아닙니다.\n\n정확한 Turbo 설정에는 하나의 디코딩 시퀀스에 대해 디코더 위치가 448개로 명시되어 있습니다. 문서화된 추론 작업 흐름은 전사와 함께 구간 또는 단어의 시간 정보를 포함할 수 있습니다. 시간 정보는 필요한 위치로 이동하거나 이후 자막 형식을 정리하는 데 도움이 됩니다. 자막 파일 형식이나 신뢰할 수 있는 화자 라벨이 자동으로 추가되는 것은 아닙니다. 일반 전사와 시간 정보가 있는 구간 중 무엇이 필요한지 명시하고, 의견이 갈리는 구절을 확인할 수 있도록 원본 녹음을 보관하세요. 장시간 음성 처리와 최종 형식 정리는 체크포인트의 정체성과 별개입니다.\n\nTurbo는 디코딩 작업량을 줄이지만, 실제 소요 시간은 하드웨어, 녹음 길이, 언어, 말하는 속도와 추론 방식에 따라 달라집니다. 제조사는 모든 언어에서 동작이 같기보다 태국어와 광둥어 등 일부 언어에서 품질 저하가 더 크다고 설명합니다. 속도를 중시하는 이 절충이 모든 자료에 적합하다고 판단하기 전에 의도한 언어의 대표 구간을 비교하세요. 아카이브 처리 작업에서는 깨끗한 첫 문장만이 아니라 어려운 어휘, 말 사이의 멈춤, 소음이나 겹치는 발화가 있는 구간을 검토 샘플에 포함하세요.\n\n공개된 카드는 Whisper의 중요한 인식 한계를 설명합니다. 예측된 텍스트에 실제로 발화되지 않은 단어가 포함되거나 텍스트가 반복될 수 있습니다. 결과는 언어, 억양과 방언에 따라 다르며, 특히 학습에서 충분히 다루지 못한 경우에 차이가 나타납니다. 카드는 기본 모델의 화자 분리나 화자 분류가 신뢰할 만한 표준 능력이라고 입증하지 않습니다. 실용적인 검토는 원음에 대한 충실성에 초점을 맞춥니다. 중요한 이름과 숫자, 누락된 발화, 무음 중의 예상치 못한 텍스트와 반복 등이 대상입니다. 읽기 쉬운 전사도 녹음과 비교할 결과물이며, 정확한 인식의 보장은 아닙니다.\n\n유용한 최종 결과물은 요청한 시간 정보와 원본 녹음에 대한 명확한 연결을 갖춘 원어 전사입니다. 변경을 추적할 수 있도록 인식 결과 버전과 편집된 출판용 버전을 구분하세요. 버전을 비교할 때는 large-v3-turbo라는 이름을 유지하세요. 이는 전체 large-v3 모델이 아니며, large-v3의 영어 번역 작업을 암묵적으로 이어받아서는 안 됩니다. 이러한 공개 가중치 모델의 정체성에 호스팅된 whisper-1 서비스의 업로드 한도, 응답 컨테이너나 실시간 스트리밍 보장이 포함되지는 않습니다. 문서화된 전사의 절충이 실제 자료와 원하는 처리 시간에 맞을 때 Turbo를 선택하세요.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00000666",
            "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.00000666",
            "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": "openai/whisper-large-v3-turbo",
    "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": [
                  "openai/whisper-large-v3-turbo"
                ],
                "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": [
                    "openai/whisper-large-v3-turbo"
                  ],
                  "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": "openai/whisper-large-v3-turbo"
              },
              "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.00000666",
                "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.00000666",
                "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': 'openai/whisper-large-v3-turbo', '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": 6.66e-06
          }
        },
        "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.00000666",
                "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.00000666",
                "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": "openai/whisper-large-v3-turbo",
        "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.00000666",
            "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.00000666",
            "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": "openai/whisper-large-v3-turbo",
        "request_model_id": "openai/whisper-large-v3-turbo",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: Whisper Large V3 Turbo",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Whisper large-v3-turbo는 large-v3에서 파생된 OpenAI의 더 빠른 공개 가중치 음성 전사 버전으로, 디코더 네 층과 8억900만 개의 파라미터를 갖춥니다. 다국어 음성을 텍스트로 변환하는 데 초점을 맞추며, 제조사의 공식 문서는 음성을 영어로 번역하는 작업이 Turbo의 학습 대상에서 제외되었다고 명시합니다."
  },
  "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": "Whisper large-v3-turbo는 large-v3에서 파생된 OpenAI의 더 빠른 공개 가중치 음성 전사 버전으로, 디코더 네 층과 8억900만 개의 파라미터를 갖춥니다. 다국어 음성을 텍스트로 변환하는 데 초점을 맞추며, 제조사의 공식 문서는 음성을 영어로 번역하는 작업이 Turbo의 학습 대상에서 제외되었다고 명시합니다.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "abdc8d2a3ffe9ea17f9b721fed4801becb61a1e3ffa2d9332ef6efe5a56f9da6",
    "renderer_sha256": "6825a317438b70ab0939441dcebefece462384e77f7e96cce899605c4b208caa"
  },
  "sourceRevision": "52a6758fc5029ed0a864fa3f69804e2803982844fca4798a2ba3eac0e5b141c2"
}
