我目前正在开发一个关于 iPhone 上说话人识别的 Cydia 调整。此调整可以识别当前用户是否是手机所有者(经过培训)。这个调整已经在 Android 上实现,我们已经编译和测试了核心库。我们面临的唯一困难是如何从 Siri 中捕获音频数据。我们尝试过:
挂钩函数“- (void)_tellSpeechDelegateRecordingWillBegin”和“- (void)_tellSpeechDelegateRecordingDidEnd”并使用 AvAudioRecorder 录制音频 - 失败,因为 Siri 正在录制时所有 AvAudioSession 将被中断。
挂钩函数“- (void)startSpeechRequestWithSpeechFileAtURL:(id)arg1”。这个函数似乎与音频文件有关,但我们可以让这个函数与 Logos 调整框架挂钩。
我们正在考虑两种可能的方式:
- 实现一个可以绕过 Siri 中断的低级录音机。(类似于通话记录器。)
- 在 iPhone 内部实现一个 Http(s) 代理服务器并捕获转发到 Siri 服务器的请求。
但我们对这些选择几乎没有经验。有没有人有想法从 Siri 捕获音频(通过电话而不是通过外部服务器)
更新(2014 年 2 月 12 日)
检查这个。我发现有一个名为“AFSpeechRecorder”的类。它用于 Siri。我想它一定与音频数据有关。但不幸的是,这个类在 iOS 7 中被删除了。对这些变化一无所知。