Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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,409
По умолчанию

Я бы взял 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
Сообщений: 4,647
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация паузы по кнопке 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 09:14
шум вместо речи в диктофонной записи Ксю-та Помощь студентам 11 18.01.2012 13:45
где найти бесплатную распознавалку речи без регистрации и смс? #Simba# Общие вопросы Delphi 1 13.07.2011 19:29
Создание паузы kakawkin Общие вопросы Delphi 7 29.04.2010 16:09