Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Распознавание речи
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
VAHOO
Я знаю алгоритм для распознавание речи. Слова через микрофон проходит в фильтр, который собран на операционниках, типичные частоты для человеческого голоса находятся на интервале 100 гц - 2 000 гц, по этому используется Фильтр Высокого прохода, полосовой Фильтр и фильтр низкого прохода (аналоговый), после этого сигнал входит в микроконтроллер Т.е. на АЦП (скажем ATmega32) , здесь уже используются цифровые фильтры (Butterworth, Chebishev1,Chebishev2) , уже 'обработанный сигнал' который включает в себе цифры, сравнивается уже заранее хранивший в памяти отпечатков пальца словаря, метод сравнении можно использовать эвклидовые расстояния (сравнение как две векторы) или корреляционный метод, а словарь отпечатки палцов можно получить через MATLAB использовать Быстрое Преобразование Фурье, этот метод работает только для одного человека, То есть метод работает только для человека который говорил слово, если другой человек скажет тот же слово алгоритм не будет распознать. Мне надо такой алгоритм чтобы был универсальным, то если я в памяти микроконтроллера занес отпечатки пальца слова система работал для всех, то есть если все люди говорили тот же слова, система распознавания работал.
И скажите пожалуйста, чем отличаются одно и тот же слово сказанные разными людьми?
Буду рад лубой информации. help.gif
VDG
Цитата(VAHOO @ Aug 28 2007, 23:09) *
Слова через микрофон проходит в фильтр
...
сравнивается уже заранее хранивший в памяти отпечатков пальца

Плохая у вас травка. wacko.gif

Цитата
И скажите пожалуйста, чем отличаются одно и тот же слово сказанные разными людьми?

Туда http://forum.aicommunity.org/ идите, там объяснят (если захотим smile.gif ).
VAHOO
Я армянин, у меня образование армянское, по этому извиняюсь smile.gif)
sorry!
Degun
Цитата(VAHOO @ Aug 28 2007, 23:09) *
....
И скажите пожалуйста, чем отличаются одно и тот же слово сказанные разными людьми?
Буду рад лубой информации. help.gif

Речь одного человека отличается от речи другого индивидуальными особенностями (тембром и прочее), которая кодируется формой сигнала речи. Понимаемость речи сохранится даже в том случае, если её клиппировать. Клиппирование сигнала - это процедура, отбрасывающая форму сигнала, но сохраняющая информацию о пересечении сигналом нулевого уровня. Т. е. алгоритм клиппирования состоит в следующем: если сигнал больше нуля, то его амплитуда приравнивается, допустим, +1, а если сигнал меньше нуля, то к -1. После операции клиппирования устраняются практически все индивидуальные особенности речи, но сохраняется информация о смысле произнесенного. Речь при этом имеет характерный металлический оттенок. Соответственно систему распознавания речи необходимо реализовывать на основе именно клиппированной речи.
И ещё: речь, как ни странно, состоит из так называемых фонем, т. е. элементарных звуков (не путать с буквами алфавита), которых в русском языке порядка 60. Соответственно из клиппированной речи вам нужно выделять именно фонемы, которые затем переводить в слова (если стоит именно такая задача).
muravei
Цитата(Degun @ Sep 6 2007, 10:01) *
Понимаемость речи сохранится даже в том случае, если её клиппировать.

И даже если снять огибающую и промодулировать ей любой разумный сигнал.
bambr
А Атмега потянет для такой задачи? Или вы все таки основную обработку на ПК в Малабе делать будете?
Degun
Цитата(muravei @ Sep 6 2007, 10:20) *
И даже если снять огибающую и промодулировать ей любой разумный сигнал.

Возможно. Возможно даже, что разборчивость сохранится, если сложить речь с любым разумным сигналом, и возможно даже, если умножить её на любой разумный сигнал. Необходимо стремиться к упрощению обработки, а не к её усложнению. Смысл применения операции клиппирования в том, чтобы привести речевой сигнал к виду наиболее похожему на сигнал с ШИМ, т. к. речь достаточно качественно можно представить именно в виде сигнала с ШИМ.
VDG
Цитата(Degun @ Sep 6 2007, 10:01) *
Понимаемость речи сохранится даже в том случае, если её клиппировать.

