Vvmebel.com

Новости с мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программируем приложение c распознавание английского текста

Разработка решения для управления документооборотом: как мы выбирали OCR библиотеку для наших задач

30 Августа, 2017

Нам нужно было улучшить документооборот в нашей компании, в первую очередь — увеличить скорость обработки бумажных документов. Для этого мы решили разработать программное решение на базе одной из OCR (optical character recognition) библиотек.

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

Кроме того, OCR используется как метод ввода информации из бумажных документов (включая финансовые записи, визитные карточки, счета-фактуры и многое другое).

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

Мы проанализировали три наиболее популярные OCR библиотеки:

— Google Text Recognition API

Google Text Recognition API

Google Text Recognition API — это процесс обнаружения текста в изображениях и видео потоках и распознавания содержащегося в нем текста. После обнаружения распознаватель определяет фактический текст в каждом блоке и разбивает его на слова и строки. Он обнаруживает текст различных языков (французский, немецкий, английский и т.д.) в режиме реального времени.

Стоит отметить, что, в целом, данная OCR с поставленной задачей справилась. Мы получили возможность распознавать текст как в real-time, так и с уже готовых изображений текстовых документов. В ходе анализа данной библиотеки мы выявили как преимущества, так и недостатки ее использования.

— Возможность распознавания текста в реальном времени

— Возможность распознавания текста с изображений;

— Небольшой размер библиотеки;

— Высокая скорость распознавания.

— Большой размер файлов с обученными данными (

Tesseract

Tesseract — это OCR библиотека с открытым исходным кодом для разных операционных систем. Представляет собой бесплатное программное обеспечение, выпущенное под лицензией Apache, версия 2.0, поддерживает различные языки.

Разработка Tesseract финансировалась компанией Google с 2006 года, время, когда она считалась одной из наиболее точных и эффективных OCR библиотек с открытым исходным кодом.

Как бы то ни было на тот момент, результатами внедрения Tesseract мы остались не сильно довольны, т.к. библиотека невероятно объемная и не позволяет распознавать текст в реальном времени.

— Имеет открытый исходный код;

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

— Недостаточная точность распознавания, что устраняется путем тренировки и обучения алгоритма распознавания;

— Для распознавания текста в реальном времени требуется дополнительная обработка полученного изображения;

— Небольшая точность распознавания при использовании стандартных файлов с данными о шрифтах, словах и символах.

Anyline

Anyline предоставляет многоплатформенный SDK, который позволяет разработчикам легко интегрировать функции OCR в приложения. Данная OCR библиотека привлекла нас многочисленными возможностями настройки параметров распознавания и предоставляемыми моделями для решения конкретных прикладных задач. Стоит отметить, что библиотека платная и предназначена для коммерческого использования.

— Довольно простая настройка распознавания нужных шрифтов;

— Распознавание текста в реальном времени;

— Легкая и удобная настройка параметров распознавания;

— Библиотека может распознавать штрихкоды и QR-коды;

— Предоставляет готовые модули для решения разных задач.

— Невысокая скорость распознавания;

— Для получения удовлетворительных результатов требуется первоначальная настройка шрифтов для распознавания.

В ходе проведенного анализа для решения наших задач была мы остановились на Google Text Recognition API, которая совмещает в себе высокую скорость работы, легкую настройку и высокие результаты распознавания.

Разработанное нами решение позволяет сканировать бумажные документы, автоматически оцифровывать их и сохранять в единую базу данных. Качество распознаваемой информации составляет около 97%, что является очень хорошим результатом.

За счет внедрения разработанной системы внутренний документооборот (включая обработку документов, их создание и обмен между отделами и др.) был ускорен на 15%.

ABBYY TextGrabber + Translator: удобная программа для распознования и перевода текста

Павел Крижепольский

Я думаю, что практически любой знакомый с компьютером человек хотя бы краем уха слышал о ABBYY FineReader. Эта программа для сканирования и распознавания текста уже много лет является своеобразным стандартом качества для PC. Но по мимо программ для настольного компьютера, у ABBYY есть еще и приложение для смартфонов. Внимание! На момент написания статьи на программу действует 66% скидка!

Краткий обзор

— Полнотекстовый перевод для более чем 40 языков

— Передача распознанного текста в другие приложения

— Все тексты сохраняются в «Истории»

2.2 или более поздняя

ЦЕНА:

66 р. по акции
180 р. в обычное время

Как видно по скриншотам, интерфейс программы прост настолько, насколько это вообще возможно.

Читать еще:  С чего начать программирование на c

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

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

Распознанный текст можно сразу же отредактировать и передать в стороннюю программу. К примеру, отправить по почте или сохранить в программе для заметок. Если текст на иностранном языке, то его прямо «не отходя от кассы» можно перевести. На мой взгляд, для машинного перевода качество получается вполне приличное. Возможно, для перевода используется Google Translate.

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

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

Дополнительное меню вызывается нажатием телефонной клавиши. Оно состоит всего из двух пунктов: настройки и история.

Итоги

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

Впрочем, свою нынешнюю стоимость в 66 р. Программа полностью оправдывает. В конце концов, главное, чтобы нормально распознавался текст, а форматирование и картинки можно добавить и в сторонних программах. А вот стоит ли покупать приложение за его полную стоимость (почти 200 р.), вопрос открытый.

Приложения: Текст

Nitro Pro 13.15.1.282

Приложение для работы с PDF-документами: просмотр, создание, редактирование, преобразование, защита

Balabolka 2.15.0.737

Балаболка — приложение для чтения вслух текстовых файлов, а также для сохранения текста в виде аудиофайла

Balabolka Portable 2.15.0.737

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

TextAloud 4.0.46

Программа для преобразования любого текста в речь и / или аудиофайлы формата MP3 или WMA. Находится в системном лотке и поэтому всегда готова к работе

ImTranslator 15.47

Расширение для браузеров Firefox, Opera и Chrome, представляющее собой онлайн-переводчик для более 90 языков. Включает виртуальную клавиатуру, проверку правописания, русский декодер и синтезатор речи

EmEditor 19.7.0

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

EmEditor Portable 19.7.0

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

Pdf995 20.1

Программа для создания документов формата PDF

SoftMaker FreeOffice 2018 Rev. 976.0314

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

Scribus 1.4.8 / 1.5.6 svn 20200322

Полноценная издательская система с открытым исходным кодом для Windows, Linux и macOS

Total Doc Converter 5.1.0.7

Приложение для преобразования Doc (DocX), RTF и TXT файлов в другие форматы, включая PDF, HTML, XLS, JPG, TIFF

QTranslate Portable 6.7.5.1

Бесплатная программа для перевода текста на различные языки, используя онлайн-сервисы (Google Translate, Microsoft Translate, Promt, Babylon и т.п.)

QTranslate 6.7.5.1

Бесплатная программа, которая переводит текст на различные языки, используя онлайн-сервисы (Google Translate, Microsoft Translate, Promt, Babylon и др.)

CudaText (Portable) 1.97.0.3

Кроссплатформенный (Windows, Linux, FreeBSD) текстовый редактор для программистов. Поддерживает удобную работу более чем со 180 языками, такими как Python, C ++, Java, Ruby и т.д.

FontCreator 13.0.0.2613

Программа для создания и редактирования TrueType и OpenType шрифтов

Самые популярные приложения

Punto Switcher 4.4.4.489

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

Microsoft PowerPoint Viewer 2007

Программа для просмотра презентаций, созданных с помощью Microsoft PowerPoint 97 и выше

Microsoft Office System 2003 Service Pack 3 RUS

Третий пакет обновления русской версии Microsoft Office 2003

ABBYY Fine Reader Home 10

Популярный пакет для распознавания отсканированного текста с практически полным сохранением оформления документа. Умеет работать совместно с MS Word, экспортировать распознанный текст в различные форматы, в том числе в HTML и PDF

STDU Viewer 1.6.375

Компактная программа для чтения электронных документов (книг). Поддерживает многие форматы, включая DjVu, FB2, TXT, PDF, FB2

Читать еще:  Политика безопасности паролей

OpenOffice 4.1.7

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

ABBYY FineReader Corporate 15.0

Пакет программ для распознавания отсканированного текста с практически полным сохранением оформления документа

WinDjView 2.1

Опенсорсная программа для просмотра файлов формата DjVu (DjVu — один из форматов электронных книг). Поддерживает плавный скроллинг и расширенные опции печати

PDF to Word Converter 3.0

Программа для преобразования PDF-документов в документы MS Word

Notepad++ 7.8.5

Текстовый редактор, предназначенный для программистов и тех, кого не устраивает скромная функциональность Блокнота

Программируем приложение c распознавание английского текста

В данной статье собраны программы (программы translation memory, электронные словари, программы для распознавания текста, программы для подсчета статистики, программы для локализации приложений, программы для перевода сайтов, другие программы для переводчиков), в том числе – бесплатные, которые позволяют переводить больше текстов за меньшее время. Так же даны краткие описания этих программ с ссылками на первоисточники для скачивания и установки. Надеемся, что Вы найдете здесь что-то полезное для себя.

ПРОГРАММЫ TRANSLATION MEMORY

Translation memory (переводческая память, накопители переводов) – программы, позволяющие «не переводить одно и то же два раза». Это базы данных, которые содержат ранее переведенные единицы текста. Если в новом тексте обнаруживается единица, которая уже есть в базе, система автоматически добавляет ее в перевод. Такие программы значительно экономят время переводчика, особенно если он работает с однотипными текстами.

Trados. На момент написания статьи – одна из самых популярных программ Translation memory. Позволяет работать с документами MS Word, презентациями PowerPoint, HTML-документами и файлами других форматов. В Trados есть модуль для ведения глоссариев. Сайт: http://www.translationzone.com/trados.html

Déjà Vu. Также один из лидеров по популярности. Позволяет работать с документами практически всех популярных форматов. Есть отдельные версии программы для переводчиков-фрилансеров и для бюро переводов. Сайт: http://www.atril.com/

OmegaT. Поддерживает большое количество популярных форматов, но документы в MS Word, Excel, PowerPoint требуется конвертировать в другие форматы. Приятная особенность: программа бесплатная. Сайт: http://www.omegat.org/

Wordfast. Программа ориентирована, прежде всего, на переводчиков-фрилансеров. Предлагается несколько версий программы, в том числе – бесплатная, которая доступна онлайн (Wordfast Anywhere). Сайт: http://www.wordfast.com/

MetaTexis. Позволяет работать с документами основных популярных форматов. Предлагается два варианта программы – модуль для MS Word и серверная программа. Сайт: http://www.metatexis.com/

MemoQ. Функционал схож с Традосом и Déjà Vu, стоимость программы (на момент написания статьи) ниже, чем у более популярных систем. Сайт: http://kilgray.com/

Star Transit. Предназначена для перевода и локализации. На данный момент совместима только с ОС Windows. Сайт: http://www.star-group.net/DEU/group-transit-nxt/transit.html

WordFisher. Бесплатная система Translation Memory, созданная и поддерживаемая профессиональным переводчиком. Сайт: http://www.wordfisher.com/

Across. Предлагается 4 различных версии программы, отличающихся по объему функционала. Сайт: http://www.across.net/us/translation-memory.aspx

Catnip. Бесплатная программа, «наследница» программы MT2007. Сайт: http://mt2007-cat.ru/catnip/

ЭЛЕКТРОННЫЕ СЛОВАРИ

Здесь мы представили только электронные словари для автономной работы (без доступа в интернет). Онлайн-словарей значительно больше, им будет посвящена отдельная статья. Хотя интернет проник в самые удаленные уголки планеты, полезно иметь хотя бы 1 словарь для работы в автономном режиме. Мы рассмотрели словари для профессионального использования, разговорники и словари для изучающих язык сюда не вошли.

Распознавание и генерация речи в Android

Последнее время большой интерес у пользователей вызывает возможность распознавания речи в телефонах. Огромная заслуга в популяризации этого направления принадлежит компании Aple, однако Google также располагает подобными технологиями. Собственно этой теме и будет посвящена данная статья. Мы разработаем приложение, которое будет распознавать речь пользователя и воспроизводить результат с помощью голосового движка «Text To Speech» (TTS). Отметим, что распознавание происходит на серверах Google, поэтому для работы приложению необходимо разрешить использовать коммуникационные возможности. Кроме того, распознавание речи не работает на эмуляторе. Тестировать программу необходимо на реальном устройстве.

На самом деле работать с распознаванием и синтезом речи в Android очень просто. Все сложные вычисления скрыты от нас в довольно элегантную библиотеку с простым API. Вы сможете осилить этот урок, даже если имеете весьма поверхностные знания о программировании для Android.

Давайте создадим новый проект в Eclipse. Для наших нужд понадобится версия SDK не меньше 8. Опишем в общих чертах создаваемую программу. При запуске приложения пользователю будет показана кнопка, после нажатия на которую пользователю будет предложено надиктовать фразу. Затем будет осуществлено распознавание и будет показан список возможных вариантов. Поскольку технологии распознавания речи далеки от совершенства, программа не может ручаться за точность результата, именно поэтому будет предложено несколько вариантов. После того, как пользователь выберет один из них, будет запущен генератор голоса, который воспроизведет выбранную фразу.

Нам понадобится несколько текстовых строк, объявим их в фале «res/values/strings.xml»

Откроем файл «res/layout/main.xml» и зададим шаблон дизайна приложения. Для этого переключимся из графического в XML редактор и изменим содержимое файла

Читать еще:  R язык программирования скачать

Добавим в Linear Layout элемент Text View

обратите внимание, TextView ссылается на строку intro, которую мы задали в файле strings.xml.

После Text View добавим кнопку

Пользователь будет нажимать эту кнопку, чтобы начать говорить. Кнопка имеет параметр id, через который ее можно вызвать из Java кода. После нажатия на кнопку пользователю показывается сообщение. Нам также понадобится TextView для вывода слов с предложениями

TextView будет использовать строковый ресурс. Нам также понадобится список для вариантов слов

ListView будет заполняться данными в процессе работы программы, поэтому для доступа к этому компоненту также требуется ID. Обратите также внимание на наличие ресурса drawable. Вы должны сохранить файл words_bg.xml в папке res

Ничего особенного. Вы можете настроить дизайн ListView по своему усмотрению. Нам осталось задать еще один элемент пользовательского интерфейса — шаблон для элемента ListView. Создайте новый файл res/layout/word.xml со следующим содержанием

Таким образом, каждый элемент списка представляет собой просто Text View.

Если Вы все сделали правильно, то при запуске должно получиться следующее

Программируем распознавание речи в Android

После того, как шаблон будущего приложения создан, можно перейти к кодированию. Откройте java файл главной Activity и добавьте в начало файла

Изменим немного декларацию главного класса

OnInitListener необходим для работы TTS движка. Внутри класса добавим объявления переменных перед методом onCreate

Внутри метода onCreate автоматически сгенерирован код, вызывающий метод родительского класса и устанавливающий главный контекст вывода.

Cоздадим переменные для работы с кнопкой и списком распознанных слов

Далее необходимо проверить поддерживается ли возможность распознавания голоса телефоном

Мы запрашиваем среду, поддерживается ли Recognizer Intent. Если поддерживается, мы говорим приложению, что нужно отслеживать щелчок пользователя по кнопке. Если интент не поддерживается, мы блокируем кнопку и выводим соответствующее сообщение пользователю.

Напишем код, обрабатывающий нажатие на кнопку. Внутри класса после метода OnCreate добавим метод OnClick.

Как видите, при нажатии на кнопку мы вызываем метод listenToSpeech().

Большая часть приведенного кода стандартна для программ, использующих распознавание голоса. Обратите внимание на параметр EXTRA_PROMPT. Он задает строку-приглашение для пользователя. Параметр EXTRA_MAX_RESULTS определяет максимальное число вариантов распознавания. В конце концов, мы вызываем startActivityForResult. Результат его работы будет передан в метод onActivityResult.

На следующем скриншоте показан экран в момент распознавания речи.

Определим метод onActivityResult

Обратите внимание, при проверке результата мы сравниваем переменную requestCode с константой VR_REQUEST, которую использовали ранее при вызове метода startActivityForResult. Таким образом, мы рассматриваем только результаты от нашего запроса. В метод возвращается 10 вариантов распознанных слов, которые мы записываем в список ArrayList. Этот список мы используем в ArrayAdapter компонента List View.

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

Вот, собственно и все. Распознавание голоса в Android — довольно простая задача. Мы вызываем интент RecognizerIntent с требуемыми нами параметрами. Результат возвращается в onActivityResult.

Генерация речи в Android

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

Мы используем метод setOnItemClickListener чтобы установить отслеживание щелчков для каждой строки. Внутри нового объекта OnItemClickListener мы описали метод onItemClick, который вызывается в ответ на щелчок по строке списка. Выбранная строка передается, как View в этот метод. Поскольку при проектировании шаблона приложения мы указали, что наш список состоит из TextView, мы преобразуем полученное значение в объект TextView и достаем из него строковое значение. Мы записываем это слово в лог и показываем пользователю Toast сообщение.

Если Вас не интересует процесс генерации речи, Вы можете остановиться и протестировать приложение.

Для генерации речи необходимо настроить движок TTS. Добавим код в конец метода onCreate

Как и в случае распознавания, результат интента возвращается в метод onActivityResult. В этом методе перед строкой super.onActivityResult(requestCode, resultCode, data); добавьте

Таким образом, мы проверяем наличие TTS движка, и если он не установлен — предлагаем пользователю установить соответствующую программу.

Чтобы завершить настройку TTS, добавим метод onInit, который вызывается при успешной инициализации TTS.

Здесь мы устанавливаем язык генератора речи.

Для того, чтобы заставить движок проговорить строку, нужно вызвать метод repeatTTS.speak. Вернемся к методу onCreate. Внутри метода onItemClick после строки Toast.makeText(SpeechRepeatActivity.this, «You said: «+wordChosen, Toast.LENGTH_SHORT).show(); добавьте следующий код

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

Ссылка на основную публикацию
Adblock
detector