Библиотека knigago >> Литература по изданиям >> Самиздат, сетевая литература >> Обнаружение скрытых эмоций в голосе


Доброго времени суток.Это настоящий Человек,он был в был ком.батальона,майором в Лагодехи в 1983 году.До войны,если ее так можно назвать,я звонил,поздравлял с днем рождения.Он живет в Киеве.Но потом,я потерял номер его телефона.Это очень хороший Человек,для солдата он был как старший брат.Это редкость среди офицеров того времени.Я часто вспоминаю те времена.

Евгений Столов - Обнаружение скрытых эмоций в голосе

Обнаружение скрытых эмоций в голосе
Книга - Обнаружение скрытых эмоций в голосе.  Евгений Столов  - прочитать полностью в библиотеке КнигаГо
Название:
Обнаружение скрытых эмоций в голосе
Евгений Столов

Жанр:

Самиздат, сетевая литература

Изадано в серии:

неизвестно

Издательство:

SelfPub

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Обнаружение скрытых эмоций в голосе"

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


К этой книге применимы такие ключевые слова (теги) как: Самиздат,информационные технологии (IT),эмоции,эмоциональные состояния,тайная информация,информатика

Читаем онлайн "Обнаружение скрытых эмоций в голосе". [Страница - 7]

сделано в примере с тригонометрическими функциями.

Огибающая кривая сигнала

Огибающая кривая сигнала Dat строится с помощью функции, зависящей от параметра WinLen. В данном случае выбрано значение 20, но это эмпирическая величина. Визуально огибающая мало зависит от этого параметра, если он берется из интервала [20,50], однако, увеличение WinLen ведет росту времени на вычисление.

WinLen = 20

Beg = 0

End = WinLen

Env1 = []

while End <= len(Dat1):

Fragm = Dat1[Beg: End]

Beg += 1

End += 1

Env1.append(F(Fragm,WinLen))

Куммулятивная сумма

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

Эмоциональные фрагменты

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

Процедура на основе PCA

Идея алгоритма представлена в книге: Анкур Пател — «Прикладное машинное обучение без учителя» ", Диалектика — 2020.

Предположим, что выбраны K параметров для каждого из M «слов» во входном потоке. Для каждого слова получаем вектор длины K, содержащий все значения параметров, найденных для этого слова. В результате всех вычислений находим матрицу размера M x K. Выбираем количество N компонент с помощью функций класса PCA из модуля from scikit-learn.decomposition import PCA и находим приближение каждой строки матрицы с помощью найденных компонент. Затем вычисляем разницу между оригиналом и приближением. Те строки (слова), для которых эти отклонения оказались большими, объявляются зонами возбуждения. Все подробности указанной процедуры можно найти в книге, отмеченной выше.

Решение на основе процедуры GaussianMixture

В этом пункте изложим процедуру выделения отклонения от нормы, принятую на упомянутом выше сайте http://5.23.55.2. Снова имеем M «слов», для каждого из которых имеется K измеряемых параметров. Измеренные параметры помещаем в матрицу D размера K x M. Таким образом, в каждой строке находится одна и та же характеристика, например, длина слова, вычисленная для каждого из имеющихся слов. Теперь в каждой строке надо выделить отклонение от нормы. Процедура GaussianMixture предназначена для построения модели смеси гауссовских распределений. Пользователь указывает число смесей, а функция относит то или иное измерение к нужному классу.

from sklearn import mixture

def gaussDistr(In):

Clf = mixture.GaussianMixture(n_components=2,

covariance_type="full")

Clf.fit(In)

return Clf.predict(In)

На вход этой функции подаем строку матрицы D, а на выходе получаем последовательность из 0 и 1. Это означает, что каждый элемент строки отнесен к тому или иному классу (элементу смеси). Мы используем гипотезу, согласно которой элементы возбуждения встречаются реже, чем обычные фрагменты в речи. Для этого подсчитываем число 1 в выходной последовательности и сравниваем это число с длиной последовательности. Если оно превышает половину длины последовательности, то последовательность инвертируется. Обработав все строки матрицы D, получаем новую матрицу F, состоящую из 0 и 1. Окончательное решение о принадлежности слова моменту возбуждения решается с помощью процедуры голосования. Для этого суммируются элементы в каждом столбце матрицы F, и если эта сумма превышает K/2, то принимается решение о принадлежности слова, определяющего столбец матриц, моменту возбуждения.


--">

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


Ваш e-mail является приватным и не будет опубликован в комментарии.