реклама на сайте
подробности

 
 
10 страниц V  « < 6 7 8 9 10 >  
Reply to this topicStart new topic
> Voice recognition with AVR
Огурцов
сообщение Oct 27 2008, 00:58
Сообщение #106


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Мучал весь вечер БПФ, результат - чуть выше нуля. Нормирование мощностей его еще ухудшило. Обучение приводит к усреднению и получается, чем больше образцов, тем хуже результат. Короткие блоки (менее 32..64 выборки при 8кГц) практически вообще не работают. В общем, предполагаю, что Фурье в чистом виде и иже с ними для решения задачи совершенно не подходит.
Все имхо.


http://www.tspu.tula.ru/res/lang/yazykozn/jaz_zn_6.htm

http://offline.computerra.ru/1997/226/938/
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 27 2008, 02:02
Сообщение #107


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



http://prostopr.ucoz.ru/publ/1-1-0-5
Go to the top of the page
 
+Quote Post
ATLab
сообщение Oct 27 2008, 04:30
Сообщение #108


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-06
Пользователь №: 13 785



Цитата(Огурцов @ Oct 27 2008, 10:58) *
Мучал весь вечер БПФ, результат - чуть выше нуля...В общем, предполагаю, что Фурье в чистом виде и иже с ними для решения задачи совершенно не подходит.

Мне нравится Ваш подход: сначала делать, а потом думать. smile.gif

Еще раз напоминаю, есть книжки по обработке речи. Я листал "Цифровая обработка речевых сигналов"
Рабинера и Шафера еще лет 15-20 назад. Впечатлился.
Для ленивых нашел ссылку в инете: http://dsp-book.narod.ru/R_Sh/R_Sh.htm
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 27 2008, 05:40
Сообщение #109


Йа моск ;)
******

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



Цитата
сначала делать, а потом думать.


Ну не знаю. defunct предложил алгоритм для реализации. Ссылался на работающий софт. Значит, знает что-то? Я просто реализовал то, что он описал словами.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 27 2008, 10:26
Сообщение #110


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(ATLab @ Oct 27 2008, 04:30) *
Мне нравится Ваш подход: сначала делать, а потом думать.

Тут не сначала и потом, а все вместе. Математики какие-нибудь наверно формулы умные пишут, когда думают, а я программы. Да полфорума, небойсь, тоже. А вторая половина - схемки паяют.

Книжка отличная, правда при беглом просмотре я не нашел решения. В принципе, я пытался реализовать канал кодер-декодер, примерно так, как описано там и в линках выше. Из самого интересного, пожалуй, когда получилось закодировать женский голос мужским тембром. Качества, как я уже говорил, еще нет, речь на грани различения, при том, что в английском, поэтому пока выложить нечего. Следующим этапом попробую Фурье "наоборот".
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 27 2008, 11:30
Сообщение #111


кекс
******

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



Цитата(Огурцов @ Oct 27 2008, 03:58) *
Короткие блоки (менее 32..64 выборки при 8кГц) практически вообще не работают.

для 8kHz 10ms выборка - 80 точек.

Цитата
Мне нравится Ваш подход: сначала делать, а потом думать.

Метод проверен на PC модели - работает.
А подстроить T выборки и Fd (когда уже есть реализация) дело нехитрое.
Go to the top of the page
 
+Quote Post
ATLab
сообщение Oct 27 2008, 12:07
Сообщение #112


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-06
Пользователь №: 13 785



Цитата(defunct @ Oct 27 2008, 21:30) *
Метод проверен на PC модели - работает.
А подстроить T выбрки и Fd - когда уже есть реализация дело нехитрое.

Не знаю... Что-то мне все же не очень верится.
Буду искренне рад, если получится!
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 27 2008, 18:32
Сообщение #113


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(defunct @ Oct 27 2008, 11:30) *
для 8kHz 10ms выборка - 80 точек.
Метод проверен на PC модели - работает.

Правильно. Одно дело знать, другое - проверить. Т.е. как вариант, размер блока напрашивается в 128 или 256 отсчетов. И цифра красивая.
Go to the top of the page
 
+Quote Post
ATLab
сообщение Nov 2 2008, 00:59
Сообщение #114


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-06
Пользователь №: 13 785



Ну и где ваш recognition?
Вышо "как всегда"?
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 2 2008, 02:31
Сообщение #115


кекс
******

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



Цитата(ATLab @ Nov 2 2008, 02:59) *
Ну и где ваш recognition?

Пока оттянут мировой финансовой заварушкой. sad.gif
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Nov 2 2008, 03:33
Сообщение #116


山伏
*****

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



Цитата(Rst7 @ Oct 25 2008, 14:08) *
Да ну? А я, например, считаю, что алгоритм весьма не глуп. Вычисляя спектр мощности мы выбрасываем из сигнала то, что не несет информации (например, фазу сигнала).

Нет, ну Вы думаете что пишете??? 07.gif Дак зачем это придумали, раз оно информации не несет??? Это, видимо, Вы выхватили из скупословного пояснения к работе графических или видео кодеков? Угадал?
Цитата(Rst7 @ Oct 25 2008, 14:08) *
Затем ищем ближайший из известных спектров.

krapula.gif
Цитата(Rst7 @ Oct 25 2008, 14:08) *
А вот что Вы предлагаете - мне пока не понять.

Ну вначале я предлагаю подумать...
Цитата(Rst7 @ Oct 25 2008, 14:08) *
Вы предлагаете вычислять корреляционную функцию заранее известных сигнало прямо c входными семплами???

А есть обходной путь? biggrin.gif Соственно, откуда эти заморочки со спектрами. Корреляция(отличается от свертки тем, что одна из функций обращена во времени) - есть сама философская суть распознавания. Даже в разговорной речи: коррелируемость - взаимосвязь, похожесть. Посидите, "вручную" над примером из 4-х точек. Очень "обогащает восприятие". smile.gif . Почитайе книгу по ЦОС для школьнаГов - аФФтар Юкио Сато - Обработка сигналов, первое знакомство. Только реально почитайте, а не просмотрите - у него там потрясающий прием - объяснение корреляции как угла между двумя N-мерными векторами. Никогда не встречал такого доходчивой подачи материала, в "больших и толстых" книгах. Представляете как работает FIR-фильтр? Как он катиЦЦо по непрерывной череде отсчетов, поглощая один отсчет и выдавая в ответ тоже один. Скажу Вам по секрету это и есть коррелятор smile.gif ))) (ну или свертка, смотря как h(t) записать). И максимальные отсчеты у него на выходе тогда когда входной сигнал коррелирует с эталонным. Не поразительно ли, что на этих структурах можно строить в том числе и частотные фильтры! smile.gif Но... Свертку влоб вычислять довольно проблематично(ресурсов много надо). И вот отсюда и все эти пляски с заменой FIFO алгоритма, на блочные, с помощью однозначных отображений да еще притом таких, сложность вычисления которых порядка N*LogN или меньше. Вот собственно, зачем этот переход к Фурье, например. Это способ быстро вычислять корреляцию/свертку. Но теоремы о спектрах еще раз напомнить? Там нет ничего о том, что свертке во временнОй области соответствует перемножение в области энергетического спектра! Мало того, что Фурье (да и косинусное, у которого преимущество только в отсутствии комплексной арифметики) имеют кучу недостатков связанных с тем, что при их вычислении ищется корреляция с бесконечными функциями на конечном интервале, так Вы еще и теряете однозначность преобразования, добавляя при этом тучу лишних арифметических действий переходя к спектрам мощности. Причем выбрав абсолютно тупиковый метод, уже пошли споры об ассемблерной оптимизации. А потом удивление, "шото оно не тах работаеть" smile.gif .
Цитата(Rst7 @ Oct 25 2008, 14:08) *
И что же Вы получите на выходе? Банально, что делать с фазой сигнала, которая не несет информации, но может сильно меняться?

