gpt4 book ai didi

java - 在通话期间运行 SpeechRecognizer

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:49 25 4
gpt4 key购买 nike

有没有办法在通话时运行 SpeechRecognizer?我是这样做的:

  • BroadcastReceiver 处理电话状态的变化(例如摘机)。
  • SpeechRecognizer 在当前(主)线程中启动,因为它只能在主线程中启动。应用程序上下文用于识别器(当前上下文,给广播接收器,不能开始使用)

但不幸的是,另一边的人听不到我的声音(虽然语音识别工作正常)。在远处,识别器已经“消耗”了我的声音并且没有将它发送过来。

我知道在调用期间在主线程中执行操作是危险的,但是有没有办法在调用期间以某种方式运行识别器?

更新:我正在尝试使用 TelephonyManager 监听器而不是 BroadcastReceiver,但是一些内部服务会受到 NPE 的影响。

最佳答案

据我所知,Android 端永远不会处理语音调用。应用处理器或通信处理器在任何给定时间都可以控制流,但不能同时控制两者。通常,一旦语音通话开始,麦克风和耳机的流控制就会交给通信处理器。奇怪的是,在您的情况下,应用程序处理器正在获得控制权。这看起来是一个错误。

音频流直接由通信处理器处理(这是有道理的,因为在应用处理器中执行两次,在最终将处理调用的通信处理器中执行一次是浪费处理)。所以我认为这是不可能的。

关于java - 在通话期间运行 SpeechRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11974218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com