![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Приветствую, форумчане!
Возникла небольшая задумка написать систему распознавания речи(не всей, конечно, речи, а некоторой, начнем с цифр) Собс- но, вопрос, с чего начать? Кто то уже писал подобные системы? Цель программы такая - (пример) говоришь ей пять,он тебе пишет вы сказали пять пи пи пи Из всего , что я умею,это только файл воспроизводить)) Ну и записывать звуки с микрофона. Поделитесь опытом,знаниями,пожалуйста) Заранее благодарствую! |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Добро пожаловать на форум.
Скажите, у вас есть какой-нибудь опыт в Machine Learning? Можно подойти к решению этой задачи следующим образом: Тренировка
Определение
Замечания
Для этого всего лично я использовал библиотеки JavaML и lib-svm плюс самописное преобразование Фурье (хотя оно уже должно быть реализовано в Apache Commons Math) Это уже хорошо. Средствами джавы тоже можете? Это сообщение отредактировал(а) Stolzen - 23.12.2013, 10:25 |
|||
|
||||
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Спасибо огромное!))
Опыта нету, к сожалению... Очень много звука записал)в основном как раз цифры,запись проводил не только я)) Да, как раз средствами Java и записываю звуки с микрофона, и воспроизвожу, концепт интересный.
Ну.. тут понятие размытое)) у меня план был примерно таков, записать, соб-но , текст, очистить его от посторонних шумов, разделить на несколько частей, для каждой части сделать преобразование Фурье,выдать результат, который потом идет дальше, так скажем,ну и если соответствует, то выдать, что , например, сказали: пять. Вообще в этом деле я еще новичок,кстати,записывал звук тоже с частотой 16кГц,Моно,16 бит. Не могли бы вы чуть больше рассказать? пожалуйста)) Это сообщение отредактировал(а) Kor1 - 22.12.2013, 18:43 |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Спрашивайте, что именно интересует |
|||
|
||||
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Просто вы так написали.. растянуто,скажем так.
Давайте по плану)) Звук записан, что же дальше?) |
|||
|
||||
| Stolzen |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Допустим, все необходимые шаги на этапе пред-обработки вы выполнили (обрезали тишину, сделали преобразование Фурье)
Теперь к себе в проект добавляете какую-нибудь библиотеку для Machine Learning. Я лично использовал JavaML, поэтому следующие шаги приведу для него Сначала нужно подготовить training set. Создаете его
И для каждого вашего звукового файла вызываете
sound - это массив double[] со звуком cls - класс, к которому принадлежит данный звук, т.е. если это цифра 5, то класс "пять" После этого можно приступать к тренировке классификатора
Выбор классификатора остается за вами Это сообщение отредактировал(а) Stolzen - 23.12.2013, 15:55 |
||||||
|
|||||||
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Спасибо!))
(обрезали тишину, сделали преобразование Фурье) А вот тут можно поподробнее,преобразование. |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Как я уже писал выше, для этого можно использовать Apache Commons Math (класс FastFourierTransformer) |
|||
|
||||
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Пока опустим это.а если самопис?) |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Ну тогда вспоминайте (или изучайте) курс матана и теории обработки цифровых сигналов и пишите
В гугле искать по Fast Fourier Transform или Discrete Fourier Transform. Вроде бы на хабре были неплохие статьи по теории, можете еще там глянуть. Это сообщение отредактировал(а) Stolzen - 23.12.2013, 20:25 |
|||
|
||||
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Да.. были.Кстати,а что нужно скармливать на вход в FFT ? Просто файл же не будешь скидывать)) UPD.А вы(если занимались данной темой) файл делили,если да,то как?) на сегменты. |
|||
|
||||
| Stolzen |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Нет, не делил, на вход подавался звуковой файл, состоящий только из одного слова, я только тишину убирал с начала и с конца.
Файл состоит из байтов, их считывайте и передавайте в классификатор. Чтобы их правильно считать нужно знать, какой именно кодек используется. Вот код, который я использовал: https://gist.github.com/alexeygrigorev/8104025 (код был взят отсюда и немного переделан) |
||||
|
|||||
| Kor1 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
Вот тут не знаю... Вообще, если AudioFormat,ом выводить инфу о файле будет так:
Там, вроде, надо побитовое смещение делать. |
||||
|
|||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Вообщем тот код что я привел должен нормально работать в вашем случае (я надеюсь)
Это сообщение отредактировал(а) Stolzen - 24.12.2013, 17:57 |
|||
|
||||
| Kor1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2013 Репутация: нет Всего: нет |
У меня, кстати, был код, достающий инфу:
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |