OpenAI: GPT Transcribe
GPT Transcribe는 녹음된 음성을 원래 언어의 텍스트로 변환하며, 맥락을 제공하는 프롬프트, 실제 단어나 구를 지정하는 키워드 힌트, 여러 언어 힌트를 사용할 수 있습니다. OpenAI는 완성된 파일의 전사, 파일 결과 스트리밍, Realtime에서 커밋한 오디오 턴의 전사를 문서화합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
GPT Transcribe는 완성된 오디오 파일, 스트리밍되는 파일 전사 결과, Realtime 세션에서 커밋한 오디오 턴을 위한 OpenAI의 음성 인식 모델입니다. 선택적인 텍스트 맥락과 함께 오디오를 입력받아 인식한 텍스트를 반환합니다. 제조사는 전문 용어, 다국어 녹음, 발화 중 언어 전환을 포함하여 녹음된 음성을 원래 언어로 정확하게 전사하는 용도로 소개합니다. 유용한 출력은 녹음과의 연결을 유지하는 전사문이며, 모델이 신뢰할 만한 예측을 할 수 있는 경우 감지한 언어의 메타데이터가 포함됩니다.
완성된 녹음 준비하기
OpenAI의 파일 전사 흐름은 최대 25 MB의 업로드를 받습니다. 현재 엔드포인트 참조 문서는 FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, WebM 입력 형식을 명시하며, 적절한 파일명 확장자와 콘텐츠 유형을 포함해 형식을 식별할 수 있는 충분한 파일 메타데이터를 권장합니다. 더 큰 녹음은 압축하거나 25 MB 이하의 파일로 나누는 것이 가이드의 권장 사항입니다. 주변 발화를 제거하면 인식 정확도가 낮아질 수 있으므로 문장 중간을 자르지 마세요. 조각의 순서를 유지하고 원래 녹음에서의 위치를 보존하세요.
회의, 인터뷰, 녹음된 발표에서는 실제 오디오를 제공하고 주제와 발화될 가능성이 있는 용어를 지정하세요. 유용한 결과는 논의에서 추론한 요약이 아니라 실제로 인식한 표현입니다. 반환된 텍스트와 함께 녹음 식별자를 보존하여 이름, 숫자, 불확실한 구절을 검토하는 사람이 올바른 원자료로 돌아갈 수 있게 하세요. 전사문은 이후 별도의 요약, 번역, 편집 작업을 위한 자료가 될 수 있습니다.
맥락, 키워드 힌트, 예상 언어
제조사는 세 가지 안내를 구분합니다. 프롬프트는 녹음의 주제나 상황에 대한 자유 형식의 맥락을 제공합니다. 키워드는 발화에서 예상하는 실제 단어나 구를 지정합니다. languages 목록은 예상하는 발화 언어를 나타냅니다. 두 언어를 사용하는 제품 논의에서는 프롬프트에 상황을 설명하고, 관련 제품명을 키워드로 나열하며, 예상 언어를 제공하세요. 이는 인식 힌트이며, 아무도 말하지 않은 어휘를 삽입하라는 지시가 아닙니다.
GPT Transcribe는 이전의 단수형 language 필드 대신 복수형 languages 필드를 사용합니다. OpenAI는 두 필드를 함께 보내지 말라고 명시합니다. 가이드는 지원되는 ISO 639-1 코드, 일부 ISO 639-3 코드, 중국어 지역 로케일 코드를 허용하며, 지원하지 않거나 형식이 잘못된 값은 거부합니다. 각 키워드는 한 줄이어야 하며 꺾쇠괄호, 캐리지 리턴, 줄바꿈을 포함해서는 안 됩니다. 잘못된 키워드나 너무 긴 프롬프트로 요청 전체가 거부될 수 있습니다. 관련 맥락만 제공하고, 힌트 목록을 전사문으로 취급하지 말고 힌트로 지정한 이름이 실제 오디오에 나오는지 확인하세요.
JSON 출력과 감지 언어 예측
문서화된 파일 결과는 전사문과 감지한 언어를 포함하는 JSON입니다. 이러한 언어 예측은 모델의 출력이며, 제공된 언어 힌트를 복사한 것이 아닙니다. 모델이 신뢰할 만한 예측을 할 수 없으면 빈 언어 목록도 유효한 결과입니다. 이는 녹음이 무음이었다거나 전사가 실패했다는 근거가 아닙니다. 이후 처리에서 각각의 의미에 맞게 사용할 수 있도록 인식된 텍스트와 언어 메타데이터를 분리해 보존하세요.
파일 전사 결과 스트리밍하기
완성된 파일을 처리하는 동안 전사 텍스트를 점진적으로 출력할 수 있습니다. OpenAI는 부분 텍스트를 위한 transcript.text.delta 이벤트와 파일 전체 전사문을 위한 transcript.text.done 이벤트를 문서화합니다. 최종 이벤트에는 감지한 언어도 포함됩니다. 이는 이미 제공된 녹음의 출력을 스트리밍하는 방식입니다. 긴 업로드의 진행 상황을 표시하는 데 유용하며, 최종 이벤트는 완료된 결과로 보존할 텍스트를 확정합니다.
Realtime 세션에서 커밋한 턴
GPT Transcribe에는 WebSocket을 사용하는 전용 Realtime 흐름도 있습니다. 입력 버퍼에 오디오를 추가한 뒤 애플리케이션이 오디오 턴을 명시적으로 커밋합니다. 커밋한 청크의 전사가 시작되며, 완료 이벤트 전에 델타가 나올 수 있고 감지한 언어 정보도 포함됩니다. 이 제조사 세션 흐름에서 모델은 앞서 전사한 턴을 자동으로 맥락으로 사용합니다. 이는 마이크 오디오가 도착할 때마다 실시간 자막 텍스트를 계속 내보내는 흐름과는 다릅니다. OpenAI는 그러한 연속 흐름에 GPT Live Transcribe라는 이름을 사용합니다.
여러 턴에서는 해당 전사문과 함께 입력 항목 식별자를 보존하세요. OpenAI는 서로 다른 턴의 완료 이벤트가 발화 순서대로 도착하지 않을 수 있다고 경고합니다. 따라서 완료 시각만으로 대화를 정렬하지 말고 각 최종 결과를 커밋한 입력과 연결하세요. 유용한 산출물은 올바른 최종 항목을 모아 순서대로 구성한 전사문이며, 중간 텍스트는 별도로 완료된 발화가 아닌 진행 상황으로 취급해야 합니다.
특수 출력과 실질적인 한계
이 사양은 자막, 타임스탬프, 번역, 화자 라벨에 대한 보편적인 계약을 제공하지 않습니다. OpenAI의 마이그레이션 가이드는 이러한 특수 기능을 구분합니다. 모델 고유의 자막 형식과 단어별 시간 정보에는 호환되는 모델과 형식이 필요하며, 화자 라벨에는 GPT-4o Transcribe Diarize를 사용합니다. GPT Transcribe의 파일 결과는 JSON이며 SRT, VTT, 상세 타임스탬프 응답을 그대로 대체하는 형식이 아닙니다. 정확한 모델 카드는 수치로 된 컨텍스트나 최대 출력 한도를 공개하지 않으므로, 오디오 전사에 채팅 모델의 토큰 창을 가정해서는 안 됩니다.
어려운 어휘, 숫자, 억양, 배경 소음, 언어 전환을 녹음에 대조해 검토하세요. 관련 힌트가 말하지 않은 용어를 삽입하지 않으면서 인식을 개선했는지, 최종 전사문이 오디오 끝까지 포함하는지 확인하세요. 다국어 결과에서는 번역본을 준비하기 전에 실제 발화 표현을 보존하세요. 이러한 검증은 맥락 힌트, 감지한 언어, 인식한 발화를 명확히 구분하면서 전사문을 원자료로 활용할 수 있게 합니다.
Ailoot Ultra · 음성 전사 POST /v1/audio/transcriptions openai/gpt-transcribe
openai/gpt-transcribe시작하기
GPT Transcribe는 녹음된 음성을 원래 언어의 텍스트로 변환하며, 맥락을 제공하는 프롬프트, 실제 단어나 구를 지정하는 키워드 힌트, 여러 언어 힌트를 사용할 수 있습니다. OpenAI는 완성된 파일의 전사, 파일 결과 스트리밍, Realtime에서 커밋한 오디오 턴의 전사를 문서화합니다.
- 허용 입력
- 오디오
- 결과
- 텍스트
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 음성 전사 POST /v1/audio/transcriptions
- 입력
audio- 출력
text
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 openai/gpt-transcribe | 기본값— |
필드input_audio | 유형object | 요건필수 | 값과 한도 | 기본값— |
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, input_audio |
매개변수material_types | 명세audio |
매개변수material_conditions | 명세이 예제는 비어 있지 않은 실제 PCM WAV 파일을 읽고, 파일의 전체 바이트를 base64로 인코딩한 다음 input_audio.format을 wav로 전송합니다. |
수명 주기: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 기존 소유 미디어 기록의 정확한 task_id
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
요금
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
Ailoot 요금
설정별 가격
각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.
| 설정 | 요금표 | 과금 단위 | 요금 |
|---|---|---|---|
| 설정기본 토큰 요금 | 요금표기본 요금 | 과금 단위— | 요금 입력 · 입력 토큰 — / 1K 토큰 출력 · 출력 토큰 — / 1K 토큰 입력 · 캐시 읽기 — / 1K 토큰 입력 · 캐시 쓰기 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 — / 1K 토큰 |
| 설정입력 오디오(초) | 요금표— | 과금 단위입력 오디오 초당 | 요금 입력 · 입력 오디오(초) $0.00015 입력 오디오 초당 |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 음성 전사
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}"
export AILOOT_AUDIO_FILE
python3 - <<'PY_REQUEST'
import base64, io, json, os, wave
from pathlib import Path
audio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()
if not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):
raise SystemExit('Supply your actual PCM WAV audio file')
with wave.open(io.BytesIO(audio), 'rb') as recording:
if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:
raise SystemExit('Supply a nonempty PCM WAV recording')
request = {'model': 'openai/gpt-transcribe', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}
Path('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o response.bin
# Retain the complete original response, headers and actual X-Client-Request-ID.
# Read existing owned records for recovery; do not resubmit an uncertain operation.
결과 수신 및 저장
Ailoot Ultra · 음성 전사
원본 응답 본문 전체, 상태 및 전달된 헤더입니다. 이 핸들러는 공통 JSON 구조, 텍스트 필드 또는 작업 바깥 구조를 추가하지 않습니다.
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
완료된 결과 모두 보관
반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.
전체 응답과 헤더, 실제로 생성된 모든 출력, 최초로 반환된 식별자와 모든 사용량 필드를 보관하세요. 생성 요청을 다시 제출하지 말고 최초 작업을 복구하세요.
원래 응답을 확인해야 할 경우
실제 X-Client-Request-ID와 응답 전체를 보존하세요. 원래 소유 자산과 해당 자산의 정확한 서명된 콘텐츠 URL을 조회하세요. 생성 여부가 불확실한 요청을 절대로 다시 제출하지 마세요.
응답 필드
| 필드 | 유형 |
|---|---|
필드text (when present) | 유형 |
필드usage (when present) | 유형 |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건JSON 본문 또는 명시적인 표준 모델 ID가 유효하지 않습니다. | 다음 단계응답을 보존하고 표시된 요청 필드를 수정하세요. |
응답401 · authentication_error | 조건Ailoot API 키가 유효하지 않습니다. | 다음 단계사용 권한이 있는 Ailoot API 키를 사용하세요. |
응답403 · permission_error | 조건이 키 그룹은 해당 메서드를 허용하지 않습니다. | 다음 단계반환된 오류 세부 정보를 보존하세요. |
응답404 · not_found_error | 조건선택한 메서드에는 허용된 경로가 없습니다. | 다음 단계반환된 오류 세부 정보를 보존하세요. |
응답422 · price_unavailable | 조건승인된 요금제에서 필요한 입력 수량 또는 상한을 확보할 수 없습니다. | 다음 단계응답을 보존하세요. 승인된 요금제에서 요구하는 입력 표현 형식을 사용하세요. |
응답503 · | 조건필요한 저장소, 경로, 메서드 요금 또는 예약을 사용할 수 없습니다. | 다음 단계원본 응답 전체를 보존하세요. 예약 여부가 불확실하다고 해서 다시 제출할 수 있는 것은 아닙니다. |
응답502 · server_error | 조건원래 결과, 사용량 또는 정산을 확인해야 합니다. | 다음 단계실제 요청 ID와 원본 응답을 보존하세요. 기존 소유 기록을 조회하고 생성을 다시 제출하지 마세요. |
별칭
모델 별칭
Ailoot Ultra openai/gpt-transcribe
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · OpenAI: GPT Transcribe
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/audio/transcriptions·openai/gpt-transcribe:audio→text- 요청은 어떤 필드를 사용하나요?
POST /v1/audio/transcriptions·openai/gpt-transcribe:model,input_audio