При создание датасета TTS возникает стандартная такая задача: есть текст, разбитый

на предложения и один большой аудиофайл, с голосом диктора. Между предложениями диктор делает паузу. Иногда диктор одно предложение начинает читать, понимает что ошибся и сделав паузу, еще раз читает.
Надо теперь сопоставить куски аудио к предложениям.
Кто как решает такую задачу?
Заранее записать каждое предложение в отдельный файл не рассматриваем. Имеем то, что имеем.

6 ответов

5 просмотров

Текст разбиваем на предложения, аудио - по большим паузам (размер паузы надо подобрать). В каждом аудио распознаем речь с помощью ASR. Потом, для каждого кусочка аудио с распознанные текстом, измеряем какой-нибудь edit distance до каждого ground truth предложения. Выбираем наиболее близкое предложение, и если edit distance ниже порога - берём его как текст для этого кусочка. Чем ниже порог - тем больше будет потеряно данных, но тем чище будет датасет

Aigiz-K Автор вопроса
Name
Текст разбиваем на предложения, аудио - по большим...

так и делаю сейчас. но много нюансов: 1.одно предложение может быть разбито на несколько аудио файлов 2. два предложения могут находиться внутри одного аудиофайла(если паузу сделал маленькую) 3. если все делать автоматом, то приходится отбраковывать много данных. а они на вес золота. поэтому пока думаю в сторону некого UI где человек может просмотреть. Но надо по максимуму упростить ему задачу

Aigiz K
так и делаю сейчас. но много нюансов: 1.одно предл...

Subtitle composer, редактор субтитров. У меня были аудио, распознала их большим русским адаптированным виспером с помощью whisperX (чтобы были знаки препинания и таймстепы), а потом все проверяла в редакторе, там можно даже смещать таймкоды, очень быстро и удобно) Потом изи делила по предложениям все и текст и аудио (благодаря таймстепам)

Aigiz-K Автор вопроса
Ridge Kalman
Subtitle composer, редактор субтитров. У меня были...

у меня уже есть оригинальный текст. как раз не хочется тратить время на прослушивание 20+ часов. таймкоды распознанных слов то же есть. тут больше задача про то, как сопоставить эти два текста. тогда из распознанного можно просто перенести таймкоды на исходный текст

В такой ситуации надо однозначно править сырой аудиофайл, удаляя из него ошибки диктора.

Aigiz K
у меня уже есть оригинальный текст. как раз не хоч...

Тогда: 1. Берем первое предложение 2. Считаем в нем количество слов (например, N) 3. Идем с окном N слов по распознанным словам с таймстемпами 4. Для каждого окна считаем fuzz.ratio 5. Выбираем наиболее похожее окно, сравниваем его с каким-то трешолдом 6. Если выше трешолда - значит либо ASR не очень (на студийных виспер должен быть отличным), либо в оригинальном файле действительно нет нужного предложения 7. Если ниже трешолда - то мы нашли нужный участок в аудиозаписи, начало - start_time первого слова, конец - end_time последнего слова =)

Похожие вопросы

Обсуждают сегодня

Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
Устроился на новую работу тут везде отступы 2 пробела. На всех моих предыдущих проектах, везде было 4, все мои пэт проекты, либы и тд. Первые дни я прям взвыл, сейчас уже прив...
Сергей Романенко
7
Всем ку, услышал заявление что теперь обязательно в бота встроить телеграм старс в бота, крайний срок - в июле Правда ли это?
Ilya Shvechikov
4
Спасибо! то есть должны пробрасываться до уровня os Linux-a?
Paul
10
Товарищи, объясните недалекому: спустя какое-то время tgbot перестал отправлять сообщения. В логах пусто, просто уснул. Видел в issues на гите, что проблема не только у меня. ...
advanc3d
9
Меня спросили: есть у тебя специалисты кто могут майнилку в тг сделать?
Tim
3
Или кинули уже?
Magic
6
Карта сайта