Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.6.77] |
|
Сообщ.
#1
,
|
|
|
Приветствую.
Разрабатываю дикторонезависимую систему распознавания речи пофонемную. Использую НС Кохонена, на вход подаю MFCC коэффициенты фрейма (около 10-16 мс, точно уже не помню), на небольшом словаре фонем часто срабатывает корректно (60-70%), но бывает прихватывает с собой еще несколько, например, после "О" может "А" вставить, будто затухание идет, и смотрит следующую фонему. Стоит ли добавить дельту и дельту дельты, а энергию? Или скорее всего энергия не подойдет - так как у каждого диктора своя. Находил формулы дельты delta[i]=(c(i+1)-c(i-1))/2. Но при начальном i и конечном, как быть? Если приравнивать, т.е. (c(0)-c(0))/2.. Тогда ноль будет.. |
Сообщ.
#2
,
|
|
|
Цитата на вход подаю MFCC коэффициенты фрейма Обычно подают 20-30 фреймов. Чем больше фреймов тем больше точность распознавания. Цитата часто срабатывает корректно (60-70%) На стандартном тесте TIMIT должно быть 77% по крайней мере Цитата Стоит ли добавить дельту и дельту дельты, а энергию? Если много фреймов давать сразу, то не нужно. Цитата Или скорее всего энергия не подойдет - так как у каждого диктора своя. C0 достаточно вместо энергии. Обязательно CMN нормализацию нужно делать - среднее отнимать. Цитата Если приравнивать, т.е. (c(0)-c(0))/2.. Тогда ноль будет.. Ноль это не страшно, обычно так и делают. |
Сообщ.
#3
,
|
|
|
Я использую кольцевой буфер для записи с микрофона. Разбиваю на фреймы, применяю весовую функцию, FFT, нахожу спектр амплитуд |Sn|=sqrt(Re^2+Im^2). Нужно ли логарифмировать спектр амплитуд? В некоторых источниках видел, но их крайне мало (20%). Я так понимаю это для кепстра.. Определяю мел-шкалу, строю 20 треугольных полосных фильтров от 150Гц до 4000Гц, раньше было 300-3400, но решил расширить диапазон, для лучшего распознавания.. Пока сомнительно, хотя иногда помогает. Вычисляю энергию для каждого фильтра Ln(Sum(|Sn|^2*Filter)). Вычисляю DCT, получаю 12 MFCC, не считая 0-го, его исключаю..
Сразу несколько фреймов? Я думал, что в 1 фрейме есть сама фонема.. Весовые коэффициенты НС задаю отдельно для каждого кластера. Пробовал случайными числами, с последующей корректировкой - такое себе.. Это при обучении mfcc фрейма подаю, а при работе, там потоково идет, т.е. по фреймам.. Нужна ли энергия для дикторонезависимой? Много статей видел, где для обработки используют 12 mfcc + энергия, 13 дельт, 13 дельт дельт = 39. Но это скорее всего для распознавания диктора.. А если использовать для обучения усиление микрофона (+20), в настройках windows, может потом повлиять на результат, да и при использовании? Добавлено CMN. y[n]=x[n]-1/N*(Sum(x[n]). Где сумма n=1..N, где N - количество коэффициентов MFCC? Таким образом y[n]=x[n]-Sum(x[n])/12 ? Добавлено Хотя видел, что N - количество фреймов на произнесении.. А если 1.. |
Сообщ.
#4
,
|
|
|
Обучаю по кластерам так: задаю кластеру определенную фонему. Изначально нулевые веса, произношу фонему, по нажатию на кнопку, в момент ее нажатия, берутся коэффициенты из текущего фрейма. Если веса были до этого нулевые, то записываю нормализованные входные данные, иначе нормализую их и корректирую веса циклом w[j]=w[j]=alpha*(input[i]-w[j]), где alpha - скорость обучения = 0.7,0.6..0.1
|
Сообщ.
#5
,
|
|
|
Цитата Обычно подают 20-30 фреймов. Фонемы могут быть и быстрее же, это для слогов больше подойдет, я думаю |
Сообщ.
#6
,
|
|
|
Если брать энергию C0, то в нормализации ее не использовать, верно?
|
Сообщ.
#7
,
|
|
|
Цитата Я думал, что в 1 фрейме есть сама фонема.. Чем больше контекста, тем точнее определяется звук. Цитата Если брать энергию C0, то в нормализации ее не использовать, верно? Нет, не верно. Нормализовать нужно. |
Сообщ.
#8
,
|
|
|
Цитата Чем больше контекста, тем точнее определяется звук. Предположим берем 10 фреймов. На вход подаем, если по 13 параметров на 1 фрейм = 130, или находим те же 13 сразу для всех? Добавлено А так, пока что на небольшом наборе фонем, если пофреймово, помимо нужной фонемы может другая прихватиться вместе с ней на вывод, только если паузу ставить на ввод, после определения фонемы, но это частично только поможет А то, что несколько фреймов, это по времени сжимать, растягивать скорее всего понадобится, например DTW.. но это уже не к НС |
Сообщ.
#9
,
|
|
|
Как дельту энергии считать, она же одна? Если только совместно со всеми коэффициентами..
|
Сообщ.
#10
,
|
|
|
НС у меня неправильно организована, переделаю, лучше может станет..
|