Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 24.06.2020, 20:30   #1
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
Вопрос найти паузы в mp3 записи речи (фраз)

Здравствуйте.

Есть mp3-файл, состоящий из отдельных фраз, между произнесениями которых заметная пауза

Кто-нибудь знает, возможно ли программным путём разрезать этот файл (собственно, найти места, где предположительно находятся паузы)?

и в какую сторону порекомендуете копать - ffmpeg ? bass.dll ? или что-то ещё?

Быть может, есть готовые алгоритмы, примеры? Очень бы выручили.
AnTe вне форума Ответить с цитированием
Старый 24.06.2020, 20:42   #2
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

В целом, идея была в следующем
1. найти паузы
2. разбить файл, пересохранив фрагменты, с "допусками"
3. "откалибровать" начало и конец каждого фрагмента (это уже вручную)
Подскажите, кто сможет, - чем и как это лучше сделать?
AnTe вне форума Ответить с цитированием
Старый 24.06.2020, 23:01   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,147
По умолчанию

Я бы взял bass.dll преобразовал mp3 в PCM далее выполнить нормировку амплитуды. Нормировка это посчитал среднюю амплитуду вычесть найти максимум и если он ниже 128 домножить на 256.
Далее детектор голоса построить на основе пик-детектора
Взять модуль далее усреднить скользящим окном до 2 мс. Затем просто по порогу около 16 единиц разделить всё что выше есть сигнал всё, что ниже пауза. Затем посчитать интервалы и их длины загнав в массив. Далее отобрать из этого массива паузы нужной длительности по порогу.
Потом просто порезать PCM. Фрагменты нарезанного PCM конвертируем в mp3 и сохраняем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 25.06.2020, 05:25   #4
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Спасибо! Попробую bass.dll и ваш алгоритм, по результату отпишусь.
AnTe вне форума Ответить с цитированием
Старый 25.06.2020, 13:09   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,504
По умолчанию

А самопал - обязательно? Учебное задание? Готовые решения не катят?
Mp3DirectCut
digitalis вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация паузы по кнопке rew33 Общие вопросы по Java, Java SE, Kotlin 3 12.07.2017 13:08
Программа паузы V-ampire Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.05.2013 08:14
шум вместо речи в диктофонной записи Ксю-та Помощь студентам 11 18.01.2012 12:45
где найти бесплатную распознавалку речи без регистрации и смс? #Simba# Общие вопросы Delphi 1 13.07.2011 18:29
Создание паузы kakawkin Общие вопросы Delphi 7 29.04.2010 15:09


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS