RemoteWhisperTranscriber

RemoteWhisperTranscriber

RemoteWhisperTranscriber를 사용해 OpenAI의 Whisper 모델로 오디오 파일을 텍스트로 변환(전사)할 수 있어요.

출처: 문서

본문

항목 내용
파이프라인에서 가장 흔한 위치 인덱싱 파이프라인의 첫 번째 컴포넌트
필수 init 변수 api_key: OpenAI API 키. OPENAI_API_KEY 환경 변수로 설정 가능
필수 run 변수 sources: 전사하려는 경로 또는 바이너리 스트림 목록
출력 변수 documents: 문서 목록
API reference Whisper
GitHub 링크 whisper 통합
패키지 이름 whisper-haystack

개요

RemoteWhisperTranscriber는 whisper-haystack 통합 패키지의 일부예요. 설치하려면:

pip install whisper-haystack

RemoteWhisperTranscriber는 OpenAI 호환 클라이언트와 함께 동작하며 제공자로 OpenAI에만 국한되지 않아요. 예를 들어 Groq도 드롭인 대체로 사용할 수 있어요. API 키를 설정하는 방법은 두 가지예요:

  • api_key 초기화 파라미터를 통한 방법. 키는 Secret API로 해석돼요.
  • OPENAI_API_KEY 환경 변수에 설정하는 방법. 시스템이 이 변수를 사용해 키에 접근해요.
from haystack_integrations.components.audio.whisper import RemoteWhisperTranscriber

transcriber = RemoteWhisperTranscriber()

추가로, 컴포넌트가 동작하려면 다음 파라미터가 필요해요:

  • model은 Whisper 모델을 지정해요.
  • api_base_url은 OpenAI 베이스 URL을 지정하며 기본값은 "https://api.openai.com/v1"이에요. OpenAI가 아닌 Whisper 제공자를 사용한다면 해당 제공자의 문서에 맞춰 이 파라미터를 설정하세요.

다른 선택적 파라미터는 API 문서에서 확인할 수 있어요.

지원되는 오디오 형식과 언어는 Whisper API 문서와 공식 Whisper GitHub 저장소를 참고하세요.

사용법

단독으로 사용하기

RemoteWhisperTranscriber로 로컬 파일을 전사하는 예시예요:

import requests
from haystack_integrations.components.audio.whisper import RemoteWhisperTranscriber

response = requests.get(
    "https://ia903102.us.archive.org/19/items/100-Best--Speeches/EK_19690725_64kb.mp3",
)
with open("kennedy_speech.mp3", "wb") as file:
    file.write(response.content)

transcriber = RemoteWhisperTranscriber()
transcription = transcriber.run(sources=["./kennedy_speech.mp3"])
print(transcription["documents"][0].content)

파이프라인에서 사용하기

아래 파이프라인은 지정된 URL에서 오디오 파일을 가져와 전사해요. 먼저 LinkContentFetcher로 오디오 파일을 가져오고, RemoteWhisperTranscriber로 오디오를 텍스트로 전사한 뒤, 마지막으로 전사 텍스트를 출력해요.

from haystack_integrations.components.audio.whisper import RemoteWhisperTranscriber
from haystack.components.fetchers import LinkContentFetcher
from haystack import Pipeline

pipe = Pipeline()
pipe.add_component("fetcher", LinkContentFetcher())
pipe.add_component("transcriber", RemoteWhisperTranscriber())
pipe.connect("fetcher", "transcriber")

result = pipe.run(
    data={
        "fetcher": {
            "urls": [
                "https://ia903102.us.archive.org/19/items/100-Best--Speeches/EK_19690725_64kb.mp3",
            ],
        },
    },
)
print(result["transcriber"]["documents"][0].content)

추가 참고 자료

더 알아보기 (Learn more)