멀티채널 텍스트 음성 변환
멀티채널 텍스트 음성 변환
이 가이드에서는 텍스트 음성 변환 API에서 멀티채널 전사 모드를 사용하는 방법을 설명합니다.
사용 방법 가이드 · 텍스트 음성 변환 빠른 시작을 완료했다고 가정합니다.
개요
멀티채널 텍스트 음성 변환 기능을 사용하면 각 채널에 서로 다른 화자가 포함된 오디오 파일을 전사할 수 있습니다. 화자가 별도의 오디오 채널에 분리되어 녹음된 경우에 특히 유용하며, 화자 분리 없이도 더 깔끔한 전사 결과를 제공합니다.
각 채널은 독립적으로 처리되며 채널 번호를 기준으로 화자 ID가 자동 할당됩니다(채널 0 → speaker_0, 채널 1 → speaker_1 등). 시스템은 입력 오디오 파일에서 개별 채널을 추출하고 병렬로 전사합니다. 기본적으로 API는 채널당 하나의 트랜스크립트를 반환합니다. 대신 시작 시간순으로 정렬된 하나의 목록으로 모든 채널을 병합하고 각 단어에 channel_index를 태그하려면 multichannel_output_style=combined를 설정하세요.
일반적인 사용 사례
- 스테레오 인터뷰 녹음 - 왼쪽 채널에 인터뷰어, 오른쪽 채널에 인터뷰이
- 멀티트랙 팟캐스트 녹음 - 각 참여자가 별도 트랙에 녹음됨
- 콜센터 녹음 - 상담원과 고객이 서로 다른 채널에 분리됨
- 회의 녹음 - 개별 참여자가 별도 채널에 분리됨
- 법정 절차 - 여러 당사자가 서로 다른 채널에 녹음됨
요구 사항
- API 키가 있는 ElevenLabs 계정
- 멀티채널 오디오 파일(WAV, MP3 또는 기타 지원 형식)
- 오디오 파일당 최대 5개 채널
- 각 채널에는 한 명의 화자만 포함되어야 함
작동 방식
멀티채널 오디오 준비
오디오 파일에서 화자가 별도 채널에 분리되어 있는지 확인하세요. 멀티채널 기능은 최대 5개 채널을 지원하며, 각 채널은 특정 화자에 매핑됩니다.
- 채널 0 →
speaker_0 - 채널 1 →
speaker_1 - 채널 2 →
speaker_2 - 채널 3 →
speaker_3 - 채널 4 →
speaker_4
API 매개변수 구성
음성-텍스트 요청 시 다음을 설정해야 합니다.
use_multi_channel:truediarize:false(멀티채널 모드는 채널을 통해 화자를 분리함)
선택적으로 다음을 통해 응답 형태를 제어할 수 있습니다.
multichannel_output_style:separate(기본값)는 채널당 하나의 트랜스크립트를 반환합니다.combined는 모든 채널을 시작 시간순으로 정렬된 단일 트랜스크립트로 병합하며, 각 단어에channel_index를 포함합니다. 이는 표준 단일 채널 응답 형태와 같습니다.combined에는 타임스탬프가 필요하며(timestamps_granularity는none일 수 없음), 웹훅 전송 또는 엔터티 감지/가리기와 함께 지원되지 않습니다.
화자 수는 채널 수로 자동 결정되므로 num_speakers 매개변수는 멀티채널 모드에서 사용할 수 없습니다. 멀티채널 모드는 채널당 정확히 한 명의 화자가 있다고 가정합니다. 화자가 더 많은 경우, 해당 채널의 모든 화자에게 같은 화자 ID를 할당합니다.
응답 처리
기본값인 multichannel_output_style=separate에서는 멀티채널 오디오가 단일 채널과 다른 응답 형식을 반환합니다.
use_multi_channel: true를 설정했지만 단일 채널(모노) 오디오 파일을 제공하면 멀티채널 형식이 아닌
표준 단일 채널 응답을 받습니다. 멀티채널 응답 형식은 오디오 파일에 실제로 여러 채널이 포함된 경우에만
반환됩니다.
multichannel_output_style=combined를 사용하면 응답은 단일 채널 전사와 같은 평면 구조(최상위 수준의 text 및 words, transcripts 배열 없음)를 사용합니다. 모든 채널은 시작 시간순으로 정렬된 하나의 목록으로 병합되며, 모든 단어에는 해당 채널을 식별하는 channel_index(및 speaker_id)가 포함됩니다.
구현
기본 멀티채널 전사
두 명의 화자가 포함된 스테레오 오디오 파일을 전사하는 전체 예시는 다음과 같습니다.
대화 트랜스크립트 만들기
시간순 대화 형식의 트랜스크립트를 가장 쉽게 얻으려면 multichannel_output_style=combined를 요청하세요. API가 시작 시간순으로 정렬된 단일 words 목록을 반환하며, 각 단어에는 channel_index와 speaker_id가 포함됩니다.
기본 separate 출력을 사용하는 경우에는 대신 클라이언트 측에서 채널별 트랜스크립트를 병합할 수 있습니다.
멀티채널에서 웹훅 사용
멀티채널 전사는 비동기 처리를 위한 웹훅 전송을 지원합니다.
웹훅은 separate(채널별) 형식을 반환합니다. multichannel_output_style=combined는 현재 웹훅 전송에서
지원되지 않습니다. 동기 요청을 사용하거나 클라이언트 측에서 채널별 웹훅 페이로드를 병합하세요.
오류 처리
일반적인 유효성 검사 오류
멀티채널 모드에서 diarize=true 설정
오류: 멀티채널 모드는 화자 분리를 지원하지 않으며, 화자가 말하는 채널에 따라 화자를 할당합니다.
해결 방법: 멀티채널 모드를 사용할 때는 항상 diarize=false를 설정하세요.
num_speakers 매개변수 제공
오류: use_multi_channel이 활성화된 경우 num_speakers를 지정할 수 없습니다. 화자 수는 채널 수에 따라
자동으로 결정됩니다. 해결 방법: 요청에서 num_speakers 매개변수를 제거하세요.
채널이 5개를 초과하는 오디오 파일
오류: 멀티채널 모드는 최대 5개 채널을 지원하지만, 오디오 파일에는 X개의 채널이 포함되어 있습니다.
해결 방법: 처음 5개 채널만 처리하거나 채널 수를 줄이도록 오디오를 전처리하세요.
타임스탬프 없이 통합 출력 사용
오류: multichannel_output_style=‘combined’에는 타임스탬프가 필요합니다. timestamps_granularity를 ‘word’ 또는 ‘character’로 설정하세요.
해결 방법: 통합 출력은 단어를 시간순으로 정렬하므로 timestamps_granularity를 word(기본값) 또는 character로 설정하세요.
웹훅과 함께 통합 출력 사용
오류: multichannel_output_style=‘combined’는 아직 웹훅 전송에서 지원되지 않습니다.
해결 방법: combined로 동기 요청을 사용하거나, 웹훅 사용 시 기본 separate 출력을 유지하고 클라이언트 측에서 병합하세요.
모범 사례
오디오 준비
최상의 결과를 위해 다음을 권장합니다. - 더 나은 성능을 위해 16kHz 샘플 레이트 사용 - 처리 전 무음 또는 사용하지 않는 채널 제거 - 각 채널에 한 명의 화자만 포함되도록 확인 - 가능한 경우 최상의 품질을 위해 무손실 형식(WAV) 사용
성능 최적화
동시성 비용은 채널 수에 비례하여 증가합니다. 60초 길이의 3채널 파일은 단일 채널 파일보다 동시성 비용이 3배 더 듭니다.
다음 공식을 사용하여 멀티채널 오디오의 처리 시간을 추정할 수 있습니다.
설명:
- = 파일 길이(초)
- = 채널 수
- = 처리 속도 계수(실시간의 약 30%)
- = 초 단위 고정 오버헤드
- = 채널당 초 단위 오버헤드
예시: 60초 스테레오 파일(2개 채널)의 경우:
메모리 고려 사항
대용량 멀티채널 파일의 경우 스트리밍 또는 청크 분할을 고려하세요.
FAQ
오디오에 5개가 넘는 채널이 있으면 어떻게 되나요?
API가 오류를 반환합니다. API로 전송할 5개 채널을 선택하거나, 전송 전에 일부 채널을 다운믹스해야 합니다.
멀티채널 모드로 모노 오디오를 처리할 수 있나요?
예, 가능하지만 불필요합니다. use_multi_channel=true로 모노 오디오를 전송하면 멀티채널 형식이 아닌 표준 단일 채널 응답을 받습니다.
채널별 트랜스크립트 대신 하나의 통합 트랜스크립트를 받을 수 있나요?
예. multichannel_output_style=combined를 설정하면 모든 채널이 병합되고 시작 시간순으로 정렬된 하나의 트랜스크립트를 받을 수 있으며, 각 단어에는 channel_index가 태그됩니다. 이는 표준 단일 채널 응답 형태와 같습니다. 타임스탬프가 필요하며 웹훅 전송에서는 사용할 수 없습니다.
화자 ID는 어떻게 할당되나요?
화자 ID는 채널 번호에 따라 결정됩니다. 채널 0은 speaker_0, 채널 1은 speaker_1이 되는 방식입니다.
채널마다 언어가 달라도 되나요?
예, 각 채널은 독립적으로 처리되며 서로 다른 언어를 감지할 수 있습니다. 언어 감지는 채널별로 이루어집니다. multichannel_output_style=combined를 사용하면 최상위 language_code는 가장 신뢰도가 높은 채널을 반영하지만, 각 단어에는 여전히 channel_index가 포함됩니다.