Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Flash, распознавание звука (http://www.flasher.ru/forum/showthread.php?t=179635)

tilweb 18.05.2012 16:07

Flash, распознавание звука
 
Задумался над одной интересной идеей..
Но вот по поводу реализации вообще глухо мыслями)

Flash ведь может както брать аудио файл и распознавать слова, перегонять их в текст.
Но как это вообще возможно сделать?

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

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

Hauts 18.05.2012 17:01

Практически нереально.

Партизан 18.05.2012 17:04

Ого... какие технологии.

tilweb 18.05.2012 17:07

Делают же)

Добавлено через 15 минут
есть готовые базы, даже у W3С, но правда немного не понял.. то ли у них только воспроизведение текста..
то ли я чтото не дочитал..

wvxvw 18.05.2012 23:40

Хорошего распознавания голоса пока что современная наука не добилась. Хорошим считается сравнимое с человеческим. Т.е. если из всей услышанной информации человек в среднем понимает 95%, то компьютер, в лучшем случае 80% - ну или где-то в этих пределах. Т.е. как бы и не очень плохо, но и не так чтобы прям суперски.
Технологии эти не простые... но, возможно на каком-то минимальном уровне можно было бы попытаться. Но имейте в виду следующее:
- вам для распознавания слов нужно будет провести немаленькое исследование языка, чтобы понять как его фонетика устроена, чтобы хотя бы знать, что искать.
- нужно будет познакомится с алгоритмами поиска для того, чтобы оперативно сопоставлять услышаный образец с "шаблонами". Это тоже нетривиальная задача, т.как простых и оптимальных решений нет - даже суперкомпьютеры пока что не могут с такой же скоростью как человек, и, именно, скорее всего изза того, что наука пока что не нашла самые лучшие вероятностные алгоритмы.

Это вполне может подойти, если вы хотите писать научную работу (но я бы засомневался в целесообразности использования Флеша для таких целей). Но как проект - боюсь, что вы скоро столкнетесь с какими-нибудь неразрешимими трудностями, за долго до того, как будет вообще хоть что-то рабочее.

tilweb 28.05.2012 13:48

Подумывал для диплома.

По идее, можно же как то частоты звука переводить в какой-нибудь код и сверять этот код. Понятно что из-за шума, из-за разности голоса, код будет меняться, но можно же его сверять с неким шаблоном и при совпадении на 60%, говорим что код совпадает и присваиваем этому звуку соответствующее слово (или скорее даже букву..).

wvxvw 28.05.2012 14:22

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

Я не говорю, что это вообще не возможно, но если вам диплом сдавать в близжайшие 3-4 года - я бы скорее всего выбрал другую тему. Это только исследования на пару лет...

illuzor 28.05.2012 14:32

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

Aquahawk 28.05.2012 14:37

illuzor
Более того и apple и google отсылают данные на свои сервера, поэтому эти технологии не работаю без доступа к интернету.

tilweb 28.05.2012 14:52

Диплом у меня через год ещё только :)
Просто действительно интересная тема. У меня специальность радиоэлектронные системы, но я както больше люблю интернет технологии и т.д.. поэтому и ищу чтонибудь такое, пересекающееся с интернетом и специальностью.

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

NikolyA 28.05.2012 15:07

может отсюда что почерпнуть можно http://www.bytearray.org/?p=1151

tilweb 28.05.2012 15:38

Спасибо, вечером посмотрю, как дома буду

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

А далее там уже можно и пополнять эту базу,многократно улучшать и т.д..


Наверное от флеша лишь нужно запись и сохранение этого файла на сервере..

Добавлено через 3 минуты
А далее уже нужно видимо писать программу какуето, например, на C++, которая будет брать этот файл и распознавать и давать ответ..

anmelegov 28.05.2012 16:50

тянет на научную работу... удачи вам

NikolyA 28.05.2012 17:00

ну если с распознаванием английской речи еще можно собрать какой-то пример из найденного, то с русской речью все гораздо сложней

wvxvw 28.05.2012 23:00

Так распознавание-то и является главной проблемой. И вы просто себе наверное пока что плохо представляете где именно и в чем именно будут проблемы. Ну вот, например:
Мы представляем поиск по деревьям где поиск заключается в переходе от имеющейся информации (предположим, это последовательность из звуков, которую вы разбили на 5 атомов-звуков) из которой вам нужно прийти к узлу на дереве, который ваша программа знает как "правильное" слово (последовательность из звуков будем называть словом).
Так вот, в общем случае, у слова из 5 символов, на первый взгляд степень ветвления равна 5. (Но это не совсем так, и мы еще к этому вернемся). Таким образом, предполагая, что уровень энторпии относительно небольшой, слово, с которым наш образец совпадает может находится на расстоянии 20+ уровней дерева. А теперь посчитаем: при степени ветвления 5 и 20 уровнях дерева имеем количество операций сравнения: 5 * 5 * 5 * ... 5 (20 раз) т.е. 5^20 = 95367431640625 вариантов... одно слово! Высота дерева была выбрана такой не случайно, примерно столько же нужно чтобы решить пятнашки (но может быть и больше!).
А вот теперь другая неприятность: возможно какой-то из звуков не был расслышан, и вы не уверены в длине слова, и оно может быть 4-6 звуков в длину. Получаем 4^20+5^20+6^20=3752625383331377 вариантов которые нужно проверить! - если просто перебирать все подряд, то это на несколько лет работы суперкомпьютеру.
Соответственно, нужно искать способы как оптимизировать работу поиска, как определять комбинации звуков заведомо невозможные, как искать направленно, пытаться угадать по контексту, обучать программу на образцах речи конкретного человека, обучать ее анализировать сходства между речью разных людей.
Это все очень интересно, но это много исследователькой работы. Что-то в этой области, конечно, сделано. Но очень много чего не известно.

tilweb 29.05.2012 13:14

Наверное для диплома хватит и чтобы программа распознавала хотя бы несколько фраз.....
А то тут действительно целая научная работа получается)

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

expl 29.05.2012 13:17

Цитата:

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

Т.е. если вы спроектировали лампочку накаливания, которая в 2 раза больше жрёт энергии и в 2 раза меньше даёт света без цели опробовать новую технологию - это не дипломный проект - а вредительство :)

tilweb 29.05.2012 13:20

Цитата:

Сообщение от expl (Сообщение 1081945)
Диплом не курсовая - он предполагает разработку чего-то нового для практических целей. Или хотя-бы разработку новых алгоритмов при написании этой штуки, распознающей несколько фраз.

Т.е. если вы спроектировали лампочку накаливания, которая в 2 раза больше жрёт энергии и в 2 раза меньше даёт света без цели опробовать новую технологию - это не дипломный проект - а вредительство :)

ну я хочу это всё в онлайн вывести же, чтобы это работало зайдя на сайт

expl 29.05.2012 14:31

Ну да, в таком ключе диплом уже похоже

NikolyA 29.05.2012 20:28

Цитата:

Но, наверное, если делать что flash записывает звук, далее сохраняет файл
так из флеша уже и так можно записывать звук, сохранять как на локалку, так и на сервер, с распознаванием сложней, но если попробовать что-то собрать, может что-то толковое и получится, хотя трудности с чего же начать будут всеравно

strangedk 30.05.2012 00:22

tilweb, что ж вы так упрямитесь. Вам идей мало?

Сделайте распознавание и отслеживание объектов через веб-камеру.
Портируйте какую-нибудь библиотеку из opencv, или напишите что-то своё
Это сложно, но поверьте, уж куда легче чем распознавание речи

semenyakinVS 30.05.2012 03:28

Если говорить про распознавание человеческой речи - могу дать контакт знакомого человека, который занимается как раз этой задачей и тоже по диплому.

Коротко по математике, которую, как я понял из общения с ним, стоит использовать: Фурье и вейвлет-преобразования (с их помощью получается амплитудно-частотная характеристика звуковых колебаний) плюс нейронная сеть для анализа АЧХ. Задача сложная, но вполне посильная. Одна проблема: боюсь, flash тут не катит как технология - медленный. Мой знакомый собирается ускорять анализ на cuda - иначе, говорит, качество будет плохое или обработка долгой.

alatar 30.05.2012 19:19

http://habrahabr.ru/post/117234/
http://habrahabr.ru/post/144535/
Только в реалиях флеша проще использовать Speex вместо FLAC.

Добавлено через 50 секунд
P.S. Но на диплом такое вряд ли покатит.

DaFive 30.05.2012 19:39

По ссылкам alatar - делал похожее на флеше. Распознаёт очень плохо. Даже тему в разделе API создавал по этому поводу. Нормальных конвертеров и кодеков на флеше нет. А если без онлайн-взаимодейтсвия - совсем все плохо. Это ж целая система, одному не потянуть.

tilweb 08.06.2012 15:20

Цитата:

Сообщение от strangedk (Сообщение 1082038)
tilweb, что ж вы так упрямитесь. Вам идей мало?

Сделайте распознавание и отслеживание объектов через веб-камеру.
Портируйте какую-нибудь библиотеку из opencv, или напишите что-то своё
Это сложно, но поверьте, уж куда легче чем распознавание речи

Распознавание и отслеживание объектов конечно круто, но к специальности отношения не имеет :)

Я бы и взял бы иную идею какуенить.. но вот только не знаю что бы такое взять, что связано с радиолокационными системами и чтоб с инетом.. конечно можно gps навигацию, но это тоже дебри ещё те..

Tails 08.06.2012 15:58

А если юзать гугл? Шлём ему звуковой поток и отображаем присланный им результат. Флеш правда как посредник будет только.

alatar 08.06.2012 17:10

Цитата:

А если юзать гугл?
http://www.flasher.ru/forum/showpost...1&postcount=23

tilweb 08.06.2012 17:27

Да, я уже серьёзно задумался над тем, чтобы реализовать сайт, зашли, записали звук через флеш, отправили в гугл, он распознал и выдал обратно, мы вывели на сайте. Ну а в работе расписать современные принципе распознавания речи :)

Добавлено через 54 секунды
Ну и будет такой сайт как пример использования таких технологий и много теории разной, возможно под дипломный проект подойдёт

Tails 08.06.2012 17:37

Даже апи есть, шаманить и ковыряться не надо.
Кажеться, я стал любить гугл ещё больше.

Котяра 08.06.2012 19:28

Использовать для диплома открытые и бесплатные технологии не только можно, но и нужно - написать для диплома более-менее работающий сервис с использованием современных сервисов, да ещё и полезный - в 100 раз лучше, чем попытаться написать какой-нибудь велосипед распознающий букву "а".
Если бы вы занимались распознаванием речи специально, на специализированной кафедре, то вы бы были в курсе и такие вопросы не задавали бы, ну и тогда бы вы точно знали, что делать и решали бы какой-нибудь узконаправленный кусочек - а-ля "Сокращение времени разбора в графе предсказаний на основе статистически подобраных лексем и предугаданных падежных окончаний по методу Лебурьё-Жиже"

Storfus13 08.06.2012 22:42

А вот еще поизучайте теорию. Может до Flash и дело не дойдет.
http://admin.novsu.ac.ru/uni/vestnik...e/Trofimov.pdf
Понять, что вариант тупиковый - это значит сэкономить время.

tilweb 19.06.2012 16:12

Цитата:

Сообщение от Tails (Сообщение 1083726)
Даже апи есть, шаманить и ковыряться не надо.
Кажеться, я стал любить гугл ещё больше.

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

Tails 19.06.2012 16:30

Цитата:

Сообщение от tilweb (Сообщение 1085137)
я понял что можно программой обращаться через апи к их серверу, но запросы из веба передавать к их серверу вроде нельзя.. ну чтобы отправить ссылку где лежит .wav файл и получить ответ текстовый

Не понял, как это из веба нельзя? Можно отправить запрос из любого устройства, компьютера, браузера, программы, главное - чтобы оно было подключено к интернету. Да хоть с унитаза, единственное - это должен быть post запрос, и звук в формате FLAC.
Представляете ? Унитаз, который тебя "понимает" ! :mosking:

alatar 19.06.2012 16:45

Цитата:

Сообщение от Tails (Сообщение 1085143)
Представляете ? Унитаз, который тебя "понимает" ! :mosking:

Оффтоп. Стандартный японский унитаз. :confused:


Часовой пояс GMT +4, время: 00:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.