Transcribing multi-channel audio (Channel deorization)#55
Transcribing multi-channel audio (Channel deorization)#55slavonnet wants to merge 2 commits intosalute-developers:mainfrom
Conversation
…ic diarization (channel/speaker separation). The method correctly processes overlapping speech and sorts the results by time, ensuring the correct alternation of cues between channels.
|
Test 194 секунды разговора колл центра. 2 моно файла по для каждой стороны. RTX 5060 Ti 16Gb, Результаты: Узкие места: |
…=160, win_length=320, window=torch.cuda.FloatTensor{[320]}, normalized=0, onesided=1, return_complex=1, align_to_window=None) : expected 0 < n_fft < 270, but got n_fft=320
|
При запуске на коллекции звонков за год в одном месте ошибка проскочила, исправил что размер аулио в батче не может быть меньше 320 |
|
я так использую def do_process(t, r):
try:
with torch.no_grad():
results = model.transcribe_multichannel(
[t, r], # Список файлов: [агент, клиент]
batch_size=4,
pause_threshold=0.5,
strict_limit_duration=30.0хирый хак есть чтобы когда два канала одновременно говорят правильно раскидывало и сортировало результат -pause_threshold за это отвечает. |
Добавлена поддержка мультиканальной транскрибации с диаризацией
Описание
Добавлена функциональность для транскрибации мультиканального аудио с автоматической диаризацией (разделением по каналам/спикерам). Метод корректно обрабатывает перекрывающуюся речь и сортирует результаты по времени, обеспечивая правильное чередование реплик между каналами.
Разделение спикеров по каналам (или отдельным аудио файлам) применяется в колл-центрах, чтобы не терять качество разбора когда обе стороны высказываются одновременно.
Основные изменения
Новые функции и методы
GigaAMASR.transcribe_multichannel()— метод для транскрибации мультиканального аудиоload_multichannel_audio()вpreprocess.py— загрузка мультиканального аудиоsegment_multichannel_audio()вvad_utils.py— сегментация мультиканального аудиоТесты
Добавлен файл
tests/test_multichannel.pyс тестами:Документация
README.mdиREADME_ru.mdс примерами использования мультиканальной транскрибацииТехнические детали
Алгоритм работы
pause_threshold)global_start, затемstart_time)strict_limit_durationОптимизации
itertools.groupbyиmapдля функционального стиля обработкиОграничения
pyannote.audioи токен Hugging Face для доступа к модели VADstrict_limit_duration)Примеры использования
Совместимость
Файлы изменений
gigaam/model.py— добавлен методtranscribe_multichannel()gigaam/preprocess.py— добавлена функцияload_multichannel_audio()gigaam/vad_utils.py— добавлена функцияsegment_multichannel_audio()gigaam/__init__.py— экспорт новых функцийtests/test_multichannel.py— новые тестыREADME.md,README_ru.md— обновлена документацияТестирование
Все тесты проходят успешно:
pytest tests/test_multichannel.py -v # 4 passedЗависимости
Требуется установка дополнительных зависимостей для мультиканальной транскрибации: