Reading on android phone

Best Text to Speech Android Apps to get Read PDF Aloud

Updated on May 3, 2019 by Shashank Singh

What if your phone can read pdf aloud for you? If you read PDFs and eBooks on your android phone or tablet you might wish to get it read by your android device for you. Yes, there are Text to Speech Android apps which can do that for you.


Why this feature very useful – because it’s always easy to consume content in audio-visual (A-V) format. And audio (of the text you are reading) is also helpful for you to concentrate while reading your eBook. You should use earphone while reading an eBook using pdf to voice converter app, it’ll surely help you to concentrate.

In paragraphs below I will tell you which app I like most and why. So here I am sharing how you can get read PDF Aloud on Android Phone or Tablet using some killer pdf to voice converter apps.

There are apps available on Google Play Store with Text to Speech (TTS) engine support. Out of these apps very few work properly and rest are really bad as for now. I hope future versions of these apps will offer better functionality and reliable experience.

Get Read PDF Aloud with Text to Speech Android Apps

After testing many apps I found two apps which stand out among all. One of these two apps is a paid app and other is free.

  1. ezPDF – paid app
  2. @Voice Aloud Reader-Read Aloud – free app

Note:
Before you install any of these two apps, make sure that you have installed a Text-to-Speech (TTS) engine. Don’t confuse between Text-to-Speech (TTS) engines and Text to Speech Android apps. TTS engine enables apps (Text to Speech Android apps) to read the text on your screen aloud. Many companies offer TTS engines including Google. I prefer Google Text-to-speech engine to install on my android. Other popular TTS engines are Acapela, IVONA etc.

#1 ezPDF

It offers a lot of advanced features, which are really useful and user friendly. The interface of the app is not only feature rich but it also looks awesome. This app is a combination of good features, stability and clean-smooth interface. These things make this Text to Speech Android app a complete package.

  • Supports real book style page flip
  • Supports Text-to-Speech (TTS) – Narrates pdf files for you
  • Can play, pause, stop, forward and reverse narration
  • Multiple language support as it’s uses Text-to-Speech engine services
  • Clean and easy user interface (design)
  • Stability of current version is satisfactory as there is very rare “force close”
  • Can bookmark pages in pdf – so that you can easily resume reading
  • Annotation support (highlight, underline, strike-out etc. – so you can mark the important text)
  • Of course there are no ads as it’s a paid app
  • Many settings for page views, voice settings, day mode, night reading mode etc.
  • 15 days free trial is enough to make your mind to buy this awesome app
Читайте также:  Какие реалии получат андроид 11

[Google Play Store Link]

#2 @Voice Aloud Reader-Read Aloud

Yes, this app is free. It can read pdf aloud for you. Other than pdf you can also add data from mobile browser to get it narrated for you.

  • Supports Text-to-Speech (TTS)
  • Can also narrate text copied from browser or somewhere else
  • Narration play/pause, stop, forward and reverse
  • Easy access to Text-to-Speech Settings (Voice rate, pitch and volume etc.)
  • Multiple language support with Text-to-Speech engine
  • Decent user interface

[Google Play Store Link]

Other Text to Speech Android apps which can narrate pdf for you. But compared to above two apps these are not very much pleasant in terms of functionality and stability.

– Pdf Max Free – PDF Reader!
– NaturalReader Text to Speech
– Voxdox – Text To Speech Pro
– Pdf to Speech Pro
– PdfSpeaker

I like ezPDF the most because of its functionality, stability and interface. Though it’s a paid app but paying a little for such a useful app, is certainly worthy. And you can try it for 15 days for absolutely free.

You are important, raise your word: I hope you’ll enjoy reading PDF eBooks using these Text to Speech Android apps. Let me know your views about these apps and how much you’ll rate these app out of 5. Also share if you use some other app for this purpose.

Источник

Создание Android приложения для распознавания текста за 10 Минут. Mobile Vision CodeLab

Видео версия туториала

Оптическое распознавание символов (англ. Optical Character Recognition, сокр. OCR) дает компьютеру возможность читать текст на изображении, позволяя приложениям понимать знаки, статьи, листовки, страницы текста, меню или что угодно в виде текста. Mobile Vision Text API предоставляет разработчикам Android мощную и надежную возможность OCR , которая поддерживает большинство устройств Android и не увеличивает размер вашего приложения.

В этом туториале вы создадите приложение, в котором в процессе видеосъёмки будет распознаваться и воспроизводиться весь текст, попадающий в кадр.

Также мы публиковали статьи о других функциях Mobile Vision:

Исходный код можно скачать тут.

Или склонировать репозиторий GitHub из командной строки:

Репозиторий visionSamples содержит много примеров проектов, связанных с Mobile Vision . В этом уроке используется только два:

  • ocr-codelab/ocr-reader-start — начальный код, который вы будете использовать в этом уроке.
  • ocr-codelab/ocr-reader-complete — полный код готового приложения. Вы можете использовать его для устранения неполадок или перейти сразу к рабочему приложению.

Обновление сервисов Google Play

Возможно, вам потребуется обновить установленную версию Google Repository , чтобы использовать Mobile Vision Text API .

Откройте Android Studio и откройте SDK Manager :

Убедитесь, что Google Repository обновлен. Он должен быть не менее 26 версии.

Добавление зависимости Google Play Services и создание приложения для запуска

Теперь можно открывать стартовый проект:

Выберите каталог запуска ocr-reader из загруженного кода (File > Open > ocr-codelab/ocr-reader-start ).

Добавьте зависимость Google Play Services к приложению. Без этой зависимости Text API не будет доступен.

Проект может указать на отсутствие файла integer/google_play_services_version и выдать ошибку. Это нормально, мы исправим это на следующем шаге.

Читайте также:  Сброс настроек андроид зависает

Откройте файл build.gradle в app модуле и измените блок зависимостей, включив туда зависимость play-services-vision . Когда все будет готово, файл должен выглядеть так:

Нажмите кнопку синхронизации Gradle .

Нажмите кнопку запуска.

Через несколько секунд вы увидите экран «Read Text», но это всего лишь черный экран.

Сейчас ничего не происходит, потому что CameraSource не настроен. Давайте сделаем это.

Если у вас что-то не получается, вы можете открыть проект ocr-reader-complete и убедиться, что он работает правильно. Этот проект является готовой версией урока, и если эта версия не работает, вы должны проверить, что всё в порядке с вашим устройством и настройками Android Studio .

Настройте TextRecognizer и CameraSource

Чтобы начать работу, мы создадим наш TextRecognizer . Этот объект-детектор обрабатывает изображения и определяет, какой текст появляется внутри них. После инициализации TextRecognizer может использоваться для обнаружения текста во всех типах изображений. Найдите метод createCameraSource и создайте TextRecognizer :

Теперь TextRecognizer готов к работе. Однако, возможно, он еще не работает. Если на устройстве недостаточно памяти или Google Play Services не может загрузить зависимости OCR , объект TextRecognizer работать не будет. Прежде чем мы начнем использовать его для распознавания текста, мы должны проверить, что он готов. Мы добавим эту проверку в createCameraSource после инициализации TextRecognizer :

Теперь, когда мы проверили, что TextRecognizer готов к работе, мы можем использовать его для распознавания отдельных кадров. Но мы хотим сделать что-то более интересное: читать текст в режиме видеосъёмки. Для этого мы создадим CameraSource , который предварительно настроен для управления камерой. Нам необходимо установить высокое разрешение съёмки и включить автофокусировку, чтобы справиться с задачей распознавания небольшого текста. Если вы уверены, что ваши пользователи будут смотреть на большие блоки текста, например вывески, вы можете использовать более низкое разрешение, и тогда обработка кадров будет происходить быстрее:

Вот как должен выглядеть метод createCameraSource , когда вы закончите:

Если вы запустите приложение, то увидите, что началась видеосъёмка! Но для обработки изображений с камеры нам нужно дописать этот последний TODO в createCameraSource : создать Processor для обработки текста по мере его поступления.

Создание OcrDetectorProcessor

Сейчас ваше приложение может обнаруживать текст на отдельных кадрах, используя метод обнаружения в TextRecognizer . Так можно найти текст, например, на фотографии. Но для того, чтобы читать текст прямо во время видеосъёмки, нужно реализовать Processor , который будет обрабатывать текст, как только он появится на экране.

Перейдите в класс OcrDetectorProcessor реализуйте интерфейс Detector.Processor :

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

Мы получим TextBlocks и создадим объекты OcrGraphic для каждого текстового блока, обнаруженного процессором. Логику их рисования мы реализуем на следующем шаге.

Теперь, когда процессор готов, мы должны настроить textRecognizer для его использования. Вернитесь к последнему оставшемуся TODO в методе createCameraSource в OcrCaptureActivity :

Теперь запустите приложение. На этом этапе при наведении камеры на текст вы увидите отладочные сообщения «Text detected!» в Android Monitor Logcat ! Но это не очень наглядный способ визуализации того, что видит TextRecognizer , правда?

На следующем шаге мы отрисуем этот текст на экране.

Рисование текста на экране

Давайте реализуем метод draw в OcrGraphic . Нам нужно понять, есть ли на изображении текст, преобразовать координаты его границ в рамки канваса, а затем нарисовать и границы, и текст.

Читайте также:  Как скинуть до заводских настроек android one

Запустите приложение и протестируйте его на этом образце текста:

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

Как насчет этого?

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

Это связано с тем, что движок передает весь текст, который он распознает в TextBlock в виде одного предложения, даже если он видит предложение, разбитое на несколько строк. Если вам нужно получить целое предложение, то это очень удобно. Но что, если вы хотите знать, где расположена каждая отдельная строка текста?

Вы можете получить Lines из TextBlock , вызвав getComponents , а затем, перебирая каждую строку, запросто получить её местоположение и текст внутри неё. Это позволяет рисовать текст в том месте, где он действительно появляется.

Попробуйте снова этот текст:

Отлично! Вы даже можете разбивать найденный текст на ещё более мелкие составляющие, исходя из ваших потребностей. Можно вызвать getComponents на каждой строке и получить Elements (слова на латинице). Есть возможность настройки textSize , чтобы текст занимал столько места, сколько занимает реальный текст на экране.

Воспроизведение текста при нажатии на нём

Теперь текст с камеры преобразуется в структурированные строки, и эти строки отображаются на экране. Давайте сделаем с ними что-нибудь еще.

Используя TextToSpeech API , встроенный в Android , и метод contains в OcrGraphic , мы можем научить приложение говорить вслух, при нажатии на текст.

Сначала давайте реализуем метод contains в OcrGraphic . Нам просто нужно проверить, находятся ли координаты x и y в пределах рамки отображаемого текста.
OcrGraphic.java

Вы можете заметить, что здесь много общего с методом Draw ! В настоящем проекте вам следовало бы добиться переиспользования кода, но здесь мы оставим всё как есть просто ради примера.

Теперь перейдем к методу onTap в OcrCaptureActivity и обработаем нажатие по тексту, если он есть в этом месте.

Вы можете запустить приложение и через Android Monitor Logcat убедиться, что нажатие на текст действительно обрабатывается.

Давайте же заставим наше приложение говорить! Перейдите в начало Activity и найдите метод onCreate . При запуске приложения мы должны инициализировать движок TextToSpeech для дальнейшего использования.

Несмотря на то, что мы корректно инициализировали TextToSpeech , как правило, всё равно нужно обрабатывать общие ошибки, например, когда движок всё ещё не готов при вашем первом нажатии на текст.

TextToSpeech также зависим от языка распознавания. Вы можете изменить язык на основе языка распознанного текста. Распознавание языка не встроено в Mobile Vision Text API , но оно доступно через Google Translate API . В качестве языка для распознавания текста можно использовать язык устройства пользователя.

Отлично, осталось только добавить код воспроизведения текста в методе onTap .

Теперь, когда вы запустите приложение и нажмёте на обнаруженный текст, ваше устройство воспроизведёт его. Попробуйте!

Завершение

Теперь у вас есть приложение, которое может распознавать текст с камеры и проговаривать его вслух!

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

Источник

Оцените статью