Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 08 февраля 2018 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Бредихин А.И. АЛГОРИТМ ОПРЕДЕЛЕНИЯ НАЛИЧИЯ ПОЛЕЗНОГО ЗВУКА НА ЗВУКОЗАПИСИ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LXII междунар. студ. науч.-практ. конф. № 2(61). URL: https://sibac.info/archive/technic/2(61).pdf (дата обращения: 26.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

АЛГОРИТМ ОПРЕДЕЛЕНИЯ НАЛИЧИЯ ПОЛЕЗНОГО ЗВУКА НА ЗВУКОЗАПИСИ

Бредихин Арсентий Игоревич

студент ИТСИТ, кафедра СОИМУ ЮГУ,

РФ, г. Ханты-Мансийск

В последние годы возникает все большая потребность в автоматической обработке звуковых сигналов, поскольку она может освободить человека от рутинного поиска нужной информации по большому количеству звуковых записей. В связи с этим получают распространение математические методы анализа звуковых сигналов, такие как частотный и частотно-временной анализ сигнала. Применение этих методов часто обеспечивает удовлетворительную точность распознавания звуков на звукозаписях, но многие из этих методов (особенно те, которые связаны с частотно-временным анализом) не являются эффективными по времени выполнения – чаще всего время анализа одной звукозаписи превышает длительность данной звукозаписи, что делает невозможным применение этих методов в автоматической обработке звуковых сигналов в режиме реального времени.

Одной из причин данной проблемы является анализ всех звукозаписей целиком, причем чаще всего анализируемые звукозаписи большей частью состоят из очень тихих звуков (пауз) любой длительности или же достаточно громких, но очень коротких по длительности звуков, анализировать которые не имеет смысла, поскольку они чаще всегоне несут никакой информации. Из-за этого большая часть времени тратится на обработку звуков, не несущих никакой информации, что влечет снижение эффективности анализа звукозаписей.

Отсюда можно сделать вывод, что решить проблему эффективности математических методов анализа звуковых сигналов можно, выделяя и анализируя только полезные звуки – участки звукозаписей с достаточными громкостью и длительностью, которые могут нести в себе полезную информацию. Это может значительно повысить эффективность автоматической обработки звукозаписей.

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

Предметная область

Звукозапись представляет собой цифровой сигнал, который хранится в памяти компьютера/сервера.

Цифровой сигнал – дискретный сигнал , который может принимать значения из конечного множества чисел, , где  – значение амплитуды -го отсчета сигнала, а  – уровни сигнала [1, с. 59].

Дискретный сигнал – функция дискретного аргумента , где  – номер отсчета сигнала (целое неотрицательное число), а –период дискретизации (расстояние по временной оси между соседними отсчетами) [1, с. 58]. Величина  используется на практике чаще, чем период дискретизации, и называется частотой дискретизации, которая определяет количество отсчетов сигнала на 1 секунду цифрового сигнала.

Именно цифровые сигналы и используются для хранения и автоматической обработки звукозаписей, поскольку аналоговый (непрерывный) сигнал невозможно представить в памяти компьютера, т.к. количество отсчетов аналогового сигнала бесконечно.

Таким образом, цифровой сигнал с точки зрения представления в памяти – это одномерный массив чисел (амплитуд). Также можно сделать вывод, что любой цифровой сигнал имеет следующие основные характеристики:

  •  – частота дискретизации, Гц;
  • – длительность сигнала, сек;
  • длина одного массива в отсчетах;
  • количество каналов записи (количество массивов для кодирования звука).

Главной задачей рассматриваемого в данной статье алгоритма является выделение на звукозаписи участков полезного звука, значения амплитуд которых в большинстве своем превышают заданное пороговое значение амплитуды threshold (звук), и участков звука, значения амплитуд которых не превышают значение threshold (пауза). Выделение данных участков звука представляет некоторую проблему, т.к. применяя простую проверку значений амплитуд, сигнал разбивается на очень большое количество чередующихся интервалов звука и паузы, длительность которых не превышает 1-2 мс. Звук с такой длительностью не представляет никакой информации, т.к. человек не в состоянии слышать и обрабатывать столь короткие звуки. В целях решения данной проблемы автором статьи были введено понятие субзвука.

Субзвук – участок звукозаписи с не достигающими порогового значения амплитудами, предшествующий паузе и следующий за звуком. Субзвук имеет определенную длительность и принимается за звук. Также субзвук – это участок звукозаписи с достигающими порогового значения амплитудами, следующий непосредственно за паузой и предшествующий звуку. Пример разделенияпроизвольного звукового сигнала на звуки, паузы и субзвуки представлен ниже.

 

Рисунок 1. пример разделения сигнала на паузы, звуки и субзвуки

 

В данном случае threshold=0,2, длительность субзвука равна 0,3 с. Цифры на графике обозначают следующие области звукозаписи: 1 – пауза, 2 – субзвук, 3 – звук, 4 – субзвук, 5 – пауза. Для подобного определения областей звука введем 4 вида областей:

  1. Пауза – все значения амплитуды данной области звука не превышают пороговое значение амплитуды. На рисунке 1 обозначена цифрами 1 и 5;
  2. Субзвук перед звуком – значительная часть значений амплитуды данной области звука превышает или достигает пороговое значение амплитуды (из-за этого будем считать ее за звук) и данная область следует сразу за областью вида 1 (пауза). Область 2 имеет определенное значение длительности, не меньшее заданного. На рисунке 1 обозначена цифрой 2.
  3. Звук – значительная часть значений амплитуды данной области звука превышает или достигает пороговое значение амплитуды и данная область следует сразу за областью вида 2 (субзвук перед звуком). На рисунке 1 обозначена цифрой 3.
  4. Субзвук перед паузой – значительная часть значений амплитуды данной области звука не превышает пороговое значение амплитуды и данная область следует сразу за областью вида 3 (звук). Будем считать ее за звук, поскольку если в качестве звука брать только области 2 и 3 без области 4, то полученный звук в конце будет резко обрываться, что не всегда приемлемо. На рисунке 1 обозначена цифрой 4. В данном алгоритме длительности областей 2 и 4 приняты равными между собой.

Т.к. в областях 2 и 4 (субзвук) не все амплитуды превышают пороговое значение, то любая область 2 и 4 будет иметь длительность больше заданной. Поэтому границу начала области 2 (субзвук перед звуком) желательно сдвигать влево, чтобы обрезалось как можно меньше звука вначале.

Алгоритм

Пусть дан одномерный массив signal – сигнал с частотой дискретизации fd. Сигнал должен быть нормирован (т.е. все значения амплитуд сигнала должны принимать значения от -1 до 1). Пользователем задана пороговая амплитуда threshold, минимальная длительность паузы для ее детектирования durpause, минимальная длительность звука для его детектирования dursound, длительность субзвука subsound. Тогда алгоритм определения наличия полезного звука будет выглядеть следующим образом:

 

Рисунок 2. Блок-схема алгоритма определения наличия полезного звука

 

На данной блок-схеме можно увидеть цикл с параметром, который «пробегает» по всем отсчетам сигнала. В данном цикле находятся 4 вложенных ветвления, которые сравнивают модуль каждого отсчета сигнала с пороговым значением амплитуды threshold и тем самым отвечают за определение вышеописанных областей 1-4 звукового сигнала. Изображены следующие 4 ветвления (слева направо):

  1. Порог не превышен, пауза. В данном случае значение переменной count равно количеству отсчетов области 1 сигнала (пауза). Выполняется инкремент переменной count. Здесь же проводится проверка на достижение конца сигнала – в случае его достижения пауза фиксируется.
  2. Порог не превышен, звук. В данном случае значение переменной count равно количеству отсчетов области 3 сигнала (звук), а значение переменной subcount равно количеству отсчетов области 4 сигнала (субзвук перед паузой). Выполняется инкремент переменных count и subcount. Затем проверяется достижение областями 3 и 4 звука заданных пользователем длительностей звука и субзвука соответственно: если значения длительностей обеих областей достигли заданных значений длительностей, то фиксируется звук, флажок flag переводится в значение false (начало паузы) и переменные count и subcount обнуляются.
  3. Порог достигнут, звук. В данном случае значение переменной count равно количеству отсчетов области 3 сигнала (звук). Выполняется инкремент переменной count, счетчик отсчетов субзвука subcount обнуляется. Здесь же проводится проверка на достижение конца сигнала – в случае его достижения звук фиксируется.
  4. Порог достигнут, пауза. В данном случае значение переменной count равно количеству отсчетов области 1 сигнала (пауза), а значение переменной subcount равно количеству отсчетов области 2 сигнала (субзвук перед звуком). Выполняется инкремент переменной subcount. Переменная count не инкрементируется, поскольку область 2 считается за звук. Затем проверяется достижение областями 1 и 2 звука заданных пользователем длительностей паузы и субзвука соответственно. Если значения длительностей обеих областей достигли заданных значений длительностей, то фиксируется пауза, флажок flag переводится в значение true (начало звука), переменная count принимает значение 2*subcount (граница звука сдвигается на 2*subcount отсчетов влево), переменная subcount обнуляется в одной из следующих итераций цикла.

Данный алгоритм выполняется достаточно быстро. Например, определение областей паузы и звука в звукозаписи из 40000 отсчетов (что при ЧД=16000 Гц соответствует 2,5 секундам) занимает не более 0,04 секунды.

Работа алгоритма и рекомендации по его настройке

В качестве примера взят произвольный цифровой сигнал длительностью 5,35 с при ЧД=11025 Гц. График сигнала представлен ниже.

 

Рисунок 3. График сигнала

 

Выбраны 6 настроек для выполнения алгоритма с данными сигналами:

  1. Длительность звука – 0 с, длительность паузы – 0 с, длительность субзвука – 0,03 с, порог – 0,02;
  2. Длительность звука – 0 с, длительность паузы – 0 с, длительность субзвука – 0,03 с, порог – 0,01;
  3. Длительность звука – 0,5 с, длительность паузы – 0,5 с, длительность субзвука – 0,03 с, порог – 0,01;
  4. Длительность звука – 0,5 с, длительность паузы – 0,5 с, длительность субзвука – 0,1 с, порог – 0,01;
  5. Длительность звука – 1 с, длительность паузы – 1 с, длительность субзвука – 0,1 с, порог – 0,01;
  6. Длительность звука – 1 с, длительность паузы – 1 с, длительность субзвука – 0,5 с, порог – 0,01;

В первых двух случаях детектируются звуки и паузы любой длительности. В остальных – звуки и паузы с длительностями не менее указанных. Из-за этого при настройках 3-6 возможны пропуски областей сигнала, которые не соответствуют заданным длительностям, но при этом список обнаруженных областей сигнала становится более компактным из-за уменьшения их числа.

Таким образом, процедура определения наличия полезного звука была выполнена 6 раз. Результаты выполнения процедуры получены следующие:

 

Рисунок 4. Результаты выполнения процедуры для сигнала при разных настройках

 

Сопоставляя результаты выполнения процедур с графиком сигнала, можно заметить следующее:

  • При понижении порога длительности детектируемых областей звука возрастают (настройки 1 и 2). Связано это с увеличением отсчетов сигнала, достигающих порогового значения;
  • При указании ненулевой длительности звука области звука с длительностью меньше указанной определяются как паузы (настройка 3, 2-я и 3-я по счету области паузы). Это может быть полезно при отсечении коротких громких звуков, не представляющих интереса в определенной обстановке (например, звук удара молотком или звук проставления печати);
  • При увеличении длительности субзвука границы областей звука сдвигаются вправо (см. 1-ю по счету область звука при настройках 3, 4 и 6). Из-за этого не рекомендуется брать слишком большие значения длительности субзвука;
  • Вопреки сказанному в предыдущем пункте, длительность субзвука должна быть достаточной, чтобы длительности детектируемых областей звука были больше, и тем самым звукозапись не разделялась на слишком большое количество «обрывков».

Таким образом, предложенный алгоритм определения наличия полезного звука на звукозаписи при правильной настройке позволяет достаточно быстро и эффективно определять области паузы и звука на звукозаписи. При этом для данного алгоритма не существует универсальных рекомендаций по его настройке для различных обстановок записи. Для его настройки предлагается пользоваться вышеописанными указаниями, полученными в результате анализа результатов выполнения алгоритма, и особенностями акустики конкретной обстановки, например, наличие и громкость посторонних шумов, вид детектируемого звука (речь человека, техногенные звуки и т.д.).

 

Список литературы:

  1. Умняшкин С.В. Основы теории цифровой обработки сигналов: Учебное пособие. Москва: ТЕХНОСФЕРА, 2016. – 528 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.