Правильно - "распознаваемость". И обеспечивается она возможностями мозга.
Мозг то умеет работать даже с такой "бедной" информацией - восстанавливая входной поток, а для программиста задача ещё более усложняется.

Цитата
но сохраняется информация о смысле произнесенного.

Ну.... не смысл конечно smile.gif , придаваемый звуку субъектом, а корреляция с известным мозгу паттерном.

Рекомендую ещё раз сходить на сайт, который я указал выше. По крайней мере, не потратите время на велосипед.
Doka
to VAHOO

посмотрите ссылки в этой теме
Degun
Цитата(VDG @ Sep 8 2007, 00:07) *
Правильно - "распознаваемость". И обеспечивается она возможностями мозга.
Мозг то умеет работать даже с такой "бедной" информацией - восстанавливая входной поток, а для программиста задача ещё более усложняется.

Потребителем же информации является человек, поэтому можно рассчитывать на великолепные возможности его мозга.
Цитата(VDG @ Sep 8 2007, 00:07) *
Ну.... не смысл конечно smile.gif , придаваемый звуку субъектом, а корреляция с известным мозгу паттерном.

Но в итоге это же выливается в смысл речи
Grt
Цитата(Degun @ Oct 8 2007, 13:57) *
Потребителем же информации является человек, поэтому можно рассчитывать на великолепные возможности его мозга.

Но в итоге это же выливается в смысл речи


Если речь идет о распознавании речи, то на сегодняшний момент лучше скрытых марковских процессах (HMMs) не придумали, далее соответственно уже в сторону HMMs - алгоритмы витерби: прямой проход, обратный проход - декодирование слоф, фонем и т.д. Основные методы анализа: фурье, далее кепстральные коэффициенты и их производная.
Degun
Цитата(Grt @ Oct 9 2007, 00:03) *
Если речь идет о распознавании речи, то на сегодняшний момент лучше скрытых марковских процессах (HMMs) не придумали, далее соответственно уже в сторону HMMs - алгоритмы витерби: прямой проход, обратный проход - декодирование слоф, фонем и т.д. Основные методы анализа: фурье, далее кепстральные коэффициенты и их производная.

Не всякий процессор DSP потянет скрытые марковские процессы, а уж тем более алгоритм Витерби. Также можно столкнуться с ограничением по объёму памяти.
Grt
Цитата(Degun @ Oct 9 2007, 10:21) *
Не всякий процессор DSP потянет скрытые марковские процессы, а уж тем более алгоритм Витерби. Также можно столкнуться с ограничением по объёму памяти.


Это уже вторая задача, как оптимизировать так, чтобы все работало и в то же время можно было уместится в мипсах и в памяти.
Degun
Цитата(Grt @ Oct 9 2007, 11:25) *
Это уже вторая задача, как оптимизировать так, чтобы все работало и в то же время можно было уместится в мипсах и в памяти.

Это понятно, но зачастую когда имеешь дело с DSP-процессорами в реальном времени именно эти факторы выходят на первый план
Grt
Цитата(Degun @ Oct 10 2007, 16:59) *
Это понятно, но зачастую когда имеешь дело с DSP-процессорами в реальном времени именно эти факторы выходят на первый план


Значит надо чем-то жертвовать, например, длиною признакового вектора, длиной окна Витерби, методами dsp обработки речи и т.д.
VAHOO
мне надо чтобы ATmega32 распознал 3 армянских слов и все.
У меня сейчас в руках есть PIC контроллер (кварц 10мгц),
он четко распознает русские 3 слова и очень четко работает,
конечно ставлен Lock Bits -и, мне не надо делать интеллектуальный
апарат. Спасибо!
Grt
Цитата(VAHOO @ Oct 18 2007, 01:16) *
мне надо чтобы ATmega32 распознал 3 армянских слов и все.
У меня сейчас в руках есть PIC контроллер (кварц 10мгц),
он четко распознает русские 3 слова и очень четко работает,
конечно ставлен Lock Bits -и, мне не надо делать интеллектуальный
апарат. Спасибо!


