gpt4 book ai didi

audio - 谁能解释语音命令如何通过 Android(Nexus 播放器)中的蓝牙 Remote (Nexus 播放器 Remote )工作?

转载 作者:行者123 更新时间:2023-12-03 00:38:00 28 4
gpt4 key购买 nike

谁能详细说明以下问题?

  • 蓝牙堆栈如何处理音频数据?
  • 如何处理音频命令?
  • 我们需要任何服务来处理音频数据吗?

  • 提前致谢。

    最佳答案

    基本上,通过 BLE 的语音命令需要:

  • 一些用于减少所需带宽的音频编解码器(ADPCM 和 SBC 很常见,OPUS 正在兴起),
  • 一些通过BLE的音频流方法,
  • 解码并从 BLE 守护程序获取音频流到命令处理框架。

  • 在 android 世界中,命令处理框架是谷歌酱(封闭),最容易从 ALSA 设备获取其音频。剩下要做的就是将音频从 Remote 传输到 ALSA 设备。

    因此,对于音频流,您可以:
  • 使用自定义 L2CAP channel 或自定义 GATT 服务,这需要自定义 android 服务应用程序和/或修改 Bluedroid 来处理这些,它需要一种将音频流作为 ALSA 注入(inject)的方法,很可能使用“循环”音频设备驱动程序,
  • 将音频声明为自定义 HID 报告,这样,Bluedroid 将它们注入(inject)回内核,然后添加一个自定义 HID 驱动程序来处理这些报告并公开一个音频设备。

  • BLE 上的音频不是标准的,因此所有实现都不会做同样的事情。在 Nexus Player 案例中,实现使用 HID:它流式传输 ADPCM 音频流,在 HID 报告中分 block 。有一个特殊的 HID 驱动程序 "hid-atv-remote.c"在 Android linux 内核中,除了输入设备外,它还公开了一个 ALSA 设备。 Bluedroid 没有关于音频的信息,它所做的只是将 HID 报告从 BLE 转发到 UHID。

    关于audio - 谁能解释语音命令如何通过 Android(Nexus 播放器)中的蓝牙 Remote (Nexus 播放器 Remote )工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603765/

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