Openears просит разрешения использовать микрофон
Я сделал приложение, которое использует Openears
рамки для считывания текста. Но я не использовал ни одного из Openears'
функции распознавания речи / синтеза речи, просто функция разговора с речью. Apple отклонила мое приложение, сказав, что оно запрашивает разрешение на использование микрофона, пока приложение не имеет никаких функций такого рода. Ниже приводится сообщение об отказе от Apple:
During review we were prompted to provide consent to use the microphone, however, we were not able to find any features or functionality that use the microphone for audio recording.
The microphone consent request is generated by the use of either AVAudioSessionCategoryRecord or AVAudioSessionCategoryPlayAndRecord audio categories.
If you do not intend to record audio with your application, it would be appropriate to choose the AVAudioSession session category that fits your application's needs or modify your app to include audio-recording features.
For more information, please refer to the Security section of the iOS SDK Release Notes for iOS 7 GM Seed.
Я искал приложение для AVAudioSessionCategoryRecord
или же AVAudioSessionCategoryPlayAndRecord
аудио категории, упомянутые в сообщении, но не смогли найти ни одной. Как отключить запрос разрешения на использование микрофона?
2 ответа
Ваше приложение было отклонено из-за того, что вам не нужна функция микрофона, по умолчанию интерфейс openears с использованием функции микрофона, поэтому возникли пользовательские разрешения. Эти пользовательские разрешения не являются недопустимыми, так как Apple увеличила возможности безопасности для пользователей, чтобы они могли лучше контролировать то, что они хотят, чтобы их приложения могли делать. Если вам необходимо использовать функцию управления звуком OpenEars для распознавания речи, см. Обновление 1, в противном случае продолжите работу для другого решения, использующего синтезатор речи Apples Siri на iOS 7.
В вашем случае, если все, что вы хотите сделать, это прочитать какой-то текст, то вы можете использовать iOS7 Speech Synthesizer, который является тем же синтезатором, который использовался для создания голоса Siri.
Это так легко настроить, и в настоящее время я использую его для одного из моих проектов, чтобы общаться с пользователем через голос. Вот краткое руководство по настройке:
Учебное пособие по синтезатору речи
ОБНОВЛЕНИЕ 1
После комментария @ halle я решил обновить пост для тех, кто должен использовать платформу OpenEars, которые будут использовать только функцию преобразования текста в речь FliteController без какого-либо распознавания речи OpenEars.
Вы можете установить свойство FliteController noAudioSessionOverrides
вTRUE
так что вы гарантируете, что OpenEars не будет взаимодействовать с аудиопотоком, и это предотвратит появление предупреждения о разрешениях на микрофон.
[self.fliteController setNoAudioSessionOverrides:TRUE]
ОБНОВЛЕНИЕ 2 На основании комментария @Halle, вам больше не нужно делать обновление 1:
Просто обновление, которое, начиная с сегодняшнего обновления 1.65, FliteController никогда не будет выполнять аудиосеансы самостоятельно, поэтому здесь больше нет опасности отклонения, и нет необходимости устанавливать noAudioSessionOverrides.
Мне жаль, что ваше приложение было отклонено. Чтобы использовать только TTS без какого-либо управления аудиосеансами, связанного с распознаванием речи в OpenEars, установите для свойства FliteController noAudioSessionOverrides значение TRUE. Это приведет к тому, что аудиосеанс не изменится / не будет использоваться микрофонный поток.
Я посмотрю, смогу ли я сделать документацию для этого параметра немного более заметной для разработчиков, использующих TTS только с OpenEars FliteController.
Для полноты, документация о том, как значительно уменьшить двоичный размер вашего приложения при использовании OpenEars, поскольку это также было проблемой для вас:
http://www.politepix.com/forums/topic/slimming-down-your-app/ http://www.politepix.com/openears/support/#Q_How_can_I_trim_down_the_size_of_the_final_binary_for_distribution
Редактировать: начиная с сегодняшней версии 1.65 OpenEars и его плагинов, если вы просто используете FliteController, нет опасности отклонения, потому что классы TTS больше не делают никаких вызовов к аудио-сессии самостоятельно. Спасибо за сообщение об этом и, опять же, извините, у вас был отказ из-за этого.