JavaScript SDK
Scribe: JavaScript에서 실시간 음성 텍스트 변환
Scribe 및 해당 기능의 개요는 음성 텍스트 변환 개요를 참조하세요. 단계별 사용 가이드는 클라이언트 측 스트리밍을 참조하세요.
설치
ElevenLabs 음성 텍스트 변환 스킬을 사용하여 AI 코딩 어시스턴트에서 오디오를 텍스트로 변환하세요.
이 라이브러리는 모든 JavaScript 기반 프로젝트에서 사용할 수 있습니다. React를 사용한다면,
기본 상태 관리 및 수명 주기 처리를 제공하는
useScribe 훅을 고려해 보세요.
사용법
다음은 Scribe에 연결하고 트랜스크립션 결과를 기록하는 최소 작동 예시입니다.
토큰 가져오기
Scribe는 인증을 위해 일회용 토큰이 필요합니다. 서버에 API 엔드포인트를 만드세요.
ElevenLabs API 키는 민감한 정보입니다. 절대 클라이언트에 노출하지 마세요. 항상 서버에서 토큰을 생성하세요.
연결 옵션
Scribe.connect()는 마이크 옵션 또는 수동 오디오 옵션을 받습니다. 두 옵션은 공통 기본 옵션 세트를 공유합니다.
기본 옵션
마이크 옵션
microphone 객체를 전달하면 사용자의 마이크에서 오디오를 직접 스트리밍합니다. 연결이 getUserMedia와 오디오 인코딩을 자동으로 처리합니다.
수동 오디오 옵션
audioFormat 및 sampleRate를 전달하면 connection.send()를 통해 오디오 데이터를 수동으로 보낼 수 있습니다.
AudioFormat 열거형
마이크 모드
사용자의 마이크에서 오디오를 직접 스트리밍합니다.
수동 오디오 모드(파일 트랜스크립션)
오디오 데이터를 수동으로 전송하여 사전 녹음된 오디오 파일을 텍스트로 변환합니다.
RealtimeConnection
Scribe.connect()는 다음 메서드를 갖는 RealtimeConnection 인스턴스를 반환합니다.
on(event, listener)
이벤트 리스너를 등록합니다. 사용 가능한 이벤트 유형은 이벤트를 참조하세요.
off(event, listener)
이전에 등록한 이벤트 리스너를 제거합니다.
send(data)
Scribe로 오디오 데이터를 전송합니다(수동 오디오 모드 전용).
previousText 필드는 세션의 첫 번째 오디오 청크에서만 전송할 수 있습니다. 이후 청크에서 전송하면
오류가 발생합니다.
commit()
현재 트랜스크립션을 수동으로 커밋합니다. CommitStrategy.MANUAL을 사용할 때만 필요합니다.
close()
WebSocket 연결을 닫고 리소스(마이크 스트림, 오디오 컨텍스트)를 정리합니다.
이벤트
connection.on(event, listener)를 사용하여 이벤트 리스너를 등록합니다. 모든 이벤트는 RealtimeEvents 열거형의 상수로 제공됩니다.
트랜스크립션 이벤트
WordsItem 유형에는 단어 수준 타이밍 정보가 포함됩니다.
연결 이벤트
오류 이벤트
모든 오류 이벤트는 { error: string }을 받습니다.
커밋 전략
트랜스크립션을 커밋할 시점을 제어합니다.
자세한 내용은 트랜스크립트 및 커밋 전략을 참조하세요.
전체 예시
다음은 VAD 기반 커밋 전략으로 마이크 오디오를 텍스트로 변환하는 전체 예시입니다.