Интересно, что это за 3 русских слова ? Распознает для любого человека или как ?
Самый простой способ это сделать ряд полосовых фильтров, настроенных на определенные частоты. Для таких фильтров определяем энергию в каждой полосе и устанавливаем порог срабатывания.
Резонансные частоты и порог срабатывания придется подбирать экспериментально.
VAHOO
Цитата(Grt @ Oct 19 2007, 17:13) *
Интересно, что это за 3 русских слова ? Распознает для любого человека или как ?
Самый простой способ это сделать ряд полосовых фильтров, настроенных на определенные частоты. Для таких фильтров определяем энергию в каждой полосе и устанавливаем порог срабатывания.
Резонансные частоты и порог срабатывания придется подбирать экспериментально.


да, Распознает для любого человека.
Degun
Цитата(VAHOO @ Oct 26 2007, 00:19) *
да, Распознает для любого человека.

А какой принцип, если не секрет?
Grt
Цитата(VAHOO @ Oct 26 2007, 00:19) *
да, Распознает для любого человека.


И наверное забылм сказать, что порог ложного срабатывания тоже не малый.
VAHOO
распознает 99%, я не знаю алгоритма,
Grt
Цитата(VAHOO @ Oct 29 2007, 23:21) *
распознает 99%, я не знаю алгоритма,


Как часто он срабатывает на другие слова. Скажем, говоришь ему "му-му", а он тебе выдает это "мама", то понятное дело он всегда будет распознавать
Degun
Цитата(VAHOO @ Aug 28 2007, 22:09) *
... Мне надо такой алгоритм чтобы был универсальным, то если я в памяти микроконтроллера занес отпечатки пальца слова система работал для всех, то есть если все люди говорили тот же слова, система распознавания работал...

Цитата(VAHOO @ Oct 29 2007, 22:21) *
распознает 99%, я не знаю алгоритма,

Так есть или нет у вас алгоритм?
анатолий
Еще в 60-х годах в США выпускался телефон, кот. имел
голосовой набор цифр-
на сотне транзисторов были сделаны фильтры и логика.
Но пользователю надо было очень долго подстраиваться.
Сейчас же лучше как прототип взять алгоритм любого телефонного вокодера -
выход такого кодера - период форманты, форма сигнала возбуждения
(из которой можно узнать кратные форманты ),
звук гласный-согласный -
хорошая информация для дальнейшего распознавания.
Заодно можно ощутить, насколько
это трудная задача.
Grt
Цитата(анатолий @ Oct 30 2007, 17:55) *
Еще в 60-х годах в США выпускался телефон, кот. имел
голосовой набор цифр-
на сотне транзисторов были сделаны фильтры и логика.
Но пользователю надо было очень долго подстраиваться.
Сейчас же лучше как прототип взять алгоритм любого телефонного вокодера -
выход такого кодера - период форманты, форма сигнала возбуждения
(из которой можно узнать кратные форманты ),
звук гласный-согласный -
хорошая информация для дальнейшего распознавания.
Заодно можно ощутить, насколько
это трудная задача.


На сегодняшний день все коммерчиское ПО в области распознавания и синтеза речи основано на HMMs (скрытые марковские модели). Как правило такое ПО настраивается на проффесиональных базах, например TIGIT - цифры от 0, ..., 9 англиского языка. Порядка 100 спикеров. Есть разметка цифр и т.д.
Соглашусь с тем, что в принципе можно настроить жлезку на несколько слов, причем действительно будет распознавать и процент ложного срабатывания будет зависить от подстройки пороговых величин, выбора резонансных частот и т.д.
VAHOO
Цитата(Degun @ Oct 30 2007, 15:15) *
Так есть или нет у вас алгоритм?



нет, у меня нет алгоритм, но я тоже очень хочу знать sad.gif
Degun
Цитата(VAHOO @ Nov 1 2007, 18:42) *
нет, у меня нет алгоритм, но я тоже очень хочу знать sad.gif

