Fish Audio: Transcribe 1
Transcribe 1은 자동 언어 감지와 선택적인 단어 단위 타임스탬프를 사용해 짧은 녹음을 텍스트로 변환합니다. 전사문을 음성 메모, 검색 가능한 클립, 자막 준비에 활용하되, 시간 정보가 있는 구간과 읽기 쉬운 전체 텍스트를 구분해 보관하세요.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Transcribe 1은 짧은 녹음을 위한 Fish Audio의 범용 음성 인식 모델입니다. 오디오 파일을 받아 인식한 말을 텍스트로 반환하며, 녹음 길이, 선택적인 시간 구간, 확인 가능한 경우 언어 정보도 제공합니다. 짧은 음성 메모, 말로 한 지시, 녹음 일부, 읽을 수 있는 텍스트 표현이 필요한 오디오 클립에 유용합니다.
음성 메모 작업의 한 예는 녹음을 전체 전사문 및 원본 클립 식별자와 함께 보관하는 것입니다. 이후 애플리케이션 단계에서 음성 원본을 유지하면서 텍스트를 검색하거나 메모를 정리하거나 요약할 수 있습니다. 명령이라면 전사문이 인식한 단어를 애플리케이션에 제공하며, 실제 동작은 별도의 해석 및 실행 단계입니다. 인터뷰 일부라면 전체 오디오에서 클립의 위치를 기록해 인용문을 올바른 위치에서 확인할 수 있게 하세요.
제조사는 WAV, MP3, M4A/MP4를 포함한 AAC, FLAC, Opus 또는 Vorbis가 담긴 Ogg를 받습니다. 이 모델에 사용할 WebM 브라우저 녹음은 Ogg/Opus, MP3, WAV로 변환해야 합니다. Pro는 추가 컨테이너의 기본 지원을 문서화하고 있습니다. 요청당 오디오 파일 하나를 제공하세요. 기본 모델의 문서상 요청 한도는 최대 50 MiB이며, MP3와 Opus 파일은 25 MiB 미만으로 유지해야 합니다. 파일 크기와 녹음 길이는 별개의 사항입니다. 압축 파일이 업로드 한도에 맞더라도 처리 시간이 지나치게 길 수 있습니다.
Transcribe 1은 짧은 녹음을 위해 설계되었습니다. 제조사는 몇 분을 넘는 오디오에는 Pro를 권장하며, 기본 모델의 긴 요청은 처리 시간 한도를 초과하면 실패할 수 있습니다. 긴 원본을 짧은 클립으로 나누어 전사할 때는 각 클립의 시작 오프셋을 보존하고, 결과를 합치기 전에 반환된 전사문이 클립 전체를 포함하는지 확인하세요. 구간별 로컬 시간에 원본 오프셋을 더해 전체 녹음과 탐색 위치가 연결되도록 하세요. 기본 모델의 안내를 Pro의 별도 60분 한도로 해석해서는 안 됩니다.
제조사 응답에는 text, duration, segments가 포함됩니다. 길이는 초 단위로 표현되며, 읽기 쉬운 전체 전사문을 클립의 주된 문장 기록으로 유지해야 합니다. 타임스탬프는 선택 사항입니다. 제조사 API에서 ignore_timestamps의 기본값은 true이며, false로 설정하면 텍스트와 초 단위 시작·종료 시간을 담은 단어 단위 구간을 요청합니다. 정렬을 요청하면 처리 시간이 늘어납니다. 빈 segments 배열은 시간 정보 생략, 음성 없음, 일시적으로 사용할 수 없는 정렬을 뜻할 수 있으므로, 전체 전사문도 비었다고 자동으로 판단해서는 안 됩니다.
구간은 보통 단어 단위이며, 중국어와 일본어에서는 한 글자 또는 몇 글자일 수 있습니다. 구간 텍스트는 문장부호를 생략하고 전체 전사문과 다르게 값을 정규화할 수 있어, 읽기 쉬운 응답을 한 글자씩 그대로 복사한 것이 아닙니다. 한 구간의 시작과 종료 시간이 같을 수도 있습니다. 녹음 위치를 찾거나 시간에 맞춘 표시를 준비할 때는 구간을 사용하고, 문구와 문장부호가 중요할 때는 전체 텍스트를 사용하세요. 결과물에서 두 표현을 구분해 유지하세요.
선택적인 언어 힌트 제공 여부와 관계없이 언어는 자동으로 감지됩니다. 제조사는 힌트에 소문자 ISO 639-1 코드를 사용하도록 명시하며, 알 수 있는 경우 애플리케이션 로직용 언어 코드와 표시용 언어 이름을 반환합니다. 언어가 바뀌는 녹음에서도 응답은 모든 언어가 아니라 하나의 언어를 보고합니다. 전사 요청을 번역 작업으로 여기지 말고 원문 표현과 사용 가능한 언어 메타데이터를 결과와 함께 보관하세요.
자막 작업에서는 한 번에 한 단어씩 표시하기보다 연속된 시간 구간을 읽기 쉬운 자막 단위로 묶으세요. 유용한 결과물은 원본 클립과 연결된 SRT 또는 WebVTT 파일이며, 쉼에 맞는 구간 경계와 화면에서 읽기 적당한 분량을 갖춥니다. 누락된 시간 정보를 확인하고 각 자막의 종료가 시작보다 뒤인지 점검하세요. 자막 묶기와 파일 형식 지정은 반환된 정렬을 바탕으로 하는 애플리케이션 단계이며, 표시 방식은 플레이어와 시청자에 맞아야 합니다.
Transcribe 1에 문서화된 제어 항목은 오디오, 언어 힌트, 타임스탬프 선택입니다. Pro의 화자 표식, 구조화된 화자별 발화, 감정 이벤트 제어, 화자 수 힌트는 별도 기능이며 이 기본 모델의 문서상 응답 계약에 포함되지 않습니다. 처리 전에 필요한 결과물을 정하세요. 메모에는 읽기 쉬운 일반 텍스트, 재생 탐색과 자막에는 정렬 정보가 함께 있는 텍스트가 필요합니다. 클립 식별자, 전사문, 사용 가능한 시간 정보를 보존하면 다음 애플리케이션 단계에서 결과를 활용할 수 있습니다.
Ailoot Ultra · 음성 전사 POST /v1/audio/transcriptions fish-audio/transcribe-1
fish-audio/transcribe-1시작하기
Transcribe 1은 자동 언어 감지와 선택적인 단어 단위 타임스탬프를 사용해 짧은 녹음을 텍스트로 변환합니다. 전사문을 음성 메모, 검색 가능한 클립, 자막 준비에 활용하되, 시간 정보가 있는 구간과 읽기 쉬운 전체 텍스트를 구분해 보관하세요.
- 허용 입력
- 오디오
- 결과
- 텍스트
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 음성 전사 POST /v1/audio/transcriptions
- 입력
audio- 출력
text
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 fish-audio/transcribe-1 | 기본값— |
필드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.0002 입력 오디오 초당 |
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': 'fish-audio/transcribe-1', '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 fish-audio/transcribe-1
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · Fish Audio: Transcribe 1
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:audio→text- 요청은 어떤 필드를 사용하나요?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:model,input_audio