Transcribing multi-channel audio (Channel deorization) #55
+568
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Добавлена поддержка мультиканальной транскрибации с диаризацией
Описание
Добавлена функциональность для транскрибации мультиканального аудио с автоматической диаризацией (разделением по каналам/спикерам). Метод корректно обрабатывает перекрывающуюся речь и сортирует результаты по времени, обеспечивая правильное чередование реплик между каналами.
Разделение спикеров по каналам (или отдельным аудио файлам) применяется в колл-центрах, чтобы не терять качество разбора когда обе стороны высказываются одновременно.
Основные изменения
Новые функции и методы
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Зависимости
Требуется установка дополнительных зависимостей для мультиканальной транскрибации: