Перевод речи в текст на андроид

Разрешение проблем

Если в работе приложения возникают ошибки, проверьте, что Google App установлено, обновлено и голосовой ввод использует его по умолчанию.

Последующий голосовой ввод стирает предыдущий — необходимо обновить Google App.


Во время диктовки всплывает сообщение «Ошибка на стороне сервера:…» — пропал интернет, а вы не установили пакет для локального ввода на этом языке. Установите его и ошибка исчезнет. Для русского языка Google перестал поддерживать автономный ввод. Для решение проблемы на Android 6 и выше можно попытаться удалить Google App. В этом случае оно будет заменено на установочную версию. После переустановки пакета локального ввода автономный ввод появится.

Во время диктовки возникает сообщение Ошибка записи звука и используется Android не ниже 6 — проверьте что разрешения для приложения (Настройки -> Приложения -> Google -> Разрешения) имеет правда доступа к микрофону.

Нецензурные слова заменяются звездочками — в настройках приложения Google (Настройки -> Язык и ввод -> Голосовой ввод Google) включена Цензура. Отключите ее, если она мешает.

Не открываются *.txt файлы из файлового менеджера на Android 6 — дайте приложению доступ к файлам на устройстве (сделайте экспорт вначале).

На устройствах Meizu (и некоторых других) приложение не работает — разрешите приложению Google App работать в фоновом режиме, а не в режиме Смарт-Фон (Безопасность->Разрешения->Запуск в фоне)

При одновременной работе на нескольких устройствах переход на премиум на одном устройстве не сразу синхронизируется на других — дождитесь обновления кэша приложения google play market (сутки обычно)

Разметка текста в различных языковых ресурсах

Может возникнуть такая задача, когда требуется выделить при помощи разметки определенное слово в различных строковых ресурсах. Например, нам надо выделить слово “text” в английской версии и “texto” в испанской:

Если требуется что-то простое, например, выделить слово жирным, то можно использовать обычные html-теги (). В UI надо будет просто установить строковый ресурс в TextView:

Но если требуется что-то более сложное, например, смена шрифта, то html уже не получится использовать. Решением будет использовать специальный тег . Этот тег позволяет определить любую пару ключ-значение в xml-файле. Когда мы вытащим строку из ресурсов, эти теги автоматически сконвертируются в span’ы , расставленными по тексту с соответствующими ключами и значениями. После этого можно распарсить список аннотаций в тексте и применить нужные span’ы.

Предположим, нам надо поменять шрифт при помощи .

Добавим тег и определим для него ключ “font” и значение – тип шрифта, который мы хотим использовать – “title_emphasis”:

Вытащим строку из ресурсов, найдем аннотации с ключом “font” и расставим span’ы:

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

Как текст располагается в TextView

TextView умеет отображать не только текст, но и картинки. Также можно задавать различные отступы перед текстом. Под капотом это работает так, что TextView создает дочерний класс Layout, ответственный непосредственно за отображение текста. Это абстрактный класс, который имеет три реализации, напрямую с ними обычно не приходится работать, если не писать свой элемент управления:

  • BoringLayout используется для простых текстов, не поддерживает переносы строк, RTL и другие вещи, но при этом является самым легковесным. TextView использует его, если текст удовлетворяет всем ограничениям.
  • StaticLayout используется в TextView для остальных случаев.
  • DynamicLayout используется для изменяемого текста в EditText.

У Layout есть много методов, которые позволяют узнать различные параметры отображаемого текста: координаты строк, baseline, координаты начала и конца текста в строке и т.д. (подробнее можно посмотреть в документации)

Такие методы могут быть очень полезны. Например, некоторые разработчики сталкиваются с задачей выделения части текста в прямоугольники с закругленными углами, и пытаются искать ее решение через span’ы, которые не применимы в решении этой проблемы.

Зато на помощь могут прийти методы класса Layout. Вот примерное решение:

При помощи аннотаций выделяем слова, которые должны быть обведены в прямоугольники.

Затем создаем 4 drawable ресурса для всех случаев переноса текста, который должен быть заключен в прямоугольники:

Далее находим нужные нам аннотации в тексте, как это описывалось выше. Теперь у нас есть индексы начала и конца такой аннотации. Через методы Layout можно узнать номер строки, на которой начинается проаннотированный текст, и на которой заканчивается:

Далее придется нарисовать один или несколько прямоугольников. Рассмотрим простой случай, когда проаннотированная часть текста оказалась на одной строке, тогда нам понадобится всего один прямоугольник с четырьмя закругленными углами. Определим его координаты и нарисуем:

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

Производительность TextView

TextView, как и любая View, при отображении проходит через три фазы: , и . При этом занимает больше всего времени, в отличие от двух других методов: в этот момент пересоздается класс Layout и производится расчет размеров текста. Так что изменение размера текста (например, смена шрифта) влечет за собой много работы. Изменение же цвета текста будет более легковесным, потому что потребует только вызова . Как упоминалось выше, в системе есть глобальный кэш слов с рассчитанными размерами. Если слово уже есть в кэше, то повторный вызов для него займет 11-16% от времени, которое потребовалось бы для полного расчета.

Как проверить голосовую почту

Откройте уведомление о новом сообщении

Получив уведомление, вы можете быстро прослушать сообщение. Чтобы сделать это:

  1. Проведите по экрану сверху вниз.
  2. Нажмите на значок «Голосовая почта» .

Позвоните в службу голосовой почты

Чтобы прослушать сообщения:

  1. Откройте приложение «Телефон» .
  2. Коснитесь значка панели набора в нижней части экрана.
  3. Нажмите и удерживайте цифру 1.

Посмотрите список сообщений

На некоторых устройствах голосовые сообщения доступны в приложении «Телефон» (если оператор предоставляет такую услугу).

Включите визуальную голосовую почту

  1. Откройте приложение «Телефон» .
  2. Нажмите на значок «Ещё» в правом верхнем углу экрана.
  3. Выберите Настройки Голосовая почта.
  4. Включите параметр Визуальная голосовая почта.

Абоненты T-Mobile в США могут .

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

Проверьте список сообщений

  1. Откройте приложение «Телефон» .
  2. Нажмите на значок «Голосовая почта» в верхней части экрана. Если сообщения не удается найти, позвоните в службу голосовой почты.

Совет. Чтобы переслать аудиозапись, откройте голосовое сообщение, затем нажмите на значок «Отправить» выберите приложение.

Посмотрите расшифровку голосовой почты (только для абонентов T-Mobile США и Xfinity)

Если вы являетесь абонентом T-Mobile или Xfinity, то можете посмотреть расшифровку своих голосовых сообщений. Эта услуга доступна на устройствах Android 8.0 и более поздних версий (поддерживаются только английский и испанский языки). Как узнать свою версию Android?

Включите расшифровку голосовой почты

  1. Откройте приложение «Телефон» .
  2. Нажмите на значок «Ещё» Настройки Голосовая почта.
  3. Включите параметр Транскрипция голосовой почты.Примечание. Если вы не видите этого параметра, убедитесь, что вы .

Совет. Если вы хотите отправить кому-то расшифровку, нажмите «Отправить» выберите приложение, которым вы хотите воспользоваться.

Примечания

  • Если включить расшифровку, Google будет преобразовывать в текст новые голосовые сообщения, а также расшифрует все старые.
  • Google расшифровывает голосовые сообщения автоматически и не связывает их с аккаунтами своих пользователей. Google не сохраняет у себя голосовые сообщения, они остаются только в памяти телефона.
  • Если отключить визуальную голосовую почту, все аудиозаписи и расшифровки сообщений будут автоматически удалены из приложения «Телефон».
  • Чтобы помочь улучшить качество сервиса, вы можете отправлять нам расшифровки своих голосовых сообщений. Эти данные анонимны и не связаны с вашим номером телефона или аккаунтом Google. Чтобы отправить нам расшифровку голосовых сообщений:

    1. Откройте приложение «Телефон» .

    2. Нажмите на значок «Ещё» Настройки.

    3. Включите Анализ транскрипций голосовой почты.

Веб-сервисы и приложения для голосового ввода

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

Google Docs

Простой инструмент голосового ввода есть в Google Docs — сервисе для работы с текстовыми документами. Для его использования достаточно иметь аккаунт почты Gmail.

Как пользоваться голосовым вводом в Google Docs:

  1. Откройте сайт поисковой системы Google.
  2. Авторизуйтесь под своей учётной записью Google или зарегистрируйте новый профиль.
  3. Кликните по квадрату из точек, чтобы раскрыть меню с сервисами.
  4. Нажмите «Ещё», чтобы увидеть полный список.
  5. Перейдите в «Документы».
  6. В поле «Создать документ» нажмите «Пустой файл».

На экране появится текстовый редактор Google. Чтобы включить голосовой ввод, раскройте меню «Инструменты» и выберите соответствующую опцию. Слева появится виджет с микрофоном. Выберите в нём язык, на котором вы будете говорить, а затем нажмите на иконку микрофона, чтобы включить распознавание. Значок должен стать красным. Если браузер запросит разрешение на использование микрофона, дайте его.

Запуск голосового ввода доступен также с помощью сочетания клавиш Ctrl+Shift+S. Функция запускается с языком, установленным по умолчанию.

После настройки начинайте говорить — Google Docs будет распознавать речь и превращать её в текст. Знаки препинания и новую строку проговаривайте словами, чётко произносите окончания слов — в противном случае исправлять текст придётся очень долго.

Speechpad

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

  1. Откройте сайт Speechpad.ru.
  2. Пролистните главную страницу до окна редактора.
  3. Выберите язык ввода.
  4. Нажмите на кнопку «Включить запись» и разрешите использование микрофона.
  5. Диктуйте текст.

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

Расставлять знаки препинания и переходить на новую строку можно голосом или кнопками, которые находятся между полем предварительного просмотра и редактором. При наведении на каждую кнопку появляется текст голосовой команды, к которой она применяется — например, «вопросительный знак» или «открыть скобку».

Итоговый документ доступен для скачивания в формате TXT.

VoiceNote

VoiceNote — ещё один сервис для преобразования голоса в текст, который работает только в Google Chrome. При попытке запустить его в другом браузере появляется сообщение об ошибке.

Для голосового ввода через VoiceNote можно использовать Live Demo или отдельное приложение для Chrome.


Как пользоваться VoiceNote:

  1. Откройте редактор.
  2. Нажмите на значок в виде земного шара и выберите язык ввода.
  3. Кликните по иконке микрофона.
  4. Разрешите использование записывающего устройства.
  5. Диктуйте текст.

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

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

TalkTyper

TalkTyper — онлайн-редактор для голосового ввода. Главное его достоинство — поддержка 37 языков. Однако TalkTyper, как и предыдущие сервисы, работает только в Google Chrome.

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

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

Voice Notepad

Voice Notepad — ещё один сервис для преобразования голоса в текст, работающий только в Chrome. Он поддерживает больше 120 языков ввода. В остальном функциональность у него такая же, как у сервисов, перечисленных выше: расстановка знаков препинания голосом, сохранение документа в формате TXT, копирование в буфер обмена, отправка по почте или на печать и т.д.

Особенность онлайн-сервисов заключается в том, что все они работают только в Google Chrome. Это связано с тем, что в их основе лежит лицензионная гугловская технология распознавания речи. Другие браузеры её не поддерживают или поддерживают с ограничениями. Например, Speechpad можно запускать в Яндекс.Браузере, однако в чужеродной среде он часто работает с ошибками. Так что если вы не пользуетесь Google Chrome, проще всего установить одну из программ для голосового ввода на компьютер и забыть про неудобства.

Как отключить Окей Гугл на Андроид

Как отключить Окей Гугл на Андроид. Голосовая команда ОК Google (Окей Гугл) позволяет управлять операционной системой Android и другими приложениями при помощи голоса. С ее помощью можно запускать приложения, создавать напоминания, отправлять текстовые сообщения, искать информацию в сети, пользоваться GPS навигацией и многие другое.

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

Для того чтобы отключить функцию ОК Google вам нужно сначала открыть приложение Google Now. На разных Андроид устройствах Google Now открывается по-разному. Например, на устройствах с чистым Андроидом последних версий, для открытия Google Now нужно на первом рабочем столе провести пальцем с лева на право. На более старых версиях Андроида приложение Google Now запускается при помощи движения пальца вверх от кнопки домой. На смартфонах с нестандартными оболочками могут использоваться какие-то другие способы открытия Google Now.

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

После запуска Google Now, нужно открыть левое боковое меню. Для этого нужно провести пальцем от левого края экрана либо нажать на кнопку в левом верхнем углу экрана.

После этого нужно перейти в раздел «Настройки» (не путать с разделом «Настроить»).

В настройках Google Now нужно перейти по пути «Голосовой поиск – Распознавание Окей Google».

После этого перед вами откроется окно, в котором можно отключить голосовую команду ОК Google. Здесь доступны две опции:

  • Из приложения Google;
  • Из всех приложений.

Первая опция включает и отключает распознавание команды ОК Google в приложении Google Now. А вторая опция, отключает распознавание команды ОК Google в остальных приложениях и на рабочем столе.

Если вы хотите полностью отключить ОК Google, то переведите обе эти опции в положение «Выключено». Если же вы хотите, оставить ОК Google в приложении Google Now, но отключить в других приложениях, то выключите только вторую опцию.

Использование autoLink

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

Так как это происходит на UI потоке, то не стоит использовать внутри элементов RecyclerView. В таком случае лучше вынести определение ссылок в фоновый поток. И здесь на помощь нам приходит класс :

У еще есть возможность указать значение – распознавание почтовых адресов (оно же будет включено при значении ). Эту возможность лучше вообще никогда не использовать. Проблема в том, что под капотом там будет создание экземпляра WebView, через который будет осуществляться поиск адреса! В исходном коде SDK в методе можно увидеть такую строку, этот код выполняется на главном потоке:

А внутри WebView стоит TODO от разработчиков SDK:


Но что же тогда использовать? Решением будет новая технология Smart Linkify, к сожалению доступная только начиная с Android P (28), которая работает на основе нейронных сетей и распознает различную информацию, в том числе и почтовые адреса. Вот небольшой пример использования:

В отличие старого Linkify, распознанные адреса не будут простыми ссылками. Над адресами при нажатии будет отображаться контекстный toolbar с возможными действиями, например показ адреса на Google карте.

Технология Smart Linkify способна распознавать различные данные: номера телефонов, авиарейсы и многое другое.

Magnifier

Начиная с Android P (28), появился новый элемент управления – Magnifier, который показывает увеличенные символы при выделении текста. С его помощью пользователю гораздо проще установить курсор на нужную позицию.

По умолчанию он работает в TextView, EditText и WebView, но при желании его можно использовать при написании своих элементов пользовательского интерфейса: его API достаточно прост.

Заключение

В данной статье были опущены многие нововведения последних версий Android и смежные темы, заслуживающие отдельных статей, например:

  • работа со стилями и темами при отображении текста
  • работа со шрифтами
  • работа с классами, производными от TextView (например, EditText)

Если кому-то интересна одна из этих тем, рекомендую посмотреть презентацию с прошедшего Google I/O’19 “Best Practices for Using Text in Android”.

Использование span’ов в тексте

Для стилизованного текста во фреймворке есть два интерфейса: и (с неизменяемой и изменяемой разметкой соответственно) и три реализации: (неизменяемый текст), (неизменяемый текст) и (изменяемый текст).

Изменяемый текст Изменяемая разметка
SpannedString нет нет
SpannableString нет да
SpannableStringBuilder да да

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

Добавить новый span к строке можно при помощи метода:

Через первый параметр передается span, затем указывается диапазон индексов в тексте. И последним параметром можно управлять, какое будет поведение span’а при вставке нового текста: будет ли span распространяться на текст, вставленный в начальную или конечную точки (если в середину вставить новый текст, то span автоматически применится к нему вне зависимости от значений флага).

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

Если провести тесты на скорость отрисовки текста в зависимости от количества span’ов, то будут такие результаты: при использовании в строке до ~250 span’ов и работают примерно с одинаковой скоростью, но если элементов разметки становится больше 250, то начинает проигрывать. Таким образом, если стоит задача применить стиль к какому-то тексту, то при выборе класса надо руководствоваться семантическими требованиями: будут ли строка и стили изменяемыми. Но если для разметки требуется больше 250 span’ов, то предпочтение надо всегда отдавать .

Настройка голосового набора текста на Android

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

Включаем голосовой набор в настройках

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

Как включить голосовой набор на Андроид:

  1. Через главное меню зайдите в «Настройки». Там выберите пункт «Язык и клавиатура» (в некоторых моделях «Язык и ввод»), а потом – «Клавиатура Android» (или же «Клавиатура и способы ввода»).
  2. В этом подменю найдите и нажмите «Голосовой ввод».
  3. Система предложит вам выбрать, где вы хотели бы видеть клавишу микрофона, которая и отвечает за распознавание речи. Вы можете разместить ее на основной клавиатуре или же в меню символов.

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

Как пользоваться голосовым вводом

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

  1. Чтобы начать диктовку текста, нажмите на текстовый экран или на ту часть текста, которая уже была введена. Высветиться стандартная электронная клавиатура.
  2. Нажмите на значок микрофона на главном экране, или же перейдите в раскладку символов, если вы перенесли клавишу с микрофоном туда при настройке.
  3. На экране отобразится меню для записи вашего голоса и надпись: «Говорите». Надиктуйте нужный текст в микрофон смартфона, и он автоматически преобразует голос в текст.

Знаки пунктуации нужно проговаривать словами: «Вопросительный знак», «Запятая», «Точка». Старайтесь говорить четче, иначе программа может неправильно понять ваши слова, соответственно, преобразовать их в схожие по звучанию.

Какие настройки доступны при распознавании голоса Андроидом

Настроить работу стандартного голосового ввода на Android можно в меню «Язык и ввод», в который можно попасть через «Настройки», или же нажав на «шестеренку» настроек прямо в меню, которое высветилось после нажатия микрофона (обычно кнопка настроек находится слева от слова «Говорите»).

Настройка распознания речи. Здесь можно сделать следующее:

  • Выбрать язык. Распознавание доступно и в офлайн режиме, но по умолчанию у вас будет установлен только русский язык (или же русский + английский). Для других языков функция будет работать либо только при подключении к Интернету, либо тогда, когда вы скачаете нужные языки. Скачать нужные языковые пакеты можно в меню настроек языка и ввода, нажав на «Распознавание речи офлайн».
  • Настроить распознавание «О’кей Google». После настройки этого пункта, вы сможете использовать менеджер поисковой системы при открытой системе Google, только сказав: «О’кей Google». А потом надо произнести, что вам нужно найти в поисковике.
  • Включить возможность управления голосом с проводной гарнитуры или Bluetooth-устройств.
  • Настроить распознавание нецензурных слов. Программа автоматически включает пункт «Скрывать распознанные нецензурные слова».
  • Включить или выключить озвучивание результатов в стандартном режиме или в режиме подключенной гарнитуры.

Правильно настроенный голосовой набор будет приносить больше пользы и радовать вас своей функциональностью.

Другие способы подключить голосовой набор на Андроиде

Помимо «родного» способа преобразования голоса в текст, можно использовать другие способы. Например, установить из Маркета специальные программы для распознания речи. Примеры таких программ – VoiceButton, Cyberon Voice Comander. Если вы хотите преобразовать текст в речь, нужно либо настроить «Синтез речи» в меню «Язык и ввод», либо скачать программы с такой функцией, например, SWOX Classic TTS или Voxdox.


С этим читают