gifts2017

Google, распознавание речи

Опубликовал serg_121 (SerG_121) в раздел Программирование - Внешние компоненты

Как известно, что технологии не стоят на месте и с удивительной скоростью движутся вперед. И одну из этих технологий под названием "Google speech recognition" я предоставляю на обозрение.

Компонента была написана на модуле NativeAPI для 1с8 (http://infostart.ru/public/81644/), за основу был взят проект MSpeech http://code.google.com/p/mspeech/ .
Масштаб использования компоненты очень велик, но основными являются - это распознавание голосовых команд и искусственный интеллект. Ну а теперь поговорим о функционале компоненты.
Функций и свойств у нее не много.

Функция Start, Старт, Параметров 0;
Функция GetNameDevice, ПолучитьИмяУстройства, Параметр 1-Индекс устройства ввода;
Функция SetIndexDevice, ПрисвоитьНомерУстройства, Параметр 1-Индекс устройства ввода;
Функция  GetDefaultDevice, ПолучитьНомерУстройстваПоУмолчанию, Параметров 0 ;
Свойство FileName, ИмяФайла, Чтение и Запись;
Свойство RecTime, ВремяЗаписи, Чтение и Запись;
Свойство DeviceCount, ЧислоУстройств, Чтение;
Свойство Recording, Запись, Чтение;

Свойство EnableProxy, ВключитьПрокси, Чтение,Запись;
Свойство ProxyHost','ПроксиАдрес, Чтение,Запись;
Свойство ProxyPort','ПроксиПорт, Чтение,Запись;
Свойство ProxyUser','ПроксиПользователь, Чтение,Запись;
Свойство ProxyPass','ПроксиПароль, Чтение,Запись;
Свойство HTTPTimeOut','ТаймаутЗапроса, Чтение,Запись;

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

PS: Добавил свою прогу для выполнения голосовых команд на компьюторе в качестве примера и возможности этой технологии.

Скачать файлы

Наименование Файл Версия Размер
GoogleRcn.rar (exe-приложение для выполнения команд) 46
.rar 1,13Mb
06.12.13
46
.rar 1.0 1,13Mb Скачать
GoogleRcn.epf 182
.epf 1,48Mb
06.12.13
182
.epf 1,48Mb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Иван Титов (Ibrogim) 09.04.13 11:23
Ну всё. Эра "хочу кнопочку которая будет делать то что я хочу" ушала в прошлое. Теперь бухгалтерши будут желать непосредственного общения с 1С ) "ОСВ по счёту 41.1 сформируйся"
bulpi; Mudrii_Gankster; +2 Ответить 2
2. serg_121 (SerG_121) 09.04.13 11:26
3. Иван Титов (Ibrogim) 09.04.13 11:32
(2) SerG_121,
Так это же хорошо
А я и не спорю. Иногда лучше чтобы с бухгалтером говорила 1С а не программист.
5. Юрий Гончарук (yukon) 09.04.13 15:45
(1) Ibrogim,

А будет как обычно:
Voice recognition technology? In a 1C? In Russia? You ever tried voice recognition technology?
ELEVEN!

:)
6. script Мальчинко (script) 10.04.13 01:05
Вот интересно, а если повесить эту обработку на постоянное ожидание через фоновое задание ? Справится?
7. serg_121 (SerG_121) 10.04.13 07:16
8. Вадим Назаров (NazarovV) 10.04.13 07:56
(3) Ibrogim, а у нашего отдела была идея научить попугая простым казалось бы фразам: "Перезагрузите компьютер","Восстановите последовательность по партиям","Это к сисадминам".)
mikhailovaew; bulpi; +2 Ответить
9. Вадим Назаров (NazarovV) 10.04.13 07:57
(2) SerG_121, спасибо за идею. Сразу много разных мыслей по прикручиванию к Рознице.
10. Макс Зеленский (mzelensky) 10.04.13 08:03
Очень интересная штука. НА данный момент смущает лишь то, что нужно устанавливать "время записи". Было бы интересно посадить на "постоянное прослушивание" и оперативный анализ
11. Макс Зеленский (mzelensky) 10.04.13 08:12
Начал тестить - и ничего!

Нажимаю кнопку "Стар", она становится "не активной" и все....индикатор не идет, ничего не выводится. Обработчит ожидания только крутится и все:

Процедура ОбработчикОжидания()
Если Об.Запись=Ложь тогда
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить.Доступность=Истина;
КонецЕсли;
КонецПроцедуры

???
12. Владимир 777 (MyPuK_OLD) 10.04.13 08:28
Кто скачал, поделитесь впечатлениями!!!)) Как все это дело работает? Реально ли запускать обмен между базами?))
Возможно ли создание реализации и подбор номенклатуры голосовой командой и т.п.?))
Требуются ли какие-либо вмешательства в код для корректной работы???
13. OldthiefXXX OldthiefXXX (OldthiefXXX) 10.04.13 09:46
В тему http://infostart.ru/public/126505/ попробуй ей сказать (открыть справочник контрагенты)
14. serg_121 (SerG_121) 10.04.13 10:00
(9)Не за что, скоро обновленную версию компоненты выложу с постоянной записью и с прокси настройками!
15. serg_121 (SerG_121) 10.04.13 10:02
(11)Там небольшой глюк, комп должен быть подключен к инету, скоро выложу обновленную версию
16. Вадим Назаров (NazarovV) 10.04.13 10:03
17. Макс Зеленский (mzelensky) 10.04.13 10:15
(15) так он у меня и так подключен! Причем без всяких прокси.
18. serg_121 (SerG_121) 10.04.13 12:10
(10)(16)Все обновил! Смотрим и коментим!
19. Макс Зеленский (mzelensky) 10.04.13 12:32
(18) Что-то оно как не работало, так и не работает. Нажимаю "Старт" и все - ноль эмоций.

ПРОКСИ НЕТ!

Что не так делаю?!
20. serg_121 (SerG_121) 10.04.13 12:40
(19)Давай в личку, будем разбираться
21. AlexPotemkin123 (_HakerAlex_) 10.04.13 13:12
Интересная разработка, ставлю плюс... Попробовал очень даже ничего, но сделать что-то сложное пока не представляю как.
22. serg_121 (SerG_121) 10.04.13 13:35
Блин, еще одну ошибку у себя нашел кнопка Стоп не срабатывает. Уже исправил но пока не выложил
23. Руслан Программист 1с (Mudrii_Gankster) 10.04.13 14:23
Приколько, главное чтобы мои Юзьвери не наткнулись на данную статью, а то точно попросят что то вроде "Анализ доступности товаров на складе по сезону Весна-Лето, тапочки женские". Ну а в целом, зачетная компонента, я думаю можно найти ей применение.

P.S. не хотите расширить функционал для программиста, а то пальци писать устали, я бы поговорил на языке 1с с платформой.
24. serg_121 (SerG_121) 10.04.13 14:52
(23)чуть попозже планирую добавить функционал SpeechAPI5(синтез речи только движок устанавливай а управление из компоненты), плюс поиск слова в интернете( в WIKI) что оно означает.
25. Андрей Акулов (verter.me) 10.04.13 15:39
Не работает. Выбираю устройство ввода. Нажимаю "Старт". Говорю "Раз, два, три". И ничего не происходит
26. serg_121 (SerG_121) 10.04.13 15:49
(25)Я вот как раз по этому поводу с mzelensky и разбираюсь. У него тоже не работает. У тебя в виндовс имя учетки случайно не на русском языке?
27. serg_121 (SerG_121) 10.04.13 15:51
(25)Я вот как раз по этому поводу с mzelensky и разбираюсь. У него тоже не работает. У тебя в виндовс имя учетки случайно не на русском языке? А индикатор работает когда раз два три говоришь?
28. Андрей Акулов (verter.me) 10.04.13 15:52
(27) SerG_121, Имя учетки на английском. Win 7. Индикатор не работает. Кнопка "старт" залипает. Кнопка "Стоп" - не действует
29. serg_121 (SerG_121) 10.04.13 15:56
30. Андрей Акулов (verter.me) 10.04.13 15:57
31. Макс Зеленский (mzelensky) 10.04.13 16:06
32. serg_121 (SerG_121) 10.04.13 16:43
(30)(31)Все решил проблему для Win7x32 файлы libeay32.dll,libFLAC.dll,ssleay32.dll кидаем в system32 и подчищаем старое место их сохранения. Для Win7x64 если в system32 не заработает то кидаем WOW64 и отписываемся получилось или нет!
33. Андрей Акулов (verter.me) 10.04.13 16:50
(32) SerG_121, Надо по новой скачивать или код самому подправлять?
34. serg_121 (SerG_121) 10.04.13 16:54
(33)Скачай по новой я там процедуру стоп доработал там небольшая ошибочка была и подправь в ручную пути этих 3 длл которые перечислил выше, потом отпешись!
35. Андрей Акулов (verter.me) 10.04.13 17:18
(34) SerG_121, Скачал. изменил код:
Процедура ВыгрузитьDllФайлыИзМекета()
	ФайлGoogleRcn=ПолучитьМакет("GoogleRcn");
	ФайлLibeay32=ПолучитьМакет("libeay32");
	ФайлLibFLAC=ПолучитьМакет("libFLAC");
	ФайлSsleay32=ПолучитьМакет("ssleay32");
	
	ВремКаталог=КаталогВременныхФайлов();
	
	ФайлGoogleRcn.Записать(ВремКаталог+"GoogleRcn.dll");
	ФайлLibeay32.Записать("C:\Windows\System32\libeay32.dll");
	ФайлLibFLAC.Записать("C:\Windows\System32\libFLAC.dll");
	ФайлSsleay32.Записать("C:\Windows\System32\ssleay32.dll");
	ПодключитьВнешнююКомпоненту(ВремКаталог+"GoogleRcn.dll","DemoLib",AddInType.Native);
	Об = Новый("AddIn.DemoLib.GoogleRcn");
КонецПроцедуры
...Показать Скрыть


Запустил.
Нажал "Старт". Говорю "рад, два, три" - работает индикатор.
Нажимаю "Стоп" - и ничего.

и еще при закрытии обработки, конфигурация подвисает. приходится ее перезапускать
36. serg_121 (SerG_121) 10.04.13 18:01
(35)Ставишь Время записи 2500 мили сек. Нажимаешь старт и говоришь "раз дв.....", потом по истечению 2500 мили сек. компонента отправляет запрос на Google server. После прихода ответа на запрос кнопка старт становится активной. кнопку стоп не надо жать. После нажатия кнопки стоп распознавание не произойдет, она просто останавливает запись файла.
37. Андрей (lamer19) 10.04.13 19:05
Интересна информация о технологии. Интересна в контексте наличия незрячих друзей.
38. Андрей Акулов (verter.me) 10.04.13 20:01
(36) SerG_121, Заработало. Спасибо за идею и реализацию.
39. Игорь Нешик (ineshyk) 10.04.13 20:46
40. Игорь Нешик (ineshyk) 10.04.13 20:48
падает на: ПодключитьВнешнююКомпоненту(ВремКаталог+"GoogleRcn.dll","DemoLib",AddInType.Native);
41. serg_121 (SerG_121) 10.04.13 21:56
(40)кАКАЯ система(Windows)? XP? x32 x64?
42. Игорь Нешик (ineshyk) 10.04.13 22:05
43. serg_121 (SerG_121) 10.04.13 22:47
(42)Пробовал это-Все решил проблему для Win7x32 файлы libeay32.dll,libFLAC.dll,ssleay32.dll кидаем в system32 и подчищаем старое место их сохранения. Для Win7x64 если в system32 не заработает то кидаем WOW64 и отписываемся получилось или нет!
44. Макс Зеленский (mzelensky) 11.04.13 07:43
Win7x64. Закинул в папку system32 - заработало!

Теперь возникает вопрос. При обработке "речи" идет некая пауза, на то чтобы записать файл, отправить на сервер и дождаться ответа. Можно ли уменьшить эту паузу?!

Побочный вопрос - можно ли уйти от интернет-сервиса и юзать какую-нибудь локальную библиотеку?! Тем самым ускорить обработку.
45. serg_121 (SerG_121) 11.04.13 08:15
46. Макс Зеленский (mzelensky) 11.04.13 08:36
Плохо :(
Пауза мешает оперативной работе
47. Санчез Милокко (Milokko) 11.04.13 08:49
48. Андрей Акулов (verter.me) 11.04.13 09:09
(45) SerG_121, Сделал адаптацию под управляемую форму.
Поменял алгоритм.
Теперь пауза не так сильно влияет.
Улучшил внешний вид.

1. Открываете обработку
2. Нажимаете кнопку "Подключить" - должна появиться строка с выбором микрофона. Для этого необходимо, чтобы соблюдались правила (43) SerG_121,
3. Выбираем микрофон
4. При необходимости настраиваем прокси через кнопку "Настройка"
5. Нажимаем кнопку "Начать запись" - в поле "Длительность записи" будет видно уменьшающееся время на разговор, надо успеть пока цифры уменьшаются. После этого идет отправка файла и ожидание ответа распознавания. Затем можно опять говорить, когда цифры будут уменьшаться. Цикл записи можно настроить в кнопке "Настройка"
6. Когда надоест говорить. Нажмите кнопку "Остановить запись"

есть нерешенная проблема: После закрытия обработки - подвисает конфигурация - ее необходимо перезагружать. Возможно это связано с процедурой подключения библиотеки
Прикрепленные файлы:
GoogleRcn_upravl_form.epf
49. Марат Ибрагимов (ranger) 11.04.13 09:12
{Форма.Форма.Форма(65)}: Тип не определен (AddIn.DemoLib.GoogleRcn)
по причине:
{Форма.Форма.Форма(65)}: Тип не определен (AddIn.DemoLib.GoogleRcn)

В обработке так
ВремКаталог="C:\Windows\System32\";
ПодключитьВнешнююКомпоненту(ВремКаталог+"GoogleRcn.dll","DemoLib",AddInType.Native);
Об = Новый("AddIn.DemoLib.GoogleRcn");
Ошибка при создании объекта

Win7x64. Закинул в папку system32 - не заработало
"кидаем WOW64" -это где?
50. Марат Ибрагимов (ranger) 11.04.13 09:18
(48) verter.me,
попробуй переменную с объектом убивать при закрытии
Об=Неопределено;
51. serg_121 (SerG_121) 11.04.13 10:11
52. serg_121 (SerG_121) 11.04.13 10:14
(50)Объект создается при создании обработки, и уничтожается автоматически при уничтожении обработки. А уничтожение обработки происходит при закрытии формы.
53. serg_121 (SerG_121) 11.04.13 10:33
(48)
есть нерешенная проблема: После закрытия обработки - подвисает конфигурация - ее необходимо перезагружать. Возможно это связано с процедурой подключения библиотеки
Там поток висит в ожидании на закрытие. попробуй вот ети обработки.Попробуй GoogleRcn и GoogleRcn2. В GoogleRcn2 там поток должен разрушаться без ожидания окончания
Прикрепленные файлы:
GoogleRcn.epf
GoogleRcn2.epf
54. Марат Ибрагимов (ranger) 11.04.13 10:33
(51) SerG_121,
переместил в эту папку,при открытии обработки падает 1с
55. serg_121 (SerG_121) 11.04.13 10:36
(54)Может у тебя какие-то права ограничены на запись файлов или еще на что нибудь?
56. Андрей Акулов (verter.me) 11.04.13 10:56
(50) ranger, (53) SerG_121, Попробую. О результатах сообщу.
58. Марат Ибрагимов (ranger) 11.04.13 12:02
(55) SerG_121,
не могу понять.
Я в процедуре ВыгрузитьDllФайлыИзМекета()
оставил только
ПодключитьВнешнююКомпоненту(ВремКаталог+"GoogleRcn.dll","DemoLib",AddInType.Native);
Об = Новый("AddIn.DemoLib.GoogleRcn");
где ВремКаталог пробовал ставить и "C:\Windows\SysWOW64\",и C:\Windows\System32
59. Юрий Лазаренко (TitanLuchs) 11.04.13 12:10
А что, прикольно, надо прикрутить ее к системе учета задач. "Новая задача" -> "Не забыть раздать звиздюлей" -> "Записать"
60. Andrey (Andreyyy) 11.04.13 12:17
При открытии обработки, 1С падает.
WIN7 32
61. Игорь Нешик (ineshyk) 11.04.13 12:41
(59) прикольно к прикрутить к БСП подсистемы напоминаний пользователю)
62. serg_121 (SerG_121) 11.04.13 12:45
(58)Ну так правильно она и будет падать, все файлы и компоненту (GoogleRcn.dll) кинул в C:\Windows\System32, а пытаешься подключить с этого пути ВремКаталог+"GoogleRcn.dll"
63. serg_121 (SerG_121) 11.04.13 12:46
(60)Смотри комментарии выше!
64. Андрей Акулов (verter.me) 11.04.13 12:50
65. Игорь Нешик (ineshyk) 11.04.13 12:51
переместил в sysWow, вот такая ошибка


66. Андрей Акулов (verter.me) 11.04.13 12:51
(53) SerG_121, Не нашел отличий. И что понимается под потоком?
67. Марат Ибрагимов (ranger) 11.04.13 13:13
(62) SerG_121,
что правильно?
Я сначала кинул,как ты посоветовал,в C:\Windows\System32-не работает,возникла Ошибка при создании объекта(из временного каталога 1с удалил),потом перекинул в "C:\Windows\SysWOW64\"(из System32 удалил)-падает при открытии обработки
68. serg_121 (SerG_121) 11.04.13 13:34
69. serg_121 (SerG_121) 11.04.13 13:35
(66) Это внутри компоненты запускается поток
70. Игорь Нешик (ineshyk) 11.04.13 13:41
71. serg_121 (SerG_121) 11.04.13 14:00
(67)В прикрепленном файле лежит обработка и три dll файла. Три dll файла кидаем в C:\Windows\System32\ и запускаем обработку. Ну если это не получится я тогда не знаю почему у тебя вылетает. С виндозовскими правами поковыряйся!
Прикрепленные файлы:
GoogleRcn1C.rar
72. serg_121 (SerG_121) 11.04.13 14:03
73. Игорь Нешик (ineshyk) 11.04.13 14:22
74. serg_121 (SerG_121) 11.04.13 15:10
(73)Не знаю тоды, может dll не хватает, проверь в system32 есть такой файл msvcrt.dll если нету то закинь.
Прикрепленные файлы:
msvcrt.dll
75. Andrey (Andreyyy) 11.04.13 15:33
(63) Копирование файлов в систем32 не помогает. При открытии обработки валится 1С.
76. Игорь Нешик (ineshyk) 11.04.13 15:48
77. serg_121 (SerG_121) 11.04.13 15:52
(75)(76)У verter.me пошло норм на Win7
78. serg_121 (SerG_121) 11.04.13 15:53
(75)(76)А платформа 1С у вас какая? и Конфа какая?
79. Andrey (Andreyyy) 11.04.13 16:05
(78) 8.2.17.153, конфа бухгалтерия 2.0
Добавлю, что после копирования файла libeay32.dll в систем32 перестал работать клиент-банк(не проходила проверка сертификата и ругался эксплорер на этот файл), после удаления его клиент-банк заработал.
80. Андрей Акулов (verter.me) 11.04.13 16:11
(77) SerG_121, Я, на всякий случай все dll закинул в system32 и попытался зарегистрировать GoogleRcn.dll. Не уверен, что получилось - но программа заработала
81. serg_121 (SerG_121) 11.04.13 16:19
(79)За основу брал проект MSpeech, там были все эти длл. ssleay32.dll отвечает за шифрование а тот файл новерное привязка к нему. Я удалил его из обработки чтоб проверить. Работает!
82. Юрий Лазаренко (TitanLuchs) 11.04.13 16:53
(61) ineshyk, не, это не наш вариант, у нас своя клевая система управления задачами )
83. Фантаев Сегрей (serg1983) 12.04.13 08:58
инструкцию можно чтоб работало
84. Фантаев Сегрей (serg1983) 12.04.13 09:05
теперь я понял проблему 1с и нас в общем мы мало придаем значение справки или воопще её игнорируем
85. serg_121 (SerG_121) 12.04.13 13:24
(83)Уточните именно, какую справку? Если у вас Win7 читайте коменты там все написано!
86. Сергей Березин (Uejova) 12.04.13 13:24
А у меня пишет, что работа 1С прекращена. Windows пытается решить этот вопрос (((
87. serg_121 (SerG_121) 12.04.13 13:25
(86)Попробуй зарегистрировать GoogleRcn.dll . Читайте коменты
88. Анаит Бадалян (LaNaite) 12.04.13 16:39
Автор, дай я тебя обниму!)))
89. Андрей Акулов (verter.me) 12.04.13 16:44
(88) LaNaite, Вообще то. Тут и другие кой-какую лепту внесли. Мы тоже требуем поощрения
90. Александр Ульянов (Aleks1973) 12.04.13 16:47
У этого направления большое будущее...но не в бухгалтерии. В торговле, может быть.
Говорить по времени дольше, чем набивать. Разве что хохлушек (или просто тех, кто умеет трещать) будут брать.
91. Фантаев Сегрей (serg1983) 12.04.13 17:50
У меня ХР и не понятно о какой GoogleRcn.dll идет речь. Где её брать из макетов??
92. Андрей Акулов (verter.me) 12.04.13 17:58
(90) Aleks1973, Соглашусь. Распознавание пока не очень. Баловство одно. НО!!! Отдельные-то слова распознает замечательно. Значит, на первое время к каждому объекту в 1С (справочник, документ) прикручиваем теги (приходник, ПКО, Приходно-кассовой ордер). Вешаем в фон прослушку, там же анализируем. Поймав например текст "Система ПКО", где Система ключевое слово, а за ним название объекта - можно открывать документ и далее пользователь работает с ним как обычно.

Надо только решить проблему с подвисанием конфигурации.
94. Виталий Черненко (SeiOkami) 19.04.13 13:47
Интересненько... Сразу фантазия заиграла и идеи появились)
Как будет время - погляжу.
Заранее спасибо!
95. Максим Пономарев (Ponommax) 26.04.13 18:14
На Win7 работает, а на XP нет.
Что не хватает XP что есть в 7-ке, что бы эта обработка заработала?
96. serg_121 (SerG_121) 28.04.13 08:26
97. Константин (maverick76) 07.05.13 11:34
98. Александр Крынецкий (echo77) 24.06.13 20:41
У кого-нибудь эта херня работает?
99. serg_121 (SerG_121) 25.06.13 08:38
(98)Да, эта хреня работает!
GATTUSO; SiAl; +2 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа