Google спокійно ввімкнув розпізнавання в автономному режимі в цьому оновленні пошуку, але (поки) немає API або додаткових параметрів, доступних у класі SpeechRecognizer . {Див. Редагування внизу цієї публікації} Функціонал доступний без додаткового кодування, однак пристрій користувача потрібно буде правильно налаштувати, щоб він почав працювати, і в цьому полягає проблема, і я думаю, чому багато розробників припустимо, що їм «чогось не вистачає».
Крім того, Google заборонила певним пристроям Jelly Bean використовувати автономне розпізнавання через апаратні обмеження. До яких пристроїв це стосується, не задокументовано, насправді нічого не задокументовано, тому налаштування можливостей для користувача виявилося питанням спроб і помилок (для них). Для деяких це працює відразу - для тих, хто цього не робить, це «керівництво», яке я їм надаю.
- Переконайтеся, що за замовчуванням Android Voice Recogniser встановлено на Google, а не на Samsung / Vlingo
- Видаліть усі встановлені в автономному режимі файли розпізнавання в налаштуваннях Google Voice Search
- Перейдіть у налаштування програми Android і перевірте, чи можете ви видалити оновлення для програм Google Search і Google Voice Search.
- Якщо ви не можете зробити вищезазначене, перейдіть до Play Store і перевірте, чи є у вас там можливість.
- Перезавантажте (якщо ви досягли 2, 3 або 4)
- Оновіть Google Search і Google Voice Search із магазину Play (якщо ви досягли 3 чи 4 або якщо оновлення доступне в будь-якому випадку).
- Перезавантажте (якщо ви досягли 6)
- Встановіть англійські британські мовні файли
- Перезавантажте
- Використовуйте повне! з підключенням
- Перейдіть у режим польоту і спробуйте
- Після того, як воно запрацює, офлайн-розпізнавання інших мов, таких як англійська, США також має почати працювати.
РЕДАГУВАТИ: Тимчасове змінення мовної установки пристрою на англійську UK також, здається, запускає це, щоб це працювало для деяких.
Деякі користувачі повідомляли, що їм все одно довелося перезавантажуватися кілька разів, перш ніж він почне працювати, але всі вони з часом потрапляють туди, часто незрозуміло до того, що було тригером, ключ до якого знаходиться всередині файлу .apk пошуку Google , тож не у відкритому доступі або частина AOSP .
З того, що я можу встановити, Google перевіряє наявність підключення, перш ніж вирішувати, чи використовувати розпізнавання в автономному режимі чи в Інтернеті. Якщо спочатку доступне з’єднання, але воно втрачене до відповіді, Google надасть помилку підключення, і воно не повернеться до режиму офлайн. Як додаткове зауваження, якщо було зроблено запит на синтезований мережевий голос, помилка не надається, якщо не вдається - Ви отримуєте тишу.
Оновлення пошуку Google не ввімкнуло жодних додаткових функцій в Google Now, і насправді, якщо ви спробуєте використовувати його без з’єднання з Інтернетом, воно помилиться. Я згадую це, коли думав, чи не буде ця здатність вилучена так тихо, як з’явилося, і тому не слід покладатися на неї у виробництві.
Якщо ви маєте намір почати використовувати клас SpeechRecognizer, будьте застережені, з ним пов’язана досить велика помилка , для обробки якої потрібна ваша власна реалізація.
Неможливість спеціального запиту офлайн = істина робить управління цією функцією неможливим без маніпуляцій з підключенням даних. Сміття. Ви отримаєте сотні електронних листів із запитаннями, чому ви не ввімкнули щось таке просте!
EDIT: Починаючи з API рівня 23, був доданий новий параметр EXTRA_PREFER_OFFLINE, якого служба розпізнавання Google, схоже, дотримується.
Сподіваюся, вищесказане допомагає.