Метка «обработка сигналов»

Этим постом мы хотели бы начать цикл статей, посвященных задаче изменения голоса. В зарубежной литературе данную задачу часто именуют термином voice morphing, в отечественной литературе данная задача ещё не получила достаточного освещения как в научных, так и в инженерных кругах. Тема является достаточно обширной и во многом творческой. В результате работы в данном направлении у нас накопился определенный опыт, который мы планируем систематизировать и изложить, а также передать основную суть некоторых алгоритмов.

image

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

Читать полностью »

Задача: в массиве длиной N найти элемент, который повторяется больше N/2 раз.

Казалось бы, чего тут думать? Возьмём Dictionary<значение элемента, число появлений>, за один проход по массиву сосчитаем появления каждого элемента, потом выберем из словаря искомый элемент. Решение за O(N), куда может быть ещё быстрее?
Поиск часто встречающихся элементов в массиве
Есть один нюанс: для словаря нам потребуется O(N) дополнительной памяти — в несколько раз больше размера исходного массива, и это при реализации словаря хоть хэш-таблицей, хоть деревом. Что будем делать, если наша цель — обработка сигнала неким устройством с маленькой памятью? Массив — замеры уровня сигнала, из которых один — «настоящий» передаваемый уровень, а остальные — шум и помехи. Неужели придётся для определения «настоящего» уровня возиться с хэш-таблицами и деревьями?

К счастью, нет: достаточно O(1) дополнительной памяти, и по-прежнему одного прохода по массиву. Читать полностью »

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

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

Типичная величина одного интервала — 25,6 мс. Соседние интервалы берутся со смещением относительно предыдущего интервала. Применяемая величина перекрытия интервалов равна 10 мс. В результате предварительной проработки каждого из указанных интервалов получаем вектор из нескольких десятков спектральных значений.
Читать полностью »

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

При построении цепочек использовалась методология, описанная в статье “Автоматический анализ текстов без модераторов” и в комментариях к ней. После описания алгоритма будут предложена стратегия с положительным математическим ожиданием прибыли.

Введение

При обработке событий приходится искать смысл происходящего. Если с неба светит солнце и дует юго-западный ветер, то что это значит? А если вдруг потемнело и слышны глухие раскаты, то чем это грозит?

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

Но будущее не существует. Даже если оно предопределено, всегда может объявиться фактор, который в той или иной степени изменит результат. Можно говорить лишь о некоторой вероятности, с которой прогноз исполняется.

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

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

Если поведение окружающей среды не зависит от его прошлых состояний, то ее прогнозирование невозможно — никогда не знаешь, что произойдет в следующия момент. Но на практике стабильные причинно-следственные связи все таки втречаются и существуют, порой, испокон веков.

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js