Нет распознавания речи андроид

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

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

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

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

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

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

Добавим в 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.

Читайте также:  Тема adidas для андроид

Как видите, при нажатии на кнопку мы вызываем метод 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 сообщением пользователь услышит сгенерированную речь. Отметим еще раз, что эмулятор не поддерживает распознавание речи, поэтому тестировать программу необходимо на телефоне.

Источник

BlindDroid

Android and Samsung

  • Октябрь (4)
  • Август (2)
  • Июль (7)
  • Июнь (5)
  • Май (5)
  • Апрель (1)
  • Март (2)
  • Февраль (8)
  • Январь (6)

Категории

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

Чтобы распознавание речи работало офлайн, нужно на устройствах с версией Android 4.1 и выше, подгрузить русский голосовой офлайн пакет. Подчёркиваю, если версия Android ниже чем 4.1, то офлайн распознавание не было ещё Google предусмотрено, можете даже не стараться его искать.

Для загрузки компонента офлайн на ваше устройство, нужно пройти по пути:

  • Для 4.1: Настройки тел\Язык и ввод\Голосовой поиск\Распознавание речи офлайн\Все,
  • Для 4.3: Настройки тел\Моё устройство\Язык и ввод\Голосовой поиск\Распознавание речи офлайн\Все,
  • Для 8.1: Настройки тел\Google\Поиск, Ассистент и голосовое управление\Голосовой поиск\Распознавание речи офлайн\Все,

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

Внимание! Пути настроек были указаны на примере аппаратов Samsung, которые шли с версией ОС Android 4.1, 4.3, 8.1.

Читайте также:  После обновления андроид не работает сенсор

Ещё можно проверить настройку по пути:

  • Для 4.1: Настройки тел\Язык и ввод\Распознавание голоса,
  • Для 4.3: Настройки тел\Моё устройство\Язык и ввод\Распознавание голоса,

нужно чтобы там было отмечено «Google».

На некоторых устройствах иногда встречается так, что по указанному выше пути, вы можете не обнаружить раздел «Голосовой поиск». Связано это может быть с тем, что производители устройств не Предустановили сервис голосового поиска Google в операционную систему. Лечится это установкой приложения «Google поиск».

Если вдруг у кого-то, по какой либо причине не получается установить из play stor, тогда можно попробовать загрузить отсюда: Поиск Google (Google Search) — 4PDA.

Источник

Pipemaker.ru

Записная книжка без политики и религии

Распознавание голоса в Андроиде

В очередной раз обновив прошивку в своем HTC HD2 (там речь идет о NexusHD2 JellyBean 4.1.2. Сейчас я зафанател от Dark!dea JellyBean CyanogenMod10 ROM), столкнулся с неприятной штукой. В программе «Помнить все» никак не желали распознаваться голосовые напоминания. Пишет «на телефоне нет поддержки распознавания голоса» и баста.

Закатав рукава бросился на поиски решения. И нашел приложение «Voice Search (Русский голосовой поиск)». Установил — все заработало.

Так что если вдруг столкнулись с подобным — лечение есть!

Похожие записи:

17 Comments on «Распознавание голоса в Андроиде»

Спасибо огромное, скачал приложение на андроид 4.1 и все заработало, еще раз спасибо большое.

Не за что. Для того и писал, чтоб и у других работало.

У меня планшет андройд 4.0 захожу на гугл маркет пишет что войс не поддерживается на моем устройстве((((

Попробуйте с 4pda скачать и установить вручную.

Молодец! БАЛЬШОЕ СПАСИБО.

Не помогло, скачал и установил с гуглплэя и тоже самое вмё равно пишет Hts one.

Спасибо. На Explay Atom (Андрюша 4.2.2.) сразу всё заработало.

была та же проблема
Спасибо огромное, скачал приложение на андроид 4.2 и все заработало.
JIAYU 4S

Спасибо большое все заработало

Вам спасибо. Не зря писал значит.

Благодарю, все пашет. Для того же приложения и искал))

Привет.Выручайте. В маркете моих приложениях пишет установленно,но в меню значка нет,скачиваю любой другой голосовой поиск,пишет:»К сожалению у вас не установленна программа для распознования речи.(аппарат galaxy s4 mini)

Ровно такая же ерунда приключилась. Позавчера не смог его установить, при этом в google.play пишет, что установлено.

Здравствуйте,у меня планшет Acer и когда я вставляю наушники гугл начинает заваливать меня распознованием речи!сил больше нет-как отключить это,ибо я никогда этим голосовым поиском не пользуюсь!

Затрудняюсь сказать. Посмотрите в настройках.

Источник

5 лучших приложений для превращения голоса в текст на Android

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

Gboard

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

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

Читайте также:  Гравиард кипер для андроид

Evernote

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

Speechnotes

Разработчик Speechnotes утверждает, что это бесплатная альтернатива самым дорогим аудио-текстовым конвертерам на рынке. Speechnotes задействует для своей работы сервера Google, а поэтому распознаёт речь ничуть не хуже, чем тот же Gboard. Приложение умеет работать в режиме диктовки несколько часов подряд, а также позволяет отредактировать сгенерированный текст даже во время диктовки.

Speechnotes можно загрузить и использовать бесплатно, но в бесплатной версии есть реклама. Чтобы избавиться от рекламы и получить возможность кастомизировать интерфейс приложения, вам придётся купить Speechnotes за 499 рублей или оформить подписку за 69 рублей в месяц. Во втором случае предоставляется бесплатный тестовый период на 7 дней.

Speechtexter

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

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

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

Делитесь своим мнением в комментариях под этим материалом и в нашем Telegram-чате.

Новости, статьи и анонсы публикаций

Свободное общение и обсуждение материалов

Telegram можно смело назвать демократическим сервисом. Появление большинства новых функций, которыми он обзавёлся, так или иначе было спровоцировано пользователями, буквально требовавшими от разработчиков их внедрения. Анимированные стикеры, чат с самим собой, прямое обновление и голосовые чаты – перечислять можно бесконечно. Но вот групповые видеозвонки разработчики мессенджера запускать не спешили. Разве что Павел Дуров в самом начале зимы пообещал, что они выйдут до конца этого года. В принципе, не обманул.

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

Не так давно я удалил последнюю страничку в соцсети, оставшись наедине с WhatsApp и Telegram. Меня безумно радует то, что я ограничил себя от ненужной информации, но все же, как говорит моя знакомая, в лес уходить не стоит. Каналы в Telegram радуют своими лаконичными постами. Если помните выражение «новости одной строкой» — это как раз то, о чем я люблю читать. Никаких разборов, аналитики, просто интересные факты и видеоролики. Знаете, я абсолютно доволен тому объему новостей, которые узнаю из Telegram-каналов. Сегодня поделюсь с вами некоторыми из них. Устраивайтесь поудобнее — будет интересно!

Источник

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