Но, как я понял, у вас есть работающее устройство? Тогда, может быть, проще всего дизассемблировать программу и разобраться как она работает.
VAHOO
На PIC микроконтроллере ставлен LOCK bit
Grt
Цитата(VAHOO @ Nov 2 2007, 16:30) *
На PIC микроконтроллере ставлен LOCK bit


Объектный код ?
А в чем состоит процесс обучения ? Просто произносите нескослько раз одно и то же слово.
Или процесс обучения отсутствует, и распознаваемые слова фиксированы и прошиты ?
VAHOO
Цитата(Grt @ Nov 5 2007, 22:39) *
Объектный код ?
А в чем состоит процесс обучения ? Просто произносите нескослько раз одно и то же слово.
Или процесс обучения отсутствует, и распознаваемые слова фиксированы и прошиты ?


процесс обучения отсутствует, и распознаваемые слова фиксированы и прошиты!
Cont
"Если речь идет о распознавании речи, то на сегодняшний момент лучше скрытых марковских процессах (HMMs) не придумали, далее соответственно уже в сторону HMMs - алгоритмы витерби: прямой проход, обратный проход - декодирование слоф, фонем и т.д. Основные методы анализа: фурье, далее кепстральные коэффициенты и их производная."

Не подскажите литературу по HMMs? Желательно чтобы теория начиналась с самых азов т.к. я только начал заниматься этим вопросом
Grt
Цитата(Cont @ Apr 12 2008, 14:04) *
"Если речь идет о распознавании речи, то на сегодняшний момент лучше скрытых марковских процессах (HMMs) не придумали, далее соответственно уже в сторону HMMs - алгоритмы витерби: прямой проход, обратный проход - декодирование слоф, фонем и т.д. Основные методы анализа: фурье, далее кепстральные коэффициенты и их производная."

Не подскажите литературу по HMMs? Желательно чтобы теория начиналась с самых азов т.к. я только начал заниматься этим вопросом


Литераторы как таковой новой сейчас нет. Проще набрать в гугле speech recognition, HMMs и т.д. и пошарить по статьям
Cont
Да мне новая и не нужна. Мне нужны основы, вся математическая теория
VAHOO
а кто знает самый прастой алгоритм для распознавание речи на микроконтроллере?
VDG
Если считаете что за год (от открытия темы) что-то изменилось, то ошибаетесь. Всё что можно засунуть в MCU Вам год назад ответили.
DRUID3
Цитата(VAHOO @ Jun 29 2008, 22:17) *
а кто знает самый прастой алгоритм для распознавание речи на микроконтроллере?

biggrin.gif сравнение с нормированным эталоном? biggrin.gif
Grt
Цитата(VAHOO @ Jun 29 2008, 23:17) *
а кто знает самый прастой алгоритм для распознавание речи на микроконтроллере?


Посмотрите в http://forum.sources.ru/index.php?showtopic=146531&st=90
VAHOO
Цитата(DRUID3 @ Jun 30 2008, 07:17) *
biggrin.gif сравнение с нормированным эталоном? biggrin.gif


если звук через компаратор подать на вход микроконтроллера и мерить дистанцыю
"скважности", потом эти параметры записать в EEPROM, каким алгоритмом можно
нормировать эти значения? как я понимаю нормировать это значит сжать массив?
muravei
Что-то типа "нечеткой логики"
VAHOO
Цитата(muravei @ Nov 21 2008, 17:00) *
Что-то типа "нечеткой логики"


а немного по подробнее можно?
muravei
Цитата(VAHOO @ Nov 23 2008, 23:04) *
а немного по подробнее можно?

Нет!
Наберите в Гугле "нечеткая логика" , "fuzzy logic" и изучайте, но , скорее всего, готовых программ для МК вы не найдете.
Хотя, кто знает.
VAHOO
Цитата(muravei @ Nov 24 2008, 22:44) *
Нет!
Наберите в Гугле "нечеткая логика" , "fuzzy logic" и изучайте, но , скорее всего, готовых программ для МК вы не найдете.
Хотя, кто знает.


Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.