Wielokanałowa zamiana mowy na tekst
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 za sobą krótki przewodnik po Speech to Text .
Omówienie
Funkcja wielokanałowego Speech to Text pozwala transkrybować pliki audio, w których każdy kanał zawiera innego mówcę. Jest szczególnie przydatna w nagraniach, gdzie mówcy są odseparowani na osobnych kanałach audio, zapewniając czystsze transkrypcje bez potrzeby diarizacji mówców.
Każdy kanał jest przetwarzany niezależnie i automatycznie otrzymuje identyfikator 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, gdzie każde słowo ma tag channel_index.
Typowe zastosowania
- Nagrania wywiadów stereo - Prowadzący w lewym kanale, rozmówca w prawym
- Nagrania podcastów wielościeżkowych - Każdy uczestnik nagrywany na osobnej ścieżce
- Nagrania z 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 osobnych 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, z których każdy 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 dla pojedynczego kanału.combinedwymaga znaczników czasu (timestamps_granularitynie może mieć wartościnone) i nie jest obsługiwane przy dostarczaniu przez webhook ani przy wykrywaniu/redagowaniu 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 ten sam identyfikator mówcy.
Przetwórz odpowiedź
Domyślnie (multichannel_output_style=separate) audio wielokanałowe zwraca inny format odpowiedzi niż audio jednokanałowe:
Jeśli ustawisz use_multi_channel: true, ale podasz jednokanałowy (mono) plik audio, otrzymasz
standardową odpowiedź dla pojedynczego kanału, 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 ten sam płaski format co transkrypcja jednokanałowa (text i words na najwyższym poziomie, 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 kompletny przykład transkrypcji pliku audio stereo z dwoma mówcami:
Tworzenie transkrypcji rozmów
Najłatwiej uzyskać transkrypcję rozmowy w kolejności czasowej, ustawiając multichannel_output_style=combined — API zwróci pojedynczą 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 formatu separate, możesz zamiast tego połączyć transkrypcje poszczególnych kanałów po stronie klienta:
Korzystanie z webhooków w trybie wielokanałowym
Transkrypcja wielokanałowa obsługuje dostarczanie przez webhook przy przetwarzaniu asynchronicznym:
Webhooki zwracają format separate (na kanał). multichannel_output_style=combined nie jest
obecnie obsługiwane przy dostarczaniu przez webhook — użyj żądania synchronicznego lub połącz dane
webhooka dla poszczególnych kanałów po stronie klienta.
Obsługa błędów
Typowe 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: W trybie wielokanałowym zawsze ustawiaj diarize=false.
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: Przetwarzaj 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 żądania synchronicznego z combined albo zachowaj domyślny wynik separate
przy webhookach 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 - Przed przetwarzaniem usuń ciche lub nieużywane kanały - Upewnij się, że każdy kanał zawiera tylko jednego mówcę - Jeśli możesz, używaj formatów bezstratnych (WAV), aby uzyskać najlepszą jakość
Optymalizacja wydajności
Koszt współbieżności rośnie liniowo wraz z liczbą kanałów. Plik 3-kanałowy trwający 60 sekund ma 3 razy większy koszt współbieżności niż plik jednokanałowy.
Czas przetwarzania audio wielokanałowego możesz oszacować według poniższego 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):
Zużycie pamięci
W przypadku dużych plików wielokanałowych rozważ strumieniowanie lub dzielenie na części:
FAQ
Co jeśli moje audio ma więcej niż 5 kanałów?
API zwróci błąd. Musisz wybrać 5 kanałów do wysłania do API lub zmiksować część kanałów przed wysłaniem ich do API.
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ź dla pojedynczego kanału, a nie format wielokanałowy.
Czy mogę otrzymać jedną połączoną transkrypcję zamiast osobnych transkrypcji dla kanałów?
Tak. Ustaw multichannel_output_style=combined, aby otrzymać pojedynczą transkrypcję ze wszystkimi kanałami
połączonymi i posortowanymi według czasu rozpoczęcia, gdzie każde słowo ma tag channel_index. Jest to zgodne ze
standardowym formatem odpowiedzi dla pojedynczego kanału. Wymaga znaczników czasu i nie jest dostępne przy dostarczaniu przez
webhook.
Jak są przypisywane identyfikatory mówców?
Identyfikatory 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ć różne języki. Wykrywanie języka
odbywa się osobno dla każdego kanału. Przy multichannel_output_style=combined language_code na najwyższym poziomie
odzwierciedla kanał wykryty z największą pewnością, a każde słowo nadal zawiera
channel_index.