1024 раза прокомментировал - у Вас неверное представление о понятии спектра. Да и не так уж силно, всего-то 2*PI ))).
Цитата(defunct @ Oct 26 2008, 00:31) *
Вы вероятно упустили что Fd у нас 3.2kHz, а не 8, т.е. мы отбрасываем 0..100Hz, а не 0..400Hz.

Это с какой такой радости??? 07.gif Неужели голосовой тракт подстраивается под частоту дискретизации???

Вот смотрите, я играю на балалайке. Допустим у меня основной спектр лежит от 500 Hz до 5000 Hz - это обусловленно физической природой балалайки - длинной и упругостью струн, размером деревянного резонатора, моей игрой etc. Какая разница чем это оцифровывать диктофоном(8000 sps, даже все "не войдет") или студийным магнитофоном(96 000 sps)? Что изменится физическая модель балалайки? 07.gif
Цитата(defunct @ Oct 26 2008, 00:31) *
Объясните нам темным зачем нужна фазовая составляющая? Если она для каждой выборки (32 точки) будет случайным числом.

А почему это она будет случанйм числом??? 07.gif ????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????
Вот ежели сигнал с радара распознавать она будет неслучайна, а в голосе случайна?
????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????
В чужую голову не заглянуть. я просто не могу понять как Вы это представляете. Но представляете неверно!
Амплитудная составляющая показывает отношение к амплитудам базисных функций а фазовая к их фазам (синус и еще один синус сдвинутый на 90 градусов smile.gif , если это Фурье). Откуда здесь случайность?
Если Вы имеете ввиду то, что система будет срабатывать с произвольным запаздыванием - так надо делать что бы этого небыло. Но неужели вы(3-и основных тут моска biggrin.gif ) не понимаете, что и амплитудные составляющие при произвольном запаздывании будут иные - ну там звук "е" принятый весь в виде колокольчика(по времени) или "с половины" даст другой спектр мощности.

Цитата(Огурцов @ Oct 26 2008, 01:23) *
Мне вот что подумалось, DRUID3, Вы наверно знаете что-то энтакое...но нам не говорите. Но намекаете постоянно. Чего уж там церемониться, режьте правду-матку, прямо в лоб, а не какими-то намеками, которые мы не все равно ж не сможем понять.

Ну, по-моему я русским по белому написал что применил бы FIR или, в крайнем случае, FWT, с отбрасыванием самой низкочастотной компоненты. Но насчет что-то этакого - Вы правы, да, признаюсь, я знаю курс математики за 10-11 класс...

P.S.: 2ATLab не надо давить аФФтАритетом "просмотренных" Вами в юности аФфтАроФФ. "двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"(А.Довженко) smile.gif

P.P.S.: Уже очень поздно, и меня задолбало пЕсать. Если что-то подал неполно - пишите, постараюсь ответить. А пока устремите ка свой взор сюда если все-таки не понравится путь с FIR...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 2 2008, 04:46
Сообщение #117


кекс
******

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



Цитата(DRUID3 @ Nov 2 2008, 05:33) *
Вот ежели сигнал с радара распознавать она будет неслучайна, а в голосе случайна?

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

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

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

Цитата
не понимаете, что и амплитудные составляющие при произвольном запаздывании будут иные - ну там звук "е" принятый весь в виде колокольчика(по времени) или "с половины" даст другой спектр мощности.

Произвольном запаздывании чего? Fd будет выдержана точно, без каких-либо запаздываний.
Паузы между выборками (а не между отсчетами) возможны, ну и что с того? Равносильно старту сигнала в произвольный момент времени.
Спектр мощности чуть-чуть поплывет никто не спорит, но не настолько чтобы совпасть со спектром совершенно другого сигнала. имеется в виду что "e" принятый "с половины", будет все равно ближе к "e" "с начала", а не к "a" "с половины".

Цитата(DRUID3 @ Nov 2 2008, 05:33) *
Какая разница чем это оцифровывать диктофоном(8000 sps, даже все "не войдет") или студийным магнитофоном(96 000 sps)? Что изменится физическая модель балалайки? 07.gif

Очевидно, при одинаковом количестве отсчетов на выборку, изменится ширина полосы спектра,
При Fd 3.2kHz и выборке 32 отсчета - ширина одной полосы спектра составляет (Fd/32) = 100HZ, а не 400.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Nov 2 2008, 05:24
Сообщение #118


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(defunct @ Nov 2 2008, 07:46) *
Вместо километровых несодержащих полезной информации строк, состоящих из знаков "?", лучше все же поясните с какого боку Вы видите необходимость сохранения фазовой составляющей.
Для разрешения "спора" о необходимости сохранения фазы предлагаю всем желающим сделать в MATLAB'е следующий эксперимент:

1. Фрагмент речи длиной в несколько секунд записываем через микрофон с помощью звуковой карты.
2. Делим фрагмент на блоки по 32 (или 64,128,256..) сэмпла и далее обрабатываем поблочно.
3. Для каждого блока вычисляем FFT.
4. Для каждого блока обнуляем фазы всех гармоник.
5. Для каждого блока вычисляем IFFT.
6. Полученный фрагмент речи воспроизводим через звуковую карту.

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

Сообщение отредактировал blackfin - Nov 2 2008, 05:25
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 2 2008, 07:07
Сообщение #119


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(DRUID3 @ Nov 2 2008, 03:33) *
Ну, по-моему я русским по белому написал что применил бы FIR или, в крайнем случае, FWT, с отбрасыванием самой низкочастотной компоненты. Но насчет что-то этакого - Вы правы, да, признаюсь, я знаю курс математики за 10-11 класс...

Извините, за флудом, видимо, не заметил акцента. Посмотрел линк на WT - нечто похожее на часть моего диплома, который я защищал примерно в то время ))) . Если помните - говорил, что FT можно проводить не при помощи синусов, а при помощи меандра. Т.е. умножаем не на синус, а на меандр, т.е. на +1 и на -1, т.е. элементарно складываем/вычитаем, как и в WT. Теперь далее. То, о чем писал постом выше, про FT наоборот. Очень похоже. Т.е. преобразование имеет наибольшее разрешение на низких частотах, там, где максимальная мощность, т.е. результирующая мощность, видимо, должна получиться равномерной, в отличие от FT, когда мощность плавно, но круто спадает для более высоких гармоник. Только я имел ввиду линейный (n), а не 2^n шаг. Что должно дать высокое разрешение по низким частотам, хотя сложность будет пропорциональна квадрату размера блока. Размер блока, как и говорил, брать не более 256 отсчетов, тогда сумма 8-битных отсчетов уместится в два байта. Нужно пробовать. Мне кажется, мой вариант д.б. качественным, хотя автор WT должно быть прав и "это излишняя трата вычислительных ресурсов".
Go to the top of the page
 
+Quote Post
Rst7
сообщение Nov 2 2008, 07:46
Сообщение #120


Йа моск ;)
******

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



Цитата
Для разрешения "спора" о необходимости сохранения фазы предлагаю всем желающим сделать в MATLAB'е следующий эксперимент


К сожалению, в таком варианте выходной сигнал будет с большими помехами в связи с тем, что на стыках IDFT будут выбросы. И они будут слышны, здорово забивая полезный сигнал. Что может быть истолковано как провал smile.gif

Предлагаю другой способ - пропустить речь через широкополосный фазовращатель, например, низкочастотный фазовращатель в SSB-формирователе с фазовым методом. Собственно, мне результат этого экперимента известен - никаких отличий не будет слышно wink.gif

А вот корреляции с исходными семплами уже не будет


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

10 страниц V  « < 6 7 8 9 10 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01513 секунд с 7
ELECTRONIX ©2004-2016