Есть ли какой-нибудь алгоритм обработки сигнала, который мог бы реконструировать, как звуковая волна создавалась через голосовую систему группы людей? - PullRequest
9 голосов
/ 21 мая 2011

Имея длинную звуковую ленту с 3 динамиками, как узнать, как открываются / закрываются рты? У нас есть аудиозапись с более чем одним динамиком. Звук чистый и не требует шумоподавления. Мы хотим создать анимацию с говорящими 3d головами. Как правило, мы хотим узнать из звуковых данных движения рта.

На самом деле у нас есть 3D-головы, двигающиеся как-то с помощью анимации по умолчанию. Как будто мы подготовили анимацию для звука O для каждого человека, нам нужна некоторая информация: в какую миллисекунду, какой человек произвел какой звук?

Так что это как голос к тексту, но для звуков и для более чем одного человека на одной записи.

image with head on it

В общем (идеальный случай) мы хотим получить некоторые сигналы о движениях пар точек D9, D6, D5. Из более чем одного говорящего, конечно, английский.

Есть ли статьи с алгоритмами или библиотеками с открытым исходным кодом?

Пока я нашел несколько библиотек

http://freespeech.sourceforge.net/ http://cmusphinx.sourceforge.net/

но я еще ни разу не использовал их ...

Ответы [ 4 ]

5 голосов
/ 21 мая 2011

Это пример "проблемы вечеринки" или ее обобщения, " слепое разделение сигналов ".

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

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

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

5 голосов
/ 21 мая 2011

Интересная проблема !!Первое, что пришло мне в голову, - это использовать обнаружение движения для выявления любых движений в областях D5, D6 и D9.Расширьте D5, D6, D9 на прямоугольники и используйте один из упомянутых подходов здесь для обнаружения движения в пределах этих областей.

Конечно, вы должны сначала идентифицировать лицо человека и области D5, D6, D9 в кадре, прежде чем вы сможете начать мониторинг любого движения.

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

Действительно интересная проблема !!Хотелось бы, чтобы я сейчас работал над чем-то таким интересным:).

Надеюсь, я упомянул здесь кое-что полезное.

4 голосов
/ 21 мая 2011

Я думаю, что вы ищете то, что известно как «разделение слепых сигналов».Исследовательская статья, посвященная этой теме:

Разделение слепого сигнала: статистические принципы (pdf)

Жан-Франсуа Кардозу, CNRS и ENST

Аннотация - Слепое разделение сигналов (BSS) и независимый компонентный анализ (ICA) являются новыми методами обработки массивов и анализа данных,стремясь восстановить ненаблюдаемые сигналы или «источники» из наблюдаемых смесей (как правило, выходной сигнал матрицы датчиков), используя только предположение о взаимной независимости между сигналами.Слабость предположений делает его мощным подходом, но требует выходить за рамки привычной статистики второго порядка.Цель этой статьи - рассмотреть некоторые из недавно разработанных подходов для решения этой захватывающей проблемы, показать, как они основаны на основных принципах и как они связаны друг с другом.

У меня естьПонятия не имею, насколько практично то, что вы пытаетесь сделать, или сколько работы это может занять, если это практично.

2 голосов
/ 21 мая 2011

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

Это точно инженерная проблема. Но не проблема программирования, подходящая для переполнения стека. Я с нетерпением жду того дня, когда это будет. : -)

...