KO ▾
API 키 받기

Whisper API 서버: 설정 옵션 및 텍스트 단계

Whisper API 서버는 오디오를 받아 전사본을 반환하는 HTTP 서비스입니다. 음성만 처리하므로, 이후 텍스트 작업은 별도 모델이 필요합니다.

업데이트

서버에서 깨끗한 텍스트 줄들로 쌓이는 오디오의 흐름을 등각 투영으로 나타낸 일러스트레이션

주요 포인트

  • Whisper은 음성-텍스트 모델이며, 서버는 이를 HTTP 엔드포인트 뒤에 감쌉니다.
  • 호스팅 엔드포인트를 임대하거나, 자체 호스팅 래퍼를 사용하거나, 로컬 바이너리를 실행할 수 있습니다.
  • 이 API는 텍스트 전용입니다. 오디오 단계가 아닌, 전사 이후 단계를 수행합니다.
  • 두 단계는 OpenAI SDK를 두 번 사용하여 Python 코드 몇 줄로 연결합니다.

짧은 답변

Whisper은 OpenAI가 공개한 오픈소스 음성 인식 모델입니다. 자체적으로는 모델 파일과 추론 코드로 구성됩니다. 서버는 이 앞에 HTTP 인터페이스를 배치하여 앱이 Python 함수를 직접 호출하는 대신 오디오 파일을 보내고 텍스트를 받을 수 있게 합니다.

대부분의 서버는 OpenAI 전사 엔드포인트의 형태를 복사합니다. POST /v1/audio/transcriptions은 오디오 파일과 모델 이름을 받는 multipart 업로드를 처리합니다. 바로 이 형태 때문에 동일한 클라이언트 라이브러리로 호스팅 서비스, 로컬 머신의 컨테이너, 또는 타인이 작성한 작은 래퍼에 접근할 수 있습니다.

  • 입력: 오디오 파일로, 보통 mp3, wav, m4a 또는 유사한 형식입니다.
  • 출력: 일반 텍스트 또는 세그먼트 및 타임스탬프가 포함된 JSON(서버에 따라 다름).
  • 포함되지 않음: 요약, 다듬은 문체로의 번역, 액션 아이템 추출. 이러한 작업에는 언어 모델이 필요합니다.

Whisper 서버를 얻는 세 가지 방법

1. 호스팅 엔드포인트

OpenAI는 호스팅 전사 엔드포인트를 제공하며, 다른 제공업체도 Whisper 기반 전사 서비스를 판매합니다. 사용량 기반 과금이 적용되며, 하드웨어를 관리하지 않아도 됩니다. 오디오를 타사 인프라로 전송합니다. 제공업체 간 과금 모델이 다르며, 음성 서비스는 일반적으로 오디오 지속 시간 기준으로 과금하므로, 대량 사용 전에 현재 가격을 확인하세요.

2. 자체 호스팅 래퍼

여러 오픈소스 프로젝트는 Whisper 또는 그 재구현체를 OpenAI 전사 경로와 유사한 웹 서버로 감쌉니다. GPU가 있는 머신에서 Docker로 실행하거나, 처리 속도가 느려도 괜찮다면 CPU에서 실행할 수 있습니다. 오디오의 이동 경로를 제어할 수 있습니다. 대신 모델 다운로드, 업데이트, 큐 관리 및 재시작을 직접 책임져야 합니다.

3. 로컬 바이너리

whisper.cpp 프로젝트는 모델의 C 및 C++ 포트이며, 저장소에는 예제 HTTP 서버가 포함되어 있습니다. 일반 노트북과 소형 서버에서 실행할 수 있어, 프로토타입이나 하루에 몇 번 녹음하는 단일 사용자에게 적합합니다. 수백 시간의 배치 작업에는 GPU 지원 서비스가 더 실용적입니다.

오디오의 이동 경로, 월간 처리 시간, 서비스 유지 담당자를 기준으로 선택하세요. 아래 설명된 텍스트 처리 과정은 세 방법 모두에서 동일하게 작동합니다.

전사 후 텍스트 LLM API의 위치

원시 Whisper 전사본은 텍스트의 벽입니다. 단락 구분이 적고, 별도 음성 화자 분할(diarization)을 추가하지 않으면 화자 이름이 누락되며, 불필요한 말버릇이 그대로 남습니다. Whisper는 제품명, 전문 용어 및 고유명사에서 오류를 범하기도 합니다. 거의 모든 실제 프로젝트는 텍스트를 처리하는 두 번째 단계를 추가합니다.

일반적인 두 번째 단계 작업:

  • 구두점 수정, 단락 나누기, 시작 오류 제거.
  • 전화 통화나 강의를 몇 가지 항목으로 요약.
  • 결정, 이름, 날짜 등 구조화된 데이터를 JSON으로 추출.
  • 구어체 자료를 기사, 대본 또는 쇼 노트로 재작성.
  • 정리된 텍스트 번역 또는 현지화.

이 서비스가 바로 그 지점에 적합합니다. 이 서비스는 하나의 모델 uncensored, 100,000 토큰 컨텍스트 창 및 스트리밍을 지원하는 OpenAI 호환 텍스트 API입니다. 2시간 분량 인터뷰 전사본은 보통 단일 요청에 들어갈 수 있어, 작은 컨텍스트 창이 요구하는 청킹 로직을 생략할 수 있습니다. 더 긴 자료의 경우 빠른 시작 문서를 참조하세요.

이 모델은 합법적인 성인 사용에 대해 콘텐츠 거부 없이 답변하도록 조정되었습니다. 전사 파이프라인에서 이는 중요합니다. 소스 오디오는 예측 불가능하며, 인터뷰, 팟캐스트, 소설 낭독, 고객센터 통화에는 강한 표현과 어려운 주제가 포함됩니다. 화자가 욕을 해서 전사본 정리를 거부하는 모델은 유료 전사 작업을 낭비하게 만듭니다. 유일한 제한사항은 미성년자 관련 성 콘텐츠는 허용되지 않는다는 것입니다.

작동하는 두 단계 파이프라인

OpenAI Python SDK를 사용하면 서로 다른 Base URL을 가진 두 클라이언트를 생성할 수 있습니다. 하나는 Whisper 서버를 가리키고, 다른 하나는 이 API를 가리킵니다. 자체 전사 서비스용 환경 변수를 설정하세요. 두 번째 클라이언트는 이 사이트의 Base URL을 사용합니다.

import os
from openai import OpenAI

# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])

# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])

with open("call.mp3", "rb") as f:
    transcript = stt.audio.transcriptions.create(
        model=os.environ["STT_MODEL"],  # the model name your server expects
        file=f,
    )

resp = llm.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
        {"role": "user", "content": transcript.text},
    ],
    temperature=0.2,
)
print(resp.choices[0].message.content)

두 가지 세부 사항은 잘못 설정하기 쉽습니다. 첫째, 전사 모델 이름은 서버가 기대하는 이름이며, 따라서 여기서는 환경 변수에서 가져옵니다. 둘째, 텍스트 API용 키는 음성 서비스 키와 별개이며, 각 키는 자신의 호스트만 인증합니다.

셸을 선호한다면, 텍스트 단계는 일반 채팅 완료 요청입니다:

curl https://api.whisperapis.com/v1/chat/completions \
  -H "Authorization: Bearer $LLM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
    ]
  }'

인증은 Authorization 헤더의 Bearer 키입니다. 엔드포인트는 POST /v1/chat/completions 및 GET /v1/models입니다. API 키 페이지에서 키를 얻을 수 있습니다. 신규 계정은 카드 없이 7일 유효한 클릭 한 번으로 $0.50 무료 체험 크레딜을 받을 수 있습니다.

실제 환경에서 문제가 되는 사항

대용량 오디오 파일

많은 Whisper 서버는 업로드 크기를 제한하며, 긴 녹음은 요청 중간에 시간 초과될 수 있습니다. ffmpeg과 같은 도구로 오디오를 10~30분 단위로 분할한 후 각 부분을 전사하고 텍스트를 결합하세요. 텍스트 API는 최대 100,000 토큰을 받으므로, 조각을 연결하여 단일 프롬프트로 보낼 수 있습니다. 이 API의 요청 본문 제한은 8 MB로, 전사본에는 훨씬 많은 용량입니다.

속도 제한 및 동시성 제한

전체 키는 동시 요청 8개와 분당 300개 요청을 허용하며, 체험 키는 각각 2개와 60개를 허용합니다. 여러 워커로 큐를 실행하는 경우 키의 동시 요청 수로 제한해야 합니다. 이를 초과하면 HTTP 429 오류가 발생하며, 분당 요청 수의 경우 rate_limited, 동시 요청의 경우 concurrency 코드가 반환됩니다. 스트리밍 요청은 스트리밍이 완료될 때까지 슬롯을 유지하므로, 응답이 멈춘 클라이언트가 예상보다 긴 시간 슬롯을 점유할 수 있습니다. 백오프 후 재시도하고, 응답에 Retry-After: 5 헤더가 포함된 경우 해당 시간만큼 대기합니다.

LLM이 확인할 수 없는 전사 오류

Whisper이 잘못된 단어를 들었으면, 텍스트 모델은 잘못된 단어만 봅니다. 실수를 자연스럽게 처리하여 의도적인 것처럼 보이게 할 수도 있습니다. 이름과 용어에 대한 용어집을 시스템 프롬프트에 넣고, 추측 대신 불확실한 구간에 표시하도록 모델에 지시하세요. 중요한 자료의 경우 원본 전사본을 정리된 텍스트 옆에 보관하세요.

환각적 말버릇

Whisper는 무음이나 음악 구간에서 위조된 텍스트를 생성할 수 있습니다. 전송 전 무음 부분을 제거하고, 두 번째 단계에서 문맥상 어색한 문장을 표시하도록 요청하세요. temperature을 0.2와 같이 낮게 설정하면 원본에 가까운 정제가 가능합니다.

이 API가 수행하지 않는 작업

오디오를 전사하지 않습니다. 오디오 입력, 음성 출력, 이미지 또는 비디오 생성, 임베딩, 파인튜닝이 없습니다. 이 모델은 독립적인 제공자가 운영하는 채팅 엔드포인트 뒤에 있는 호스팅 텍스트 모델이며, OpenAI 또는 다른 모델 벤더의 공식 API가 아닙니다. 프로젝트에 두 단계가 모두 필요한 경우, 첫 번째 단계에는 음성 서버가 필요하고 두 번째 단계에는 이 서비스가 필요합니다.

프롬프트는 학습에 사용되지 않습니다. 이는 음성 제공업체가 오디오를 처리하는 방식과 별개이므로, 해당 제공업체의 약관을 별도로 읽으세요.

비용 계획의 경우, 텍스트 측의 과금은 선불 크레딜에서 소모되며, 입력 토큰은 백만 토큰당 $0.15, 출력 토큰은 백만 토큰당 $0.50입니다. 크레딜은 만료되지 않습니다. 가격 책정 페이지에 충전 금액과 보너스를 확인하세요. 실패하거나 거부된 요청은 과금되지 않으므로, 재시도 루프가 비용을 발생시키지 않습니다.

현명한 시작 방법

  1. Whisper 호환 서버(호스팅 또는 로컬)를 실행하고 1분 분량 파일에 텍스트가 반환되는지 확인합니다.
  2. 계정을 생성하고 체험 크레딜을 받으며, 위의 curl 명령어를 짧은 전사 텍스트로 실행하십시오.
  3. Python 스크립트로 두 클라이언트를 연결하고, 원하는 정리 스타일을 위한 시스템 프롬프트를 사용합니다.
  4. 단일 파일 흐름이 작동한 후에만 큐를 추가하고, 키의 동시성에 맞춰 크기를 설정합니다.

대부분의 작업은 프롬프트와 오디오 처리에 집중되며, 연결 코드에는 집중되지 않습니다. 잘 알고 있는 녹음 파일 하나로 시작하여 들은 내용과 출력을 비교한 후, 확장하기 전에 지침을 조정하십시오.

질문과 답변

Whisper API 서버가 OpenAI API와 동일한가요?

아니요. Whisper은 모델이며, 서버는 이를 HTTP로 노출하는 프로그램입니다. OpenAI가 호스팅 버전을 하나 운영하며, 많은 사람들이 동일한 전사 경로를 복사하는 오픈소스 도구를 사용하여 자체적으로 운영합니다.

이 API로 오디오 파일을 음성 인식할 수 있나요?

아닙니다. 텍스트만 입력받습니다. 오디오 단계에는 음성 서비스나 자체 Whisper 서버를 사용하고, 그 결과를 이 API로 보내야 합니다.

텍스트 단계에서 어떤 모델 이름을 사용해야 하나요?

모델 ID로 uncensored를 사용하고, Base URL은 https://api.whisperapis.com/v1이며, API 키를 Bearer 토큰으로 설정하세요.

전사 텍스트를 얼마나 길게 보낼 수 있나요?

컨텍스트 창은 프롬프트와 응답을 합쳐 100,000 토큰입니다. 이는 여러 시간 분량의 녹음을 하나의 요청으로 처리하기에 충분합니다.

시도해 보려면 카드가 필요한가요?

아닙니다. 신규 사용자는 가입 후 API 키 페이지에서 한 번의 클릭으로 $0.50 체험 크레딧을 청구할 수 있으며, 카드 등록이 필요하지 않습니다.

키는 양식 하나만 작성하면 받을 수 있습니다

계정을 생성하고 키를 복사한 후 기본 URL을 변경하세요. 설정은 이것으로 끝입니다.

API 키 받기