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

 
 
10 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Voice recognition with AVR
Огурцов
сообщение Oct 20 2008, 16:07
Сообщение #31


Гуру
******

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



Цитата(Rst7 @ Oct 20 2008, 14:23) *
Не передергивайте. Вы начали про "восьмибитные мипсы".

Ну так вы предложение до конца дочитайте. Восьмибитные там значило, что на 16-битных операндах скорость будет меньше на порядок, а на 32-битных - на два порядка. Это чтобы человек 20 мипсами не обольщался.

Цитата(Rst7 @ Oct 20 2008, 14:23) *
Да и как бы смотрелся тот-же BF в выключателе света?

Нормально. При условии, что включал бы и выключал свет, когда его попросят, а не когда попало, и не с десятой попытки, и звонил бы васе, а не пете. А не так, как в двух выше приведенных ссылках - в одной надежно распознаются только три команды, а во второй - слово "да" и только в условиях тишины. Ну т.е. мне совершенно не нужен выключатель, который перестает работать, когда у меня включена музыка или телевизор. А если он еще команды телевизора начнет исполнять, вообще будет смешно несмешно.
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 20 2008, 16:35
Сообщение #32


кекс
******

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



Цитата(Огурцов @ Oct 20 2008, 19:07) *
Ну так вы предложение до конца дочитайте. Восьмибитные там значило, что на 16-битных операндах скорость будет меньше на порядок

Для подавляющего большинства операций (сложение, сдвиг, сравнение, копирование) - ровно в два раза. Для умножения чуть больше в 3-5 раз. Для некоторых операций скорость даже выросла (напр мастабирование - деление на 2^8 будет быстрее т.к. не нужно делать &).

Так откуда взялась разница на порядок?

Цитата(Огурцов @ Oct 20 2008, 19:07) *
Нормально. При условии, что включал бы и выключал свет, когда его попросят, а не когда попало, и не с десятой попытки, и звонил бы васе, а не пете. А не так, как в двух выше приведенных ссылках - в одной надежно распознаются только три команды, а во второй - слово "да" и только в условиях тишины.

Тогда уж лучше обычный комп. Пусть распознает и раздает мелким девайсам команды.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 20 2008, 17:15
Сообщение #33


Гуру
******

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



Цитата(defunct @ Oct 20 2008, 16:35) *
Так откуда взялась разница на порядок?

Распишите на AVR умножение двух 16-битных операндов. Двух 32-битных операндов. (Можно подсмотреть, например у GCC)

Цитата(defunct @ Oct 20 2008, 16:35) *
Тогда уж лучше обычный комп.

Вместо выключателя по компу ? Однако...
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 20 2008, 17:37
Сообщение #34


кекс
******

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



Цитата(Огурцов @ Oct 20 2008, 20:15) *
Распишите на AVR умножение двух 16-битных операндов. Двух 32-битных операндов. (Можно подсмотреть, например у GCC)

32-х битные расписывать не буду, нет смысла. Вначале надо разобраться с 16x.
Решение тупо в лоб:


Код
.def AL = R24
.def AH = R25
.def BL = R22
.def BH = R23
.def CL = R20
.def CH = R21

;--> AX - op1
;--> BX - op2
;<-- CX - result
Mul16:
    mul  AL, BL; 2 такта
    movw CH:CL, r1:r0; 1 такт
    mul  AL, BH; 2 такта
    add  CH, r0; 1 такт
    mul  AH, BL; 2 такта
    add  CH, r0; 1 такт
    mul  AH, BH; 2 такта
    add  CH, r0; 1 такт
    ret; <-- не считаю т.к. в программе использовался бы макрос

С ограничениями - произведение не может быть больше 65535.
итого 12 тактов против 2. (в 6 раз, однако не на порядок).
Таблично можно сделать быстрее.

Цитата
Вместо выключателя по компу ? Однако...

Вы предлагаете вместо каждого выключателя по DSP. А я предлагаю 1 комп вместо всех выключателей.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 20 2008, 18:26
Сообщение #35


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

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



Цитата(zltigo @ Oct 20 2008, 17:49) *
Надо отличать два варианта распознавания - на более-менее на лету и посфактум. В случае сименсовского голосового набора по стартовой отмашке ...

Точно. Давно не брал в руки своего Осла, подзабыл уже. Но помнится мне, что в весьма он недолго занимался постобработкой. Все таки надо посмотреть, как он это делает, может натолкнет на какие-нибудь мысли.

Цитата(defunct @ Oct 20 2008, 20:37) *
А я предлагаю 1 комп вместо всех выключателей.

Ну или один матерый ДСП. Идея - зачот smile.gif


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


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Oct 20 2008, 20:26) *
Точно. Давно не брал в руки своего Осла, подзабыл уже. Но помнится мне, что в весьма он недолго занимался постобработкой.

Обычно не долго, поскольку обработка идет уже и при записи слова, НО важнее, что по отмашке, а не постоянно анализируя поток.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 20 2008, 19:28
Сообщение #37


Гуру
******

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



Цитата(defunct @ Oct 20 2008, 17:37) *
mul AL, BL; 2 такта
movw CH:CL, r1:r0; 1 такт
mul AL, BH; 2 такта
add CH, r0; 1 такт
mul AH, BL; 2 такта
add CH, r0; 1 такт
mul AH, BH; 2 такта
add CH, r0; 1 такт

Ну так сколько чернил для шестнадцатого класса выдавливается из AVR ?

Цитата(defunct @ Oct 20 2008, 17:37) *
Таблично можно сделать быстрее.

А думать пробовали ? )

Цитата(defunct @ Oct 20 2008, 17:37) *
А я предлагаю 1 комп вместо всех выключателей.

Я комп даже на лампочку в туалет не поставлю. Ну мало ли прижмет срочно, а будешь полчаса упрашивать свой выключатель, как дурак, свет включить )


Цитата(zltigo @ Oct 20 2008, 18:30) *
Обычно не долго, поскольку обработка идет уже и при записи слова, НО важнее, что по отмашке, а не постоянно анализируя поток.

По отмашке идет _только_ обработка словаря. Это можно и на PC сделать. Да хоть на крейе каком-нибудь. А вот разбор команд - в реалтайм, как ни крути, без отмашек, в шуме и с прочими прелестями.
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 21 2008, 14:11
Сообщение #38


кекс
******

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



Цитата(Огурцов @ Oct 20 2008, 22:28) *
Ну так сколько чернил для шестнадцатого класса выдавливается из AVR ?

но не на порядок же больше чем для восьмого. log2 != log10.

Цитата
А думать пробовали ? )

А что, смущает размер таблицы? да многовато.. ;> ну можно умножитель на CPLD прикрутить wink.gif
дорого, но тем не менее потенциальная возможность ускорить с 12 до 6-ти тактов (4xOUT / 2xIN ) или 8-ми тактов (2xOUT, 2xLD) есть.

Цитата(Огурцов @ Oct 20 2008, 22:28) *
Я комп даже на лампочку в туалет не поставлю. Ну мало ли прижмет срочно, а будешь полчаса упрашивать свой выключатель, как дурак, свет включить )

Главное винду не ставить ;>
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 21 2008, 14:56
Сообщение #39


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Oct 20 2008, 16:37) *
С ограничениями - произведение не может быть больше 65535

Если с такими ограничениями, то последние две инструкции не нужны
Код
    mul  AH,BH ; 2 такта
    add  CH,r0 ; 1 такт

Так что минус три такта, остаётся 9.

А вообще, добавлять ro к CH это ошибка. Добавлять надо к третьему байту, которого в вашем случае нет.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 21 2008, 15:01
Сообщение #40


кекс
******

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



Цитата(=GM= @ Oct 21 2008, 17:56) *
Если с такими ограничениями, то последние две инструкции не нужны
А вообще, добавлять ro к CH это ошибка. Добавлять надо к третьему байту, которого в вашем случае нет.

Да да!
Спасибо что заметили. Итого 9 тактов!
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 21 2008, 15:53
Сообщение #41


Гуру
******

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



Цитата(defunct @ Oct 21 2008, 14:11) *
но не на порядок же больше чем для восьмого. log2 != log10.

Не знаю, как по-вашему, для меня один порядок - десять раз. Сэм-восэм или там 12-20 - тоже подходят, я не зануда.

Цитата(defunct @ Oct 21 2008, 14:11) *
А что, смущает размер таблицы?

Бред ?


Цитата(=GM= @ Oct 21 2008, 14:56) *
Если с такими ограничениями, то последние две инструкции не нужны

Не вдаваясь: тогда округление логично добавить ?
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 21 2008, 16:02
Сообщение #42


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Огурцов @ Oct 21 2008, 14:53) *
Не вдаваясь: тогда округление логично добавить?

Куда?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 21 2008, 16:07
Сообщение #43


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

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



Нет, народ. Это все измерение пиписек. При таком подходе, конечно, AVR не хватит. Надо подходить к решению (к оптимизации решения) задачи в комплексе. Если бы я банально собрал jpeglib, то на AVR оно еле-еле бы шевелилось.

Ну простой пример из моего кодера - в DCT, хоть оно и целочисленное, но удалось уменьшить разрядность умножения (точнее, количество операций mul) в связи с тем, что все коэффициенты, кроме одного не превышают 1, а тот, который превышает, тот так обрабатывается - b=a+(k-1)*a. А там этих умножений - как деревьев, которые все в гробах, - тьма...

И много других хитрых моментов есть.

Вообщем, пока тут всё голословные утверждения, хватит AVR или не хватит. И будут они голословными, пока нет хотя-бы наброска алгоритма.


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


кекс
******

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



Цитата(Огурцов @ Oct 21 2008, 18:53) *
Не знаю, как по-вашему, для меня один порядок - десять раз. Сэм-восэм или там 12-20 - тоже подходят, я не зануда.

так ежкин кот, сказал же, отличие по скорости между 8x операндами и 16x операндами в 2 раза.
До порядка далеко.

Цитата
Бред ?

Такой же как и ставить DSP в выключатель.

Цитата(Rst7 @ Oct 21 2008, 19:07) *
Вообщем, пока тут всё голословные утверждения, хватит AVR или не хватит. И будут они голословными, пока нет хотя-бы наброска алгоритма.

Вроде mse говорил что щелкал FFT на m48 в real-time. Вот только сейчас не вспомню где искать. ;>
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 21 2008, 16:24
Сообщение #45


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

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



Цитата
говорил что щелкал FFT на m48 в real-time.


Ну мы, например, в аудио-тахометре (который измеряет частоту вращения по звуку) тоже не особо извращаемся, тоже FFT на m16. Раз в секудну обновляем показания. Клиенты вполне довольны smile.gif

Весь вопрос, какого размера FFT нужен. И еще, не следует забывать, что FFT не самоцель. Например, в JPEG-кодере на обычных камнях DCT занимает примерно 50% и примерно 50% занимает квантизация и хаффман. А на BF - 25% DCT (конечно, многоствольные MAC-операции, все дела), остальное - 75%... Вот такая вот загогулина получается.

Еще раз повторюсь, алгоритм надо рассматривать в комплексе.


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

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

 


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


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