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

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

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

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

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация паузы по кнопке 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