Wielokanałowa zamiana mowy na tekst
Ten przewodnik pokazuje, jak używać trybu wielokanałowej transkrypcji z API Speech to Text.
Poradnik · Zakłada, że masz już za sobą krótki przewodnik po Speech to Text .
Omówienie
Wielokanałowa funkcja Speech to Text umożliwia transkrypcję plików audio, w których każdy kanał zawiera głos innego mówcy. Jest szczególnie przydatna w nagraniach, gdzie mówcy są odseparowani na osobnych kanałach audio, zapewniając czystsze transkrypcje bez diarizacji mówców.
Każdy kanał jest przetwarzany niezależnie i automatycznie otrzymuje ID mówcy na podstawie numeru kanału (kanał 0 → speaker_0, kanał 1 → speaker_1 itd.). System wyodrębnia poszczególne kanały z wejściowego pliku audio i transkrybuje je równolegle. Domyślnie API zwraca jedną transkrypcję na kanał; ustaw multichannel_output_style=combined, aby otrzymać jedną transkrypcję ze wszystkimi kanałami połączonymi w jedną listę posortowaną według czasu rozpoczęcia, z każdym słowem oznaczonym przez channel_index.
Typowe zastosowania
- Nagrania wywiadów stereo — prowadzący w lewym kanale, rozmówca w prawym
- Wielokanałowe nagrania podcastów — każdy uczestnik nagrany na osobnej ścieżce
- Nagrania call center — agent i klient na różnych kanałach
- Nagrania konferencji — poszczególni uczestnicy odseparowani na osobnych kanałach
- Postępowania sądowe — wiele stron nagranych na odrębnych kanałach
Wymagania
- Konto ElevenLabs z kluczem API
- Wielokanałowy plik audio (WAV, MP3 lub inny obsługiwany format)
- Maksymalnie 5 kanałów na plik audio
- Każdy kanał powinien zawierać tylko jednego mówcę
Jak to działa
Przygotuj wielokanałowe audio
Upewnij się, że mówcy są odseparowani na osobnych kanałach. Funkcja wielokanałowa obsługuje do 5 kanałów, a każdy kanał jest przypisany do konkretnego mówcy:
- Kanał 0 →
speaker_0 - Kanał 1 →
speaker_1 - Kanał 2 →
speaker_2 - Kanał 3 →
speaker_3 - Kanał 4 →
speaker_4
Skonfiguruj parametry API
Podczas wysyłania żądania zamiany mowy na tekst musisz ustawić:
use_multi_channel:truediarize:false(tryb wielokanałowy rozdziela mówców przez kanały)
Opcjonalnie możesz określić format odpowiedzi:
multichannel_output_style:separate(domyślnie) zwraca jedną transkrypcję na kanał.combinedłączy wszystkie kanały w jedną transkrypcję, której słowa są posortowane według czasu rozpoczęcia, a każde machannel_index— zgodnie ze standardowym formatem odpowiedzi jednokanałowej.combinedwymaga znaczników czasu (timestamps_granularitynie może mieć wartościnone) i nie jest obsługiwane z dostarczaniem przez webhook ani wykrywaniem lub redagowaniem encji.
Parametru num_speakers nie można używać w trybie wielokanałowym, ponieważ liczba mówców jest automatycznie określana przez liczbę kanałów. Tryb wielokanałowy zakłada dokładnie jednego mówcę na kanał. Jeśli będzie ich więcej, wszystkim mówcom w kanale przypisze to samo ID mówcy.
Przetwórz odpowiedź
Domyślnie (multichannel_output_style=separate) audio wielokanałowe zwraca inny format odpowiedzi niż jednokanałowe:
Jeśli ustawisz use_multi_channel: true, ale podasz jednokanałowy (mono) plik audio, otrzymasz
standardową odpowiedź jednokanałową, a nie format wielokanałowy. Format odpowiedzi wielokanałowej
jest zwracany tylko wtedy, gdy plik audio faktycznie zawiera wiele kanałów.
Przy multichannel_output_style=combined odpowiedź ma taki sam płaski format jak transkrypcja jednokanałowa (najwyższego poziomu text i words, bez tablicy transcripts), a wszystkie kanały są połączone w jedną listę posortowaną według czasu rozpoczęcia. Każde słowo zawiera channel_index (oraz speaker_id) wskazujący jego kanał.
Implementacja
Podstawowa transkrypcja wielokanałowa
Oto pełny przykład transkrypcji pliku audio stereo z dwoma mówcami:
Tworzenie transkrypcji rozmów
Najprostszy sposób na uzyskanie transkrypcji rozmowy uporządkowanej w czasie to zażądanie multichannel_output_style=combined — API zwraca jedną listę words, już posortowaną według czasu rozpoczęcia, z channel_index i speaker_id przy każdym słowie:
Jeśli używasz domyślnego wyniku separate, możesz zamiast tego połączyć transkrypcje poszczególnych kanałów po stronie klienta:
Korzystanie z webhooków w trybie wielokanałowym
Wielokanałowa transkrypcja obsługuje dostarczanie przez webhook do przetwarzania asynchronicznego:
Webhooki zwracają format separate (na kanał). multichannel_output_style=combined nie jest
obecnie obsługiwane przy dostarczaniu przez webhook — użyj żądania synchronicznego albo połącz dane
webhooka poszczególnych kanałów po stronie klienta.
Obsługa błędów
Częste błędy walidacji
Ustawienie diarize=true w trybie wielokanałowym
Błąd: Tryb wielokanałowy nie obsługuje diarizacji i przypisuje mówców na podstawie kanału, na którym mówią.
Rozwiązanie: Zawsze ustawiaj diarize=false w trybie wielokanałowym.
Podanie parametru num_speakers
Błąd: Nie można określić num_speakers, gdy włączone jest use_multi_channel. Liczba mówców
jest automatycznie określana przez liczbę kanałów. Rozwiązanie: Usuń parametr num_speakers
z żądania.
Plik audio z ponad 5 kanałami
Błąd: Tryb wielokanałowy obsługuje do 5 kanałów, ale plik audio zawiera X kanałów.
Rozwiązanie: Przetwórz tylko pierwsze 5 kanałów lub wstępnie przetwórz audio, aby zmniejszyć liczbę kanałów.
Używanie połączonego wyniku bez znaczników czasu
Błąd: multichannel_output_style=‘combined’ wymaga znaczników czasu; ustaw timestamps_granularity na ‘word’ lub ‘character’.
Rozwiązanie: Połączony wynik sortuje słowa według czasu, więc ustaw timestamps_granularity na word
(domyślnie) lub character.
Używanie połączonego wyniku z webhookami
Błąd: multichannel_output_style=‘combined’ nie jest jeszcze obsługiwane przy dostarczaniu przez webhook.
Rozwiązanie: Użyj synchronicznego żądania z combined albo zachowaj domyślny wynik separate
przy korzystaniu z webhooków i połącz dane po stronie klienta.
Dobre praktyki
Przygotowanie audio
Aby uzyskać najlepsze wyniki: - Używaj próbkowania 16 kHz dla lepszej wydajności - Usuń ciche lub nieużywane kanały przed przetwarzaniem - Upewnij się, że każdy kanał zawiera tylko jednego mówcę - Jeśli to możliwe, używaj bezstratnych formatów (WAV), aby uzyskać najlepszą jakość
Optymalizacja wydajności
Koszt współbieżności rośnie liniowo wraz z liczbą kanałów. Trzykanałowy plik o długości 60 sekund ma 3 razy większy koszt współbieżności niż plik jednokanałowy.
Czas przetwarzania audio wielokanałowego możesz oszacować za pomocą następującego wzoru:
Gdzie:
- = czas trwania pliku w sekundach
- = liczba kanałów
- = współczynnik szybkości przetwarzania (około 30% czasu rzeczywistego)
- = stały narzut w sekundach
- = narzut na kanał w sekundach
Przykład: dla 60-sekundowego pliku stereo (2 kanały):
Kwestie pamięci
W przypadku dużych plików wielokanałowych rozważ strumieniowanie lub dzielenie na fragmenty:
FAQ
Co się stanie, jeśli moje audio ma ponad 5 kanałów?
API zwróci błąd. Musisz wybrać 5 kanałów do wysłania do API albo zmiksować niektóre kanały przed ich wysłaniem.
Czy mogę przetwarzać audio mono w trybie wielokanałowym?
Tak, ale nie jest to potrzebne. Jeśli wyślesz audio mono z use_multi_channel=true, otrzymasz
standardową odpowiedź jednokanałową, a nie format wielokanałowy.
Czy mogę otrzymać jedną połączoną transkrypcję zamiast osobnych transkrypcji kanałów?
Tak. Ustaw multichannel_output_style=combined, aby otrzymać jedną transkrypcję ze wszystkimi kanałami
połączonymi i posortowanymi według czasu rozpoczęcia, z każdym słowem oznaczonym przez channel_index. Odpowiada to
standardowemu formatowi odpowiedzi jednokanałowej. Wymaga znaczników czasu i nie jest dostępne przy dostarczaniu przez
webhook.
Jak są przypisywane ID mówców?
ID mówców są deterministyczne i zależą od numeru kanału: kanał 0 otrzymuje speaker_0, kanał 1 otrzymuje speaker_1 itd.
Czy kanały mogą mieć różne języki?
Tak, każdy kanał jest przetwarzany niezależnie i może wykrywać inne języki. Wykrywanie języka
odbywa się osobno dla każdego kanału. Przy multichannel_output_style=combined najwyższego poziomu
language_code odzwierciedla kanał wykryty z największą pewnością, a każde słowo nadal zawiera
channel_index.