Распознавание речи. Какое текущее состояние?

Реально работающие приложения, программные и программно-аппаратные продукты.

Модераторы: DCV, Dimmy, daner, victorst, Администраторы

Сообщение Tester » Пт ноя 06, 2009 1:47:04

Выложил на чужой сайт: http://www.newphone.org.ua/Mic3D/Project1.rar

Внизу можно на кнопку нажать "Вставить вложение", если нажимаете "Ответить", - а если пользуетесь быстрым ответом, то надо сначала зайти в "Предв. просмотр", перед Отправить, - там будет возможность вставить вложение.

Спасибо! Следующий раз воспользуюсь!

Кстати, смените пожалуйста электронный адрес на работающий в Вашем профиле, - иначе почта Вам не приходит, а мне приходят сообщения об ошибке.

Сменил! Извиняюсь... Не уследил смерть ящика!

Резонансные фильтры сделать проще чем преобразование Фурье для сложных звуков.
...
20,37,68,126,233,430,794,1466,2707,5000 Гц

Где-то так я и понимал... а то в преобразованиях К-целое, а не явно указанная частота...

Добавлено спустя 14 минут 54 секунды:

...хотя скачал чужую программу с исходниками, которая используя именно FFT (Фурье) разлагает wav файл на спектр...

решил за одно и сюда

Добавлено спустя 6 минут 3 секунды:

Кстати, как-то странно ведет программа, когда говоришь по Skype - явно усиливается звук и засоряется 3Д график преобразований Фурье
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение DK_sensey » Пт ноя 06, 2009 8:14:42

Где-то так я и понимал... а то в преобразованиях К-целое, а не явно указанная частота.

Да, именно так, потому что в звуках одного постоянного тона мы имеем дело только с частотами кратными основному тону. А с микрофона мы снимаем сложные звуки которые могут состоять из суммы самых различных частот. Можно немного доработать разложение в ряд Фурье если принять за основной тон например 1 Гц - тогда практически любую частоту можно рассматривать как гармонику :) Но этого недостаточно - еще нужно кое что сделать для того чтобы получать мгновенный спектр а не разложить аудиофайл целиком на миллион статичных гармоник:)

Добавлено спустя 37 секунд:

Поэтому чтобы не париться с этим проще сделать резонансные фильтры. Тем более что и природа пошла таким путем.

Добавлено спустя 1 минуту 47 секунд:

Кстати, как-то странно ведет программа, когда говоришь по Skype - явно усиливается звук и засоряется 3Д график преобразований Фурье

Скорей всего это связано именно с некорректностью применения такого преобразования к звукам с микрофона - мы видим не реальный спектр а что-то другое:)
DK_sensey
Серьёзный посетитель
 
Сообщения: 133
Зарегистрирован: Пт июл 17, 2009 16:50:14
Откуда: Беларусь

Сообщение Tester » Пт ноя 06, 2009 23:40:18

не подскажите формулы для того чтобы сделать резонансные фильтры? Пока никаких ссылок на обработчики кроме FFT не нашел! :( И еще каким образом тогда работают эквалайзеры, усиливающие или уменьшающие определенные частоты?

Skype ЯВНО вмешивается в аудио канал! может чистит фон, может еще и усиливает сигнал...
Кстати кто-нибудь проверял мою программу?
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение Tester » Вс ноя 08, 2009 15:33:32

Вспоминал школьную волновую теорию... Насколько помню частота связана со временем работы, а значит изменения частоты в аудио файле напрямую зависит от интервала, который мы берем... Для каждой частоты надо брать разный интервал! КАК ВСЕ СЛОЖНО! :shock:
Подскажите формулы для получения амплитуды на указанной частоте!!! PLEASE!!!! :D
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение shuklin » Вс ноя 08, 2009 19:20:16

вот простенький фурье, с которым я развлекался в 2001-м (сравнивал по производительности с Интеловской библиотекой nspfft)

float cosw[AFQ][AFQ];
float sinw[AFQ][AFQ];

void Init()
{
int i,j;
for(i=1;i<AFQ;i++)
for(j=0;j<AFQ;j++)
{
cosw[i][j]=(float)cos(2*3.14159265*j*2/i);
sinw[i][j]=(float)sin(2*3.14159265*j*2/i);
};
}


void AFWork(input_array *pA, float M, output_array *pC, output_array *pS)
{
long i,j;
double s,c;
for(i=1+3;i<AFQ;i++)
{
s=0;
c=0;
for(j=1;j<AFQ;j++)
{
s=s+sinw[i][j]*(float)(pA[j]-M);
c=c+cosw[i][j]*(float)(pA[j]-M);
}
pS->Value(i)=s;
pC->Value(i)=c;
};
};

M - заранее посчитаное среднее значение входного сигнала.
AFQ - размер "окна" частот
shuklin
Разбирающийся в ИИ
 
Сообщения: 426
Зарегистрирован: Чт янв 11, 2007 21:03:53
Откуда: http://www.shuklin.com

Сообщение Tester » Ср ноя 11, 2009 4:37:24

Как ни пытаюсь понять - не доходит! :( Объясните такие вещи:
1) почему большинство формул пытаются на выходе 2(!) матрицы получить? Зачем нужна "мнимая" часть?
2) Теоретически качество распознавания ЧАСТОТЫ зависит от длины обрабатываемого участка. Как это влияет на формулы? В моей программе я могу обрабатывать блоки любой длины! Как выбрать оптимальные кусочки?

Моя цель (на сегодня) получить максимально детальный и максимально четкий (для возможностей процессора) 3Д график аудио волны, полученной с микрофона, разложенной на амплитуды на разных частотах. График должен быть подвижным и напоминать конвейерную ленту с пиками.
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение shuklin » Ср ноя 11, 2009 17:59:37

- Моя цель (на сегодня) получить максимально детальный и максимально четкий (для возможностей процессора) 3Д график аудио волны, полученной с микрофона, разложенной на амплитуды на разных частотах. График должен быть подвижным и напоминать конвейерную ленту с пиками.

приведенный выше фрагмент кода в оригинале решал именно эту задачу. Хватал данные с АЦП и после обработки рисовал спектр (работу с АЦП и DirectDraw я с кода повырезал, поэтому там теперь скорее псевдокод).

рекомендую поиграть с интеловской библиотекой ФФТ. приведенный код я изобрел как неэффективный, чтобы сравнить результат расчета классическим интегрированием с Интелом. Я здесь применил классическое интегрирование, а интел вероятно применяет БПФ по Винограду и ММХ расширения. Тестил на 400-м целероне - удивительно, но на нем разницы не заметно. Сишный оптимизирующий компилер приятно удивил в asm-е все очень красиво нарисовал командами FPU

- почему большинство формул пытаются на выходе 2(!) матрицы получить? Зачем нужна "мнимая" часть?

потому что так проще сохранить фазовую часть. для построения амплитудной диаграммы, в приведенном примере надо еще найти среднее квадратичное двух частей. Я предпочитаю в 3D рисовать "спирали" с учетом фазы. уже при отрисовки нахожу амплитуду и угол наклона вектора

- Как это влияет на формулы?
никак, AFQ подбирай под свои требования.

- Как выбрать оптимальные кусочки?
ИМХО длинна блока не должна быть меньше одного периода. Иначе это уже не анализ а профанация.
shuklin
Разбирающийся в ИИ
 
Сообщения: 426
Зарегистрирован: Чт янв 11, 2007 21:03:53
Откуда: http://www.shuklin.com

Сообщение kos » Ср ноя 11, 2009 18:40:32

Tester писал(а):Моя цель (на сегодня) получить максимально детальный и максимально четкий (для возможностей процессора) 3Д график аудио волны, полученной с микрофона, разложенной на амплитуды на разных частотах. График должен быть подвижным и напоминать конвейерную ленту с пиками.

Возможно и не по теме вмешался... но посмотрите как это реализовано в SpectraLAB
там такое 3Д вплоть (вроде как) до 0.01Гц разрешение
может это чем поможет в ваших поисках.
Аватара пользователя
kos
Заинтересованный
 
Сообщения: 33
Зарегистрирован: Вс ноя 01, 2009 4:22:00

Сообщение Tester » Чт ноя 12, 2009 0:24:34

shuklin писал(а):- почему большинство формул пытаются на выходе 2(!) матрицы получить? Зачем нужна "мнимая" часть?

потому что так проще сохранить фазовую часть. для построения амплитудной диаграммы, в приведенном примере надо еще найти среднее квадратичное двух частей. Я предпочитаю в 3D рисовать "спирали" с учетом фазы. уже при отрисовки нахожу амплитуду и угол наклона вектора

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

2kos:
Спасибо большое за SpectraLAB! там есть довольно интересные графики...
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение shuklin » Чт ноя 12, 2009 0:55:24

Tester писал(а):Можешь выложить скриншоты подобных 3Д спиралей?

увы, на проект забито еще в 2001м

Tester писал(а): Не представляю себе их динамику...
А для чего вообще нужна каждая из этих двух функций по отдельности? Какой физический или математический смысл?

гармонические колебания характеризуются не только амплитудой но и фазой. многим с амплитудой и фазой работать менее удобно чем с проекциями вектора на абстрактные оси синусов и косинусов. в любом случае на выходе ФТ две величины или амплитуда, фаза, или компоненты синус / косинус. они легко пересчитываются одни в другие.
shuklin
Разбирающийся в ИИ
 
Сообщения: 426
Зарегистрирован: Чт янв 11, 2007 21:03:53
Откуда: http://www.shuklin.com

Сообщение ЭГТР » Чт ноя 12, 2009 9:11:08

Тоже вмешаюсь...т.с. не по делу.... со своих позиций..
1. Есть некое рациональное зерно в том, что человек проговаривает всё что распознаёт как речь.... этот в процесс связан с гармониками и каким то образом даёт возможность абстрагироваться от несущих.... причём на аппаратном уровне.
2. Определённо должна быть некая различная существенная роль чётных и не чётных гармоник при распознавании.
Духовность и разумность это то, ради чего имеет смысл быть человеком.
Аватара пользователя
ЭГТР
Адепт Б-га
 
Сообщения: 932
Зарегистрирован: Вс янв 20, 2008 14:34:53
Откуда: Москва

Сообщение shuklin » Чт ноя 12, 2009 17:47:31

ЭГТР писал(а):1. Есть некое рациональное зерно в том, что человек проговаривает всё что распознаёт как речь.....


Да, есть, но гармоники к внутреннему монологу никакого отношения не имеют. Модель Семантической Нейронной Сети с внутреннем монологом == семантической обратной связью и зачем это надо я описал в своей диссертации.
shuklin
Разбирающийся в ИИ
 
Сообщения: 426
Зарегистрирован: Чт янв 11, 2007 21:03:53
Откуда: http://www.shuklin.com

Сообщение fornit » Ср ноя 18, 2009 10:28:14

распознаванием речи занимались еще в 60 годах. Например, с Украины, Винцюк и ко. В Спб , например, Ронжин занимается и написал диссертацию в 2004 году по этому вопросу(распознавание речи - ее использование в сотовой связи). Проблема основная - слитная речь, т.к. раздельная речь вроде как неплохо распознается. Разные методы есть. и на основе анализа спектров Фурье и анализа главных компонент (в Белорусии есть человечек, занимался этим даже высылал мне коды в матлабе). Очень интересная задача.
fornit
Разбирающийся в ИИ
 
Сообщения: 266
Зарегистрирован: Ср дек 22, 2004 22:57:00
Откуда: Питер-Уфа

Сообщение ЭГТР » Ср ноя 18, 2009 12:04:33

shuklin писал(а):
ЭГТР писал(а):1. Есть некое рациональное зерно в том, что человек проговаривает всё что распознаёт как речь.....


Да, есть, но гармоники к внутреннему монологу никакого отношения не имеют.

Это понятно ибо внутренний диалог идёт на своих несущих и со своими гармониками. ЭГТР предполагает что мы и распознаём то наверно свой внутренний диалог, а не то что слышим.
Однако эмоции могут идти и напрямую без распознавания речи и тогда гармоники должны играть свою роль. А поскольку чистого процесса вообще никогда не бывает, то наверно имеет смысл на это обратить внимание.
Духовность и разумность это то, ради чего имеет смысл быть человеком.
Аватара пользователя
ЭГТР
Адепт Б-га
 
Сообщения: 932
Зарегистрирован: Вс янв 20, 2008 14:34:53
Откуда: Москва

Сообщение Tester » Чт ноя 19, 2009 1:39:45

fornit писал(а):распознаванием речи занимались еще в 60 годах. Например, с Украины, Винцюк и ко. В Спб , например, Ронжин занимается и написал диссертацию в 2004 году по этому вопросу(распознавание речи - ее использование в сотовой связи). Проблема основная - слитная речь, т.к. раздельная речь вроде как неплохо распознается.

Тогда почему нигде нельзя добыть образец подобной, "раздельной" программы? Пусть хотя-бы нормально определяла десяток слов в "дикторо-независимом" режиме... Где-то вычитал (в каком-то форуме) что программист пытался найти программу понимающую ТОЛЬКО цифры, но у ЛЮБОГО человека... но не смог найти! :(

fornit писал(а): Разные методы есть. и на основе анализа спектров Фурье и анализа главных компонент (в Белорусии есть человечек, занимался этим даже высылал мне коды в матлабе). Очень интересная задача.

Если не секрет, хотел бы посмотреть на такие исходники... Я серьезно занялся подобной программой и мне интересны ЛЮБЫЕ альтернативные нейронным сетям методы!
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение fornit » Пн ноя 30, 2009 10:39:51

Tester писал(а):
fornit писал(а):распознаванием речи занимались еще в 60 годах. Например, с Украины, Винцюк и ко. В Спб , например, Ронжин занимается и написал диссертацию в 2004 году по этому вопросу(распознавание речи - ее использование в сотовой связи). Проблема основная - слитная речь, т.к. раздельная речь вроде как неплохо распознается.

Тогда почему нигде нельзя добыть образец подобной, "раздельной" программы? Пусть хотя-бы нормально определяла десяток слов в "дикторо-независимом" режиме... Где-то вычитал (в каком-то форуме) что программист пытался найти программу понимающую ТОЛЬКО цифры, но у ЛЮБОГО человека... но не смог найти! :(

fornit писал(а): Разные методы есть. и на основе анализа спектров Фурье и анализа главных компонент (в Белорусии есть человечек, занимался этим даже высылал мне коды в матлабе). Очень интересная задача.

Если не секрет, хотел бы посмотреть на такие исходники... Я серьезно занялся подобной программой и мне интересны ЛЮБЫЕ альтернативные нейронным сетям методы!


http://forum.sources.ru/index.php?s=36c ... 8482&st=15
там есть человек grisania / Он писал, его коды были. Обратитесь к автору напрямую, так, я думаю, корректнее будет. Там же есть обсуждение этой темы

Добавлено спустя 1 минуту 55 секунд:

Tester писал(а):Тогда почему нигде нельзя добыть образец подобной, "раздельной" программы? Пусть хотя-бы нормально определяла десяток слов в "дикторо-независимом" режиме... Где-то вычитал (в каком-то форуме) что программист пытался найти программу понимающую ТОЛЬКО цифры, но у ЛЮБОГО человека... но не смог найти! :(



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

Добавлено спустя 1 минуту 31 секунду:

Есть даже некая открытая база разных звуков-букв алфавита и т.п.
fornit
Разбирающийся в ИИ
 
Сообщения: 266
Зарегистрирован: Ср дек 22, 2004 22:57:00
Откуда: Питер-Уфа

Сообщение vosk » Ср дек 16, 2009 12:19:36

У меня вопрос к DK_sensey про работу профессора Е.В.Луценко. Можно ли заполучит ссылку. Как то интригующе звучит "обучение за один проход". А ген. алгоритм и в правду сильная штука. Я сейчас буду реализовывать обучение методом дифференциальной эволюции, посмотрю, что за зверь.
vosk
Редкий гость
 
Сообщения: 3
Зарегистрирован: Ср дек 16, 2009 11:15:20
Откуда: Гатчина

Сообщение Norin » Пн дек 28, 2009 17:49:17

Уважаемый Народ, не парьтесь. Изучите лучше передовой опыт, скачайте реально действующее ПО, возьмите основные идеи... Или договоритесь на худой конец с ними... Вам стоит заглянуть сюда , принцип один и тот же, что в распознавании видеоинформации, что звуковой....
Norin
Редкий гость
 
Сообщения: 8
Зарегистрирован: Пн дек 28, 2009 17:35:29

Сообщение Tester » Чт янв 14, 2010 22:57:10

Norin писал(а):Уважаемый Народ, не парьтесь. Изучите лучше передовой опыт, скачайте реально действующее ПО, возьмите основные идеи...


Пытался... Ничего не работало! :( Как-то все ненадежно, неуверенно! Нет ниодной программы, которая мне понравилась, которая бы заработала с первого раза или (чаще среди самопальных) чтобы второй раз был не хуже первого. Поставил Драгон диктэйт - на первом же тесте он меня "запорол" - "повторите фразу ... еще раз", "повторите фразу ... еще раз", "повторите фразу ... еще раз"....... И это не смотря на то дистрибутив занимает 1.6 гигабайта и вместо взломки идет ключ.

Может у тебя есть приличное мнение о хоть одной программе???

Norin писал(а):Или договоритесь на худой конец с ними...

готов договориться, если увижу хоть какой-нибудь результат! :)
готов помочь адаптировать под мое окружение, помочь перевести на другие языки, начать продавать ее в моем городе и может быть в интернете, а так-же писать приложения используя их АПИ... Но покажите МНЕ подобную программу! :)

Norin писал(а):Вам стоит заглянуть сюда,

Куда сюда? Обычно в других сообщениях это слово ("сюда") обычно подчеркнуто и является ссылкой! :lol:

Norin писал(а):принцип один и тот же, что в распознавании видеоинформации, что звуковой....

Теоретически, согласен... Но есть куча нюансов... Даже того что я уже получил - бегущий 3Д график говорит мне что проблем намного больше - представь себе полоску с пиками, которая прыгает не только от громкости, но и от настроения, прокуренный голос, легкой простуды; возрастных изменений(половое становление голоса); голоса разных людей вообще могут даже не напоминать друг друга или сильно скрываться за спецификой конкретного голоса; шепот СИЛЬНО отличается от нормального голоса; помехи могут быть даже громче голоса, но не мешают человеку; добавь к этому шепелявость, проглатывание букв, скорость речи, количество одновременно искомых сигналов в этом мусоре... а обращал внимание что с голосом происходит во время "флирта", сонливости или при попытке "впарить" чего-нибудь клиенту? К тому-же один и тот-же сигнал может нести несколько слоев информации, на фоне может говорить хотя-бы телевизор, дешевый микрофон может шуметь... Одним словом пока есть только теоретические наметки как можно подобное распознать в домашних условиях!
Андрей
Аватара пользователя
Tester
Серьёзный посетитель
 
Сообщения: 101
Зарегистрирован: Пн янв 10, 2005 15:35:11
Откуда: Украина

Сообщение fornit » Ср янв 20, 2010 8:02:53

Еще вспомнил, есть научный сотрудник из МГУ, Лукьяница А.А., вроде на основе скрытых марковских процессов что-то там делал, причем слитная речь тоже вроде как исследовалась, надо бы в гугле поискать,...

Добавлено спустя 7 минут 9 секунд:

fornit писал(а):Еще вспомнил, есть научный сотрудник из МГУ, Лукьяница А.А., вроде на основе скрытых марковских процессов что-то там делал, причем слитная речь тоже вроде как исследовалась, надо бы в гугле поискать,...


http://gladkos.livejournal.com/970.html - ссылка на статейки по распознаванию речи
fornit
Разбирающийся в ИИ
 
Сообщения: 266
Зарегистрирован: Ср дек 22, 2004 22:57:00
Откуда: Питер-Уфа

Пред.След.

Вернуться в Практический подход к искусственному интеллекту

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


cron


Rambler's Top100 Каталог ресурсов ListTop.Ru Каталог сайтов Союз образовательных сайтов Parenting.ru - Родители семья дети ребенок

     Сайт "Искусственный интеллект" - программирование ИИ от разработчика: общение, статьи, ссылки.