我们在 Android 应用程序中使用 OpenTok SDK 开发了音频/视频通话功能。现在,我们需要集成 SpeechRecognizer API,以便在正在进行的 OpenTok 调用期间将语音转录为文本。
挑战在于 OpenTok SDK 已经获取了用于通话的麦克风(通过
RECORD_AUDIO
权限)。当我们使用以下方式触发语音识别器时:我们收到一条系统消息,指示 “语音识别器无法录制,因为 [应用程序名称] 当前正在录制。” 日志确认,由于 OpenTok 正在进行音频捕获,语音识别已被禁用。
问题:
是否可以在Android中同时使用OpenTok(用于音频/视频通话)和SpeechRecognizer(用于语音转录)?如果是,有哪些可能的解决方案或解决方法可以实现这一目标?
此问题可能适用于多个组件需要独占访问麦克风(
RECORD_AUDIO
权限)的任何场景。具体来说,我们如何管理 OpenTok 和 SpeechRecognizer 之间的麦克风访问,使两者可以同时运行?
在启动 SpeechRecognizer 之前禁用 OpenTok (
mPublisher.publishAudio(false)
) 中的音频发布。
完成简短转录后暂停 SpeechRecognizer,并在 OpenTok 中恢复音频。
但是,这些方法会中断通话或转录的流程,这对于无缝用户体验来说并不理想。
任何指导或建议将不胜感激!
自己捕获麦克风音频并将音频流传递到 SpeechRecognizer 和 OpenTok 会话中。
EXTRA_AUDIO_SOURCE
。
AudioDeviceManager#setAudioDevice
。