|
|
  |
Voice recognition with AVR |
|
|
|
Oct 22 2008, 09:03
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(Rst7 @ Oct 22 2008, 11:51)  Я бы, конечно, предпочел ответ от defunct'а. Но если так, то, видимо, DCT пролетает как фанера, из него нельзя получить спектр мощности.  а зачем Вам спектр мощности? Вы сравниваете силу голоса? P.S.: аФФтара харош бредить, я признаю ваши(всех) заслуги в других областях, но вы очень сбиваете новичков такими "интеллектуальными забавами". ...частот от 400 до 2400 уже будет достаточно для распознавания (а распознавания команд и того уже). Женский и мужской голос разно тембрально окрашены внутри этого диапазона. ...FFT на 32 точки при 8 ksps распознает фонемы что-ли?  ...более-менее приемущества FFT при быстрой одномерной свертке ощущаются начиная с 128 отсчетов. На 32 выгоднее написать FIR в лоб, причем это и на asm элементарно.
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Oct 22 2008, 09:09
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(Rst7 @ Oct 22 2008, 12:51)  Я бы, конечно, предпочел ответ от defunct'а. Но если так, то, видимо, DCT пролетает как фанера, из него нельзя получить спектр мощности. Ну так категорично тоже нельзя =) Если немного применить мозг DCT тоже годится, только надо его "нетривиально использовать". Всё разжёвывать не буду, подскажу только идею: DCT пренобразовывает в базисы косинусов. т.е. не хватает только второй составляющей Фурье - синусов. Далее: sin(x) = cos(x - pi/2). ИМХО всё-таки FFT получится проще и быстрее.
|
|
|
|
|
Oct 22 2008, 09:45
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата а зачем Вам спектр мощности? Я может не так выразился, но под спектром мощности я имел в виду набор из мощностей всех спектральных составляющих в наших 32х семплах. Потом мы его сравниваем с эталоном, видимо, кстати, после нормирования, этот момент мы тоже упустили. Давайте все-же подождем defunct'а, пусть он уточнит данные моменты. Цитата ...частот от 400 до 2400 уже будет достаточно для распознавания (а распознавания команд и того уже). А возражений и нет. Только у нас границы 50-1600... Цитата Ну так категорично тоже нельзя =) Можно. Как Вы себе видите получить вторую половину спектра? Ту, которая синусная. Цитата Можно еще думать так "если FCT однозначное преобразование временного ряда, и мы знаем как во временнОй области получить мощность можем ли мы описАть переход его в область косинусного разложения?" Думать можно что угодно. Вопрос в том, будет ли это оптимальной реализацией?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Oct 22 2008, 15:38
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Rst7 @ Oct 22 2008, 11:09)  Слушайте, а мы наверное один момент упустили. После FFT надо получить мощности на каждой частоте, т.е. sqrt(I*I+Q*Q), я прав? Обязательно! Только я не думаю, что мы упустили этот момент, это предполагалось как само собой разумеющееся. Цитата Но если так, то, видимо, DCT пролетает как фанера, из него нельзя получить спектр мощности. Не совсем, просто это отразится на методе сравнения - придется подстроиться под попугаи. Цитата(DRUID3 @ Oct 22 2008, 11:17)  Я тоже занимался таким-же(искал корреляцию через RealFFT), но совсем не так!  И что-то мне подсказывает - Вы не на верном пути... Ничего удивительного, что разные люди используют разные методы.
|
|
|
|
|
Oct 22 2008, 19:23
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Можно я еще встряну ? Вы о каких герцах говорите, о звуке или о частоте преобразования ? Кодек на 8кгц дает полосу до 3кгц, но у него _встроенный_крутой_ фильтр. Если делать то же самое, но на рассыпухе и иметь на входе 1,6кгц, то частота преобразования может оказаться даже выше 8кгц, если не сказать намного выше. И кроме того, пусть высокий женский голос, максимум - 1кгц, но в речи присутсвуют шипящие, звенящие и разные другие звуки, и если урезать полосу ниже 3кгц, скажем пусть 1.6, я думаю, все эти звуки будут сильно искажены. И результат тоже. Если же быстродействия для обработки 8 килосэмплов не хватит (как на практике показали выше, AVR должна работать в 10 раз быстрее BF ))))) ) можно разделить обработку на несколько корпусов, не в смысле параллельно, а в смысле последователно - в одном, например, делать FFT, в другом искать фонемы, в третьем искать команды. А четвертый будет уже лампочку включать.
|
|
|
|
|
Oct 23 2008, 10:22
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Можно я еще встряну ? Конечно нельзя, что за вопрос! Шютка  Теперь по теме. Сделал я БПХ необходимого размера. 1948 тактов, 1648 байт кода. Что дальше делаем? Получение спектра мощности, его нормирование и поиск ближайшего в заранее заготовленных? Кстати, для мощности ведь будет только 16 значений, а не 32.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Oct 23 2008, 11:16
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Rst7 @ Oct 23 2008, 13:22)  Теперь по теме. Сделал я БПХ необходимого размера. 1948 тактов, 1648 байт кода. Что дальше делаем? Получение спектра мощности, его нормирование и поиск ближайшего в заранее заготовленных? Да, в заренее заготовленные кстати не забываем положить спектр белого шума, спектр тишины. Цитата Кстати, для мощности ведь будет только 16 значений, а не 32. 15 - нижнюю полосу спектра (постоянная составляющая и 50hz фон) можно сразу выбросить.
|
|
|
|
|
Oct 23 2008, 11:38
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Да, в заренее заготовленные кстати не забываем положить спектр белого шума, спектр тишины. все мощности равны максимальной?  Цитата 15 Да, конечно, эта полоса нас не интересует. Ну и поделитесь уже заготовками (в смысле, готовыми образцовыми спектрами)...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Oct 23 2008, 13:38
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Rst7 @ Oct 23 2008, 12:01)  Ну покажите мастерство. 2000 тактов в Вашем распоряжении. Итого, мы хотим увидеть 200. Ну эта...я пока еще за вами подсматриваю - самому становиться Александром Матросовым что-то не очень хочется. А если по существу, тема в общем, мне интересная, но как я уже говорил, сначала хотелось бы видеть задчау решенной, а только после заниматься оптимизацией, в т.ч. загонять такты в AVR. Или еще куда. А пока вот выкопал из хлама микрофон, нашел рабочие исходники для С# по работе с wavein/waveout (для Delphi я сам когда-то написал, спектроанализатор в т.ч., но Delphi сейчас нет, а переписывать было лениво) - жду когда здесь что-то вменяемое появится, чтобы помоделировать.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|