Openears要求允许使用麦克风

时间:2014-01-16 07:45:33

标签: ios objective-c permissions microphone openears

我制作了一个使用Openears框架来读取一些文字的应用。但我没有使用任何Openears'语音识别/语音合成功能,只使用了对话功能。我的应用程序被苹果拒绝,因为应用程序没有任何此类功能,应用程序要求允许使用麦克风。以下是来自苹果的拒绝消息:

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.

我在应用中搜索了消息中提到的AVAudioSessionCategoryRecordAVAudioSessionCategoryPlayAndRecord音频类别,但找不到任何音频类别。如何禁用提示使用麦克风的权限?

2 个答案:

答案 0 :(得分:1)

您的应用程序被拒绝是因为您不需要麦克风功能,默认情况下使用麦克风功能进行操作,因此会出现用户权限的原因。这些用户权限是不允许的,因为Apple增加了用户的安全功能,以便他们可以更好地控制他们希望应用程序能够执行的操作。如果您必须使用OpenEars音频管理功能进行语音识别,请参阅更新1,否则请继续使用App 7上的Apples Siri语音合成器。

在你的情况下,如果你想要的只是读出一些文字,那么你可以使用iOS7语音合成器,这是用来创建Siri语音的合成器。

设置起来非常简单,我目前正在将其用于我的一个项目,通过语音与用户进行交互。这是一个关于如何完成所有设置的快速教程:

Speech synthesizer tutorial

更新1

在@ halle的评论之后,我决定更新那些必须使用OpenEars框架的人员,他们将只使用FliteController文本到语音功能,而不需要任何OpenEars语音识别。

您可以将FliteController属性noAudioSessionOverrides设置为TRUE,以确保OpenEars不会与音频录制流接口,这将阻止麦克风权限警报弹出。

[self.fliteController setNoAudioSessionOverrides:TRUE]

<击>

更新2 根据@ Halle的评论,您不再需要进行更新1:

  

只是从今天的更新1.65开始的更新,FliteController将不会自己进行音频会话调用,因此这里没有进一步的拒绝危险,并且没有必要设置noAudioSessionOverrides。

答案 1 :(得分:1)

对不起您的应用被拒绝了。要仅在没有任何与OpenEars中的语音识别相关的音频会话管理的情况下使用TTS,请将FliteController的属性noAudioSessionOverrides设置为TRUE。这将导致音频会话没有变化/不使用麦克风流。

我将看看我是否可以为使用OpenEars的FliteController进行TTS的开发人员更加突出这个设置的文档。

为了完整起见,有关如何在使用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类不再自行调用音频会话。感谢您对这一点的提醒,再次,抱歉,您因此拒绝了。