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)