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








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

Компонента была написана на модуле NativeAPI для 1с8 (//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: Добавил свою прогу для выполнения голосовых команд на компьюторе в качестве примера и возможности этой технологии.

99 Comments

  1. Ibrogim

    Ну всё. Эра «хочу кнопочку которая будет делать то что я хочу» ушала в прошлое. Теперь бухгалтерши будут желать непосредственного общения с 1С ) «ОСВ по счёту 41.1 сформируйся»

    Reply
  2. SerG_121

    (1)Так это же хорошо ))

    Reply
  3. Ibrogim

    (2)

    Так это же хорошо

    А я и не спорю. Иногда лучше чтобы с бухгалтером говорила 1С а не программист.

    Reply
  4. SerG_121

    (3)))))

    Reply
  5. yukon

    (1) Ibrogim,

    А будет как обычно:

    Voice recognition technology? In a 1C? In Russia? You ever tried voice recognition technology?

    ELEVEN!

    🙂

    Reply
  6. script

    Вот интересно, а если повесить эту обработку на постоянное ожидание через фоновое задание ? Справится?

    Reply
  7. SerG_121

    (6)Попробуй ))

    Reply
  8. NazarovV

    (3) Ibrogim, а у нашего отдела была идея научить попугая простым казалось бы фразам: «Перезагрузите компьютер»,»Восстановите последовательность по партиям»,»Это к сисадминам».)

    Reply
  9. NazarovV

    (2) спасибо за идею. Сразу много разных мыслей по прикручиванию к Рознице.

    Reply
  10. mzelensky

    Очень интересная штука. НА данный момент смущает лишь то, что нужно устанавливать «время записи». Было бы интересно посадить на «постоянное прослушивание» и оперативный анализ

    Reply
  11. mzelensky

    Начал тестить — и ничего!

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

    Процедура ОбработчикОжидания()

    Если Об.Запись=Ложь тогда

    ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить.Доступность=Истина;

    КонецЕсли;

    КонецПроцедуры

    ???

    Reply
  12. MyPuK_OLD

    Кто скачал, поделитесь впечатлениями!!!)) Как все это дело работает? Реально ли запускать обмен между базами?))

    Возможно ли создание реализации и подбор номенклатуры голосовой командой и т.п.?))

    Требуются ли какие-либо вмешательства в код для корректной работы???

    Reply
  13. OldthiefXXX

    В тему http://infostart.ru/public/126505/ попробуй ей сказать (открыть справочник контрагенты)

    Reply
  14. SerG_121

    (9)Не за что, скоро обновленную версию компоненты выложу с постоянной записью и с прокси настройками!

    Reply
  15. SerG_121

    (11)Там небольшой глюк, комп должен быть подключен к инету, скоро выложу обновленную версию

    Reply
  16. NazarovV

    (14) ждём!

    Reply
  17. mzelensky

    (15) так он у меня и так подключен! Причем без всяких прокси.

    Reply
  18. SerG_121

    (10)(16)Все обновил! Смотрим и коментим!

    Reply
  19. mzelensky

    (18) Что-то оно как не работало, так и не работает. Нажимаю «Старт» и все — ноль эмоций.

    ПРОКСИ НЕТ!

    Что не так делаю?!

    Reply
  20. SerG_121

    (19)Давай в личку, будем разбираться

    Reply
  21. _HakerAlex_

    Интересная разработка, ставлю плюс… Попробовал очень даже ничего, но сделать что-то сложное пока не представляю как.

    Reply
  22. SerG_121

    Блин, еще одну ошибку у себя нашел кнопка Стоп не срабатывает. Уже исправил но пока не выложил

    Reply
  23. Mudrii_Gankster

    Приколько, главное чтобы мои Юзьвери не наткнулись на данную статью, а то точно попросят что то вроде «Анализ доступности товаров на складе по сезону Весна-Лето, тапочки женские». Ну а в целом, зачетная компонента, я думаю можно найти ей применение.

    P.S. не хотите расширить функционал для программиста, а то пальци писать устали, я бы поговорил на языке 1с с платформой.

    Reply
  24. SerG_121

    (23)чуть попозже планирую добавить функционал SpeechAPI5(синтез речи только движок устанавливай а управление из компоненты), плюс поиск слова в интернете( в WIKI) что оно означает.

    Reply
  25. verter.me

    Не работает. Выбираю устройство ввода. Нажимаю «Старт». Говорю «Раз, два, три». И ничего не происходит

    Reply
  26. SerG_121

    (25)Я вот как раз по этому поводу с mzelensky и разбираюсь. У него тоже не работает. У тебя в виндовс имя учетки случайно не на русском языке?

    Reply
  27. SerG_121

    (25)Я вот как раз по этому поводу с mzelensky и разбираюсь. У него тоже не работает. У тебя в виндовс имя учетки случайно не на русском языке? А индикатор работает когда раз два три говоришь?

    Reply
  28. verter.me

    (27) Имя учетки на английском. Win 7. Индикатор не работает. Кнопка «старт» залипает. Кнопка «Стоп» — не действует

    Reply
  29. SerG_121

    (28)64 битная винда?

    Reply
  30. verter.me

    (29) 32 бита

    Reply
  31. mzelensky

    у меня 64

    Reply
  32. SerG_121

    (30)(31)Все решил проблему для Win7x32 файлы libeay32.dll,libFLAC.dll,ssleay32.dll кидаем в system32 и подчищаем старое место их сохранения. Для Win7x64 если в system32 не заработает то кидаем WOW64 и отписываемся получилось или нет!

    Reply
  33. verter.me

    (32) Надо по новой скачивать или код самому подправлять?

    Reply
  34. SerG_121

    (33)Скачай по новой я там процедуру стоп доработал там небольшая ошибочка была и подправь в ручную пути этих 3 длл которые перечислил выше, потом отпешись!

    Reply
  35. verter.me

    (34) Скачал. изменил код:

    Процедура ВыгрузитьDllФайлыИзМекета()
    ФайлGoogleRcn=ПолучитьМакет(«GoogleRcn»);
    ФайлLibeay32=ПолучитьМакет(«libeay32»);
    ФайлLibFLAC=ПолучитьМакет(«libFLAC»);
    ФайлSsleay32=ПолучитьМакет(«ssleay32″);
    
    ВремКаталог=КаталогВременныхФайлов();
    
    ФайлGoogleRcn.Записать(ВремКаталог+»GoogleRcn.dll»);
    ФайлLibeay32.Записать(«C:WindowsSystem32libeay32.dll»);
    ФайлLibFLAC.Записать(«C:WindowsSystem32libFLAC.dll»);
    ФайлSsleay32.Записать(«C:WindowsSystem32ssleay32.dll»);
    ПодключитьВнешнююКомпоненту(ВремКаталог+»GoogleRcn.dll»,»DemoLib»,AddInType.Native);
    Об = Новый(«AddIn.DemoLib.GoogleRcn»);
    КонецПроцедуры

    Показать

    Запустил.

    Нажал «Старт». Говорю «рад, два, три» — работает индикатор.

    Нажимаю «Стоп» — и ничего.

    и еще при закрытии обработки, конфигурация подвисает. приходится ее перезапускать

    Reply
  36. SerG_121

    (35)Ставишь Время записи 2500 мили сек. Нажимаешь старт и говоришь «раз дв…..», потом по истечению 2500 мили сек. компонента отправляет запрос на Google server. После прихода ответа на запрос кнопка старт становится активной. кнопку стоп не надо жать. После нажатия кнопки стоп распознавание не произойдет, она просто останавливает запись файла.

    Reply
  37. lamer19

    Интересна информация о технологии. Интересна в контексте наличия незрячих друзей.

    Reply
  38. verter.me

    (36) Заработало. Спасибо за идею и реализацию.

    Reply
  39. ineshyk

    при запуске 1С падает

    Reply
  40. ineshyk

    падает на: ПодключитьВнешнююКомпоненту(ВремКаталог+»GoogleRcn.dll»,»DemoLib»,AddInType.Native);

    Reply
  41. SerG_121

    (40)кАКАЯ система(Windows)? XP? x32 x64?

    Reply
  42. ineshyk

    (41) win 7 x64

    Reply
  43. SerG_121

    (42)Пробовал это-Все решил проблему для Win7x32 файлы libeay32.dll,libFLAC.dll,ssleay32.dll кидаем в system32 и подчищаем старое место их сохранения. Для Win7x64 если в system32 не заработает то кидаем WOW64 и отписываемся получилось или нет!

    Reply
  44. mzelensky

    Win7x64. Закинул в папку system32 — заработало!

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

    Побочный вопрос — можно ли уйти от интернет-сервиса и юзать какую-нибудь локальную библиотеку?! Тем самым ускорить обработку.

    Reply
  45. SerG_121

    (44)нет нельзя!

    Reply
  46. mzelensky

    Плохо 🙁

    Пауза мешает оперативной работе

    Reply
  47. Milokko

    Интересная идея!

    Reply
  48. verter.me

    (45) Сделал адаптацию под управляемую форму.

    Поменял алгоритм.

    Теперь пауза не так сильно влияет.

    Улучшил внешний вид.

    1. Открываете обработку

    2. Нажимаете кнопку «Подключить» — должна появиться строка с выбором микрофона. Для этого необходимо, чтобы соблюдались правила (43)

    3. Выбираем микрофон

    4. При необходимости настраиваем прокси через кнопку «Настройка»

    5. Нажимаем кнопку «Начать запись» — в поле «Длительность записи» будет видно уменьшающееся время на разговор, надо успеть пока цифры уменьшаются. После этого идет отправка файла и ожидание ответа распознавания. Затем можно опять говорить, когда цифры будут уменьшаться. Цикл записи можно настроить в кнопке «Настройка»

    6. Когда надоест говорить. Нажмите кнопку «Остановить запись»

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

    Reply
  49. ranger

    {Форма.Форма.Форма(65)}: Тип не определен (AddIn.DemoLib.GoogleRcn)

    по причине:

    {Форма.Форма.Форма(65)}: Тип не определен (AddIn.DemoLib.GoogleRcn)

    В обработке так

    ВремКаталог=»C:WindowsSystem32″;

    ПодключитьВнешнююКомпоненту(ВремКаталог+»GoogleRcn.dll»,»DemoLib»,AddInType.Native);

    Об = Новый(«AddIn.DemoLib.GoogleRcn»);

    Ошибка при создании объекта

    Win7x64. Закинул в папку system32 — не заработало

    «кидаем WOW64» -это где?

    Reply
  50. ranger

    (48) verter.me,

    попробуй переменную с объектом убивать при закрытии

    Об=Неопределено;

    Reply
  51. SerG_121

    (49)в категории WindowsSysWOW64

    Reply
  52. SerG_121

    (50)Объект создается при создании обработки, и уничтожается автоматически при уничтожении обработки. А уничтожение обработки происходит при закрытии формы.

    Reply
  53. SerG_121

    (48)

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

    Там поток висит в ожидании на закрытие. попробуй вот ети обработки.Попробуй GoogleRcn и GoogleRcn2. В GoogleRcn2 там поток должен разрушаться без ожидания окончания

    Reply
  54. ranger

    (51)

    переместил в эту папку,при открытии обработки падает 1с

    Reply
  55. SerG_121

    (54)Может у тебя какие-то права ограничены на запись файлов или еще на что нибудь?

    Reply
  56. verter.me

    (50) ranger, (53) Попробую. О результатах сообщу.

    Reply
  57. SerG_121

    (56)ок

    Reply
  58. ranger

    (55)

    не могу понять.

    Я в процедуре ВыгрузитьDllФайлыИзМекета()

    оставил только

    ПодключитьВнешнююКомпоненту(ВремКаталог+»GoogleRcn.dll»,»DemoLib»,AddInType.Native);

    Об = Новый(«AddIn.DemoLib.GoogleRcn»);

    где ВремКаталог пробовал ставить и «C:WindowsSysWOW64»,и C:WindowsSystem32

    Reply
  59. TitanLuchs

    А что, прикольно, надо прикрутить ее к системе учета задач. «Новая задача» -> «Не забыть раздать звиздюлей» -> «Записать»

    Reply
  60. Andreyyy

    При открытии обработки, 1С падает.

    WIN7 32

    Reply
  61. ineshyk

    (59) прикольно к прикрутить к БСП подсистемы напоминаний пользователю)

    Reply
  62. SerG_121

    (58)Ну так правильно она и будет падать, все файлы и компоненту (GoogleRcn.dll) кинул в C:WindowsSystem32, а пытаешься подключить с этого пути ВремКаталог+»GoogleRcn.dll»

    Reply
  63. SerG_121

    (60)Смотри комментарии выше!

    Reply
  64. verter.me

    (50) ranger, Не работает.

    Reply
  65. verter.me

    (53) Не нашел отличий. И что понимается под потоком?

    Reply
  66. ineshyk

    переместил в sysWow, вот такая ошибка

    Reply
  67. ranger

    (62)

    что правильно?

    Я сначала кинул,как ты посоветовал,в C:WindowsSystem32-не работает,возникла Ошибка при создании объекта(из временного каталога 1с удалил),потом перекинул в «C:WindowsSysWOW64″(из System32 удалил)-падает при открытии обработки

    Reply
  68. SerG_121

    (65)Значит в system32 кидай

    Reply
  69. SerG_121

    (66) Это внутри компоненты запускается поток

    Reply
  70. ineshyk

    (68) такая же ошибка

    Reply
  71. SerG_121

    (67)В прикрепленном файле лежит обработка и три dll файла. Три dll файла кидаем в C:WindowsSystem32 и запускаем обработку. Ну если это не получится я тогда не знаю почему у тебя вылетает. С виндозовскими правами поковыряйся!

    Reply
  72. SerG_121

    (70)Смотри (71)

    Reply
  73. ineshyk

    (71) вылетает в дамп

    Reply
  74. SerG_121

    (73)Не знаю тоды, может dll не хватает, проверь в system32 есть такой файл msvcrt.dll если нету то закинь.

    Reply
  75. Andreyyy

    (63) Копирование файлов в систем32 не помогает. При открытии обработки валится 1С.

    Reply
  76. ineshyk

    (74) такой файл есть.

    Reply
  77. SerG_121

    (75)(76)У verter.me пошло норм на Win7

    Reply
  78. SerG_121

    (75)(76)А платформа 1С у вас какая? и Конфа какая?

    Reply
  79. Andreyyy

    (78) 8.2.17.153, конфа бухгалтерия 2.0

    Добавлю, что после копирования файла libeay32.dll в систем32 перестал работать клиент-банк(не проходила проверка сертификата и ругался эксплорер на этот файл), после удаления его клиент-банк заработал.

    Reply
  80. verter.me

    (77) Я, на всякий случай все dll закинул в system32 и попытался зарегистрировать GoogleRcn.dll. Не уверен, что получилось — но программа заработала

    Reply
  81. SerG_121

    (79)За основу брал проект MSpeech, там были все эти длл. ssleay32.dll отвечает за шифрование а тот файл новерное привязка к нему. Я удалил его из обработки чтоб проверить. Работает!

    Reply
  82. TitanLuchs

    (61) ineshyk, не, это не наш вариант, у нас своя клевая система управления задачами )

    Reply
  83. serg1983

    инструкцию можно чтоб работало

    Reply
  84. serg1983

    теперь я понял проблему 1с и нас в общем мы мало придаем значение справки или воопще её игнорируем

    Reply
  85. SerG_121

    (83)Уточните именно, какую справку? Если у вас Win7 читайте коменты там все написано!

    Reply
  86. Uejova

    А у меня пишет, что работа 1С прекращена. Windows пытается решить этот вопрос (((

    Reply
  87. SerG_121

    (86)Попробуй зарегистрировать GoogleRcn.dll . Читайте коменты

    Reply
  88. LaNaite

    Автор, дай я тебя обниму!)))

    Reply
  89. verter.me

    (88) LaNaite, Вообще то. Тут и другие кой-какую лепту внесли. Мы тоже требуем поощрения

    Reply
  90. Aleks1973

    У этого направления большое будущее…но не в бухгалтерии. В торговле, может быть.

    Говорить по времени дольше, чем набивать. Разве что хохлушек (или просто тех, кто умеет трещать) будут брать.

    Reply
  91. serg1983

    У меня ХР и не понятно о какой GoogleRcn.dll идет речь. Где её брать из макетов??

    Reply
  92. verter.me

    (90) Aleks1973, Соглашусь. Распознавание пока не очень. Баловство одно. НО!!! Отдельные-то слова распознает замечательно. Значит, на первое время к каждому объекту в 1С (справочник, документ) прикручиваем теги (приходник, ПКО, Приходно-кассовой ордер). Вешаем в фон прослушку, там же анализируем. Поймав например текст «Система ПКО», где Система ключевое слово, а за ним название объекта — можно открывать документ и далее пользователь работает с ним как обычно.

    Надо только решить проблему с подвисанием конфигурации.

    Reply
  93. SerG_121

    (88) ))

    Reply
  94. SeiOkami

    Интересненько… Сразу фантазия заиграла и идеи появились)

    Как будет время — погляжу.

    Заранее спасибо!

    Reply
  95. Ponommax

    На Win7 работает, а на XP нет.

    Что не хватает XP что есть в 7-ке, что бы эта обработка заработала?

    Reply
  96. SerG_121

    (95)может .net!

    Reply
  97. maverick76

    Ставлю + за идею

    Reply
  98. echo77

    У кого-нибудь эта херня работает?

    Reply
  99. SerG_121

    (98)Да, эта хреня работает!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *