Android TV devices such as Nvidia Shield, Xiaomi MiBox and Nexus Player have support for voice input via their BLE remotes. I've researched it a bit to figure out how it works and this is what I've gathered:
In the android world, command processing framework is google sauce (closed) that most easily gets its audio from an ALSA device. What is left to be done is getting audio from the remote to an ALSA device.
Audio over BLE is not standard, so all implementations do not do the actual same thing. In Nexus Player case, implementation uses HID: It streams an ADPCM audio stream, chunked in HID reports. There is a special HID driver "hid-atv-remote.c" in Android linux kernel that exposes an ALSA device in addition to input device. Bluedroid has no information about audio, all it does is forwarding HID reports from BLE to UHID.
Does the Smart Remote 3 stream audio in this way? What steps would be needed to take to get the Smart remote 3 voice input working with AndroidTV?