6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
1

Голосовой калькулятор

04.12.2013, 16:29. Показов 4260. Ответов 42
Метки нет (Все метки)

Приветствую,решил что данная ветка подходит все таки лучше,посему задам вопросы здесь.

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

Более подробно углубившись в данную тему,я узнал о ранее неизвестных мне вещах(пока только узнал)) - преобразование Фурье,MFCC векторы и т д.

Собс-но,говоря с чего начать?)

Имеется запись звука с микрофона(частота 44.1кГц Моно 16 бит,файл WAVE)

Хочется чтобы система реально была рабочей) и применяла "взрослые" алгоритмы, куда ж без них))

На данном этапе , я так понимаю , нужен спектр этого сигнала,пойду читать на данную тему!

Многие скажут зачем писать велисипед очередной,когда есть куча библиотек Сфинкс4 и тд,просто хочется самому вникнуть в суть работы подобных систем)

У кого есть какие то мысли по данному поводу,говорите))

Спасибо!

Добавлено через 12 минут
Пока читаю теорию вот тут:
http://websound.ru/articles/th... theory.htm
И понимаю, какой же я нуб)) в звуке

Добавлено через 53 секунды
А вот небольшая статья,тоже по теме: http://habrahabr.ru/post/150251/

Добавлено через 2 минуты
Понять бы еще,что там)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2013, 16:29
Ответы с готовыми решениями:

Голосовой Комментарий В 8.2
Можно ли в типовом Управлении Торговлей 10.3 присоединить к документу голосовой комментарий...

Голосовой ввод
Загорелся идеей написать программу, контролируемую голосом (с микрофона в "онлайн" режиме)...

Голосовой чат
Необходимо реализовать голосовой чат. В процессе разработки возникли вопросы: 1) Какой протокол...

голосовой чат
Хочу терь понять как делается голосовой чат) дайте ссылку или исходник, или прост напишите че нить...

42
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.12.2013, 16:34 2
Голосовой интерактивный переводчик, как вариант:


Начните с прочтения Литература по ЦОС и алгоритмам, там разверните вкладку "Распознавание и синтез речи", у вас откроется третий глаз. Удачи.
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 16:57  [ТС] 3
Цитата Сообщение от raxp Посмотреть сообщение
Голосовой интерактивный переводчик, как вариант:
Так тут используется GoogleSpeech RecognizeAPI,а мне хотелось бы без использования чего то стороннего

Добавлено через 5 минут
Жаль вот тут:
http://habrahabr.ru/post/150251/
MFCC векторы получают с помощью библиотеки,некой SPro

Добавлено через 14 минут
Что вообще есть спектр?) простыми словами.Вот если смотреть на эти красивые графики)) то видно, что на оси x - Частота,а на оси y - Амплитуда.Но график нам не нужнен! нужна некая последовательность чисел(видимо те самые по которым и строится графический спектр)
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.12.2013, 16:58 4
Эх, ну будьте чутка внимательнее.

Пост #1:
Голосовой калькулятор


Посты #4-5:
Голосовой калькулятор


Посты #21-24:
Голосовой калькулятор


Что вообще есть спектр?
вообще, распределение энергии по частотам ...подробности, все там же/
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 17:25  [ТС] 5
Мдя... Столько всего,с нуля очень сложно..

Добавлено через 5 минут
Очень много страшных слов))
Записал пару раз слово "пять" попробую потом записать с разных микрофонов)

Не по теме:

знать бы алгоритм действий дальше..

0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.12.2013, 17:53 6
...так пройдитесь по ссылкам далее и определитесь, либо чужим, либо свое с нуля. С нуля, тогда не жалуйтесь что сложно, это с наскока не решается, это долгий и человеко-часов затратный путь.
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 18:34  [ТС] 7
Цитата Сообщение от raxp Посмотреть сообщение
С нуля, тогда не жалуйтесь что сложно, это с наскока не решается, это долгий и человеко-часов затратный путь.
Хорошо)) Только вперед!

Вот один момент все же не ясен, как обычный wave файл(параметры записи котрого: format PCM_SIGNED 16000.0 Hz, 16 bit, mono, 2 bytes/frame, big-endian)
16000.0 Hz - то есть 16000 колебаний в секунду
И длительность которого не больше 3 секунд,ка вот это все применять к прямому дискретному преобразованию Фурье?
Формула которого(прикрепил ниже)

Из вики видим следующее:
Обозначения:
N — количество значений сигнала, измеренных за период, а также количество компонент разложения;
x_n, \quad n = 0,\dots,N-1, — измеренные значения сигнала (в дискретных временных точках с номерами n = 0,\dots,N-1, которые являются входными данными для прямого преобразования и выходными для обратного;
X_k, \quad k = 0,\dots,N-1, — N комплексных амплитуд синусоидальных сигналов, слагающих исходный сигнал; являются выходными данными для прямого преобразования и входными для обратного; поскольку амплитуды комплексные, то по ним можно вычислить одновременно и амплитуду, и фазу;
|X_k| \over N — обычная (вещественная) амплитуда k-го синусоидального сигнала;
\arg(X_k) — фаза k-го синусоидального сигнала (аргумент комплексного числа);
k — индекс частоты. Частота k-го сигнала равна \frac{k}{T}, где T — период времени, в течение которого брались входные данные.
Из последнего видно, что преобразование раскладывает сигнал на синусоидальные составляющие (которые называются гармониками) с частотами от N колебаний за период до одного колебания за период. Поскольку частота дискретизации сама по себе равна N отсчётов за период, то высокочастотные составляющие не могут быть корректно отображены — возникает муаровый эффект. Это приводит к тому, что вторая половина из N комплексных амплитуд, фактически, является зеркальным отображением первой и не несёт дополнительной информации.
Как вот это все соединить?)
Изображения
 
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.12.2013, 20:44 8
Там же, по той же ссылке, приложены две моих статьи на данную тему.
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 22:20  [ТС] 9
Цитата Сообщение от raxp Посмотреть сообщение
Там же, по той же ссылке, приложены две моих статьи на данную тему.
Где они есть то?) уж простите,пожалуйста
У меня есть ваша только одна статья, и то не отсюда: статья_Быстрое преобразование Фурье. Практика использования

Добавлено через 10 минут
ой,там и вторая)) кочерыжка что то не варит..

Добавлено через 10 минут
Только вот это скачать не могу: http://raxp.radioliga.com/cnt/s.php?p=pro1.pdf

Добавлено через 27 секунд
странно..
0
raxp
04.12.2013, 22:33
  #10

Не по теме:

...проверил, скачалось 13,4 MБ (14*025*073 байт), открылось.

1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 22:44  [ТС] 11
А у меня , открылся антивирус,что то пробормычал и теперь пустая белая страница.. Можете перезалить,пожалуйста)))
0
raxp
04.12.2013, 23:01
  #12

Не по теме:

Перезалил. В PDF-ник включены ресурсы к статьям в журнале. Добавьте в исключения в своем антивире, хотя именно с этим выпуском такое впервые за три года, обычно на материалы с хуками ругалось :)

Какой именно антивирус у вас?

1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 23:19  [ТС] 13

Не по теме:

аваст -_\\

Там высветилось,что то типо названия программы..
Не нифга,опять белый экран..



Добавлено через 5 минут
Все Хорошо! осталось разобраться...

Добавлено через 3 минуты
Ничего себе программы.. Будем разбираться..
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.12.2013, 23:23 14
...аваст ...очередной бзик перепуганного авиря. C ESET NOD и KIS уже разбирались на данную тему.
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 23:33  [ТС] 15
Я так понимаю вот и план)

Вкратце, процедура (прямого) БПФ в компоненте будет включать в себя следующие шаги:
берем из сигнала N выборок кратным степени 2, т.е. 2^k
рассчитываем комплексное БПФ, мнимые части заполняем нулями, получаем 2N значений
амплитуду сигнала для каждой гармоники получаем складывая квадраты действительной и мнимой
части и извлекая из суммы корень квадратный
получаем N значений, из которых значения от 0 до (N/2-1) представляют наш спектр в области от 0 до
половины частоты дискретизации, вторую половину (зеркалку) отбрасываем
для адекватного представления пересчитываем в дБ, с учетом максимальной величины в выборке по
формуле 20lg(Ai/Amax), для напряжений
при необходимости используем различные сглаживающие окна для взвешивания входного сигнала во
временной области, например Блэкмана-Харриса
добавляем порог чувствительности (подставку)
результаты выводим в качестве события компонента, например, используя series для подключения к
TChart-у

Добавлено через 1 минуту
Цитата Сообщение от LanGrande Посмотреть сообщение
берем из сигнала N выборок кратным степени 2, т.е. 2^k
А если выборки не брать?)Просто чистый сигнал..

Добавлено через 3 минуты
Качество будет хуже,конечно.Но я хотел не делать выборки,а сам файл потом разделять на кусочки и по ним делать анализ

Добавлено через 27 секунд
Цитата Сообщение от LanGrande Посмотреть сообщение
мнимые части заполняем нулями, получаем 2N значений
Что тут есть мнимые части?)

Добавлено через 2 минуты
То есть те которые не попали тут под выборку?)

Добавлено через 1 минуту
Цитата Сообщение от LanGrande Посмотреть сообщение
0 до (N/2-1) представляют наш спектр в области от 0 до
половины частоты дискретизации
О,значит N частота дискретизации ,картина начала проясняться..
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.12.2013, 23:34 16
https://www.cyberforum.ru/post3944169.html
http://logways.ru/2011/10/29/k... format-iq/

N частота дискретизации
нет. Где вы там частоту увидели?
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
04.12.2013, 23:45  [ТС] 17
Цитата Сообщение от LanGrande Посмотреть сообщение
0 до (N/2-1)
Цитата Сообщение от LanGrande Посмотреть сообщение
наш спектр в области от 0 до
половины частоты дискретизации
Я думал,что тут (N/2-1) Это и есть она(

Добавлено через 6 минут
Пойду почитаю Обработка сигналов.Первое знакомство под вечерок)) Думаю самое то
0
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
10.12.2013, 20:02  [ТС] 18
Мдя... Ничего - ноль((

Расширение файла: wav
Частота дискретизации 16000.0
16000.0 Hz, 16 bit, mono, 2 bytes/frame, big-endian

Эо все , что удается пока мне получить из файла.Никак не могу въехать в формулу эту,где там что..

Добавлено через 49 минут
Оговорюсь,многие делят файл на участки(многие называют их фреймами) Так как я программно,не очень умею это делать))
Хотя есть..
Java
1
clip.setFramePosition(0);

Не по теме:

Если как то узнать полную позицию,то можно поделить файл на равные кусочки..


Пока применим преобразование для полного файла.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
10.12.2013, 21:25 19
Мдя... Ничего - ноль((
тогда ваш путь - обертки, FFTR.DLL у меня же ...или кроссплатформенный FFTW http://www.fftw.org и т.п.

Пока применим преобразование для полного файла.
некорректно.
1
6 / 6 / 1
Регистрация: 15.09.2013
Сообщений: 149
11.12.2013, 16:09  [ТС] 20
Цитата Сообщение от raxp Посмотреть сообщение
некорректно.
Почему?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2013, 16:09

Голосовой чат
Как в программе сделать голосовой чат? Добавлено через 1 час 57 минут Ну скажите!

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

Голосовой чат
На дипломную нужно реализовать локальный чат (с передачей сообщений проблем нет). Проблемы есть с...

голосовой чат
Всем привет! Решил написать голосовой чат по локальной сети, но в сетевом программировании не очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru