我希望我的 iOS
应用程序使用文本到语音转换来向用户朗读它从服务器接收到的一些信息,并且我还希望允许用户停止通过语音命令进行此类讲话。我已经尝试过适用于 iOS 的语音识别框架,例如 OpenEars
,但我发现问题在于它正在监听和检测应用程序本身“说”的信息,并且它会干扰用户语音命令的识别。
有人在 iOS
中处理过这种情况并找到了解决方案吗?提前致谢
最佳答案
实现起来不是一件小事。不幸的是,iOS 和其他系统会记录通过扬声器播放的声音。您唯一的选择是使用耳机。在那种情况下,语音识别可以继续监听输入。在 Openears 中,TTS 期间识别被禁用,除非插入耳机。
如果您仍然想实现这个称为“打断”的功能,您必须执行以下操作:
- 存储您通过麦克风播放的音频
- 实现噪声消除算法,有效地从录音中删除音频。您可以使用互相关在录音中找到合适的偏移量,并使用频谱减法来移除音频。
- 识别剩余信号中的语音。
如果不对 openears 源进行重大修改,则不可能做到这一点。
关于ios - 在 iOS 中同时管理文本转语音和语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37066457/