This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Android TV voice input with Smart remote 3

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.

Source: stackoverflow.com/.../can-anyone-explain-how-voice-commands-works-via-bluetooth-remotenexus-player-re

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?

Parents
  • Hi,

    Yes, the Smart Remote 3 streams voice using HID over GATT, and supports several codecs, including ADPCM and Opus.

    Since voice-over-BLE is not a standardized profile, the requirement for this to work is that the same profile and configuration is implemented on both the remote and the TV.
    For now, every manufacturer uses his own method/configuration to stream data, so a AndroidTV remote for one device, won’t work with all the Android TVs, but this will most likely improve in the future.
    So in order to get the Smart Remote 3 to work with a given AndroidTV, you need to configure the Smart Remote 3 exactly with the same configuration as the AndroidTV uses(same codec, sampling frequency, frame rate, etc).

Reply
  • Hi,

    Yes, the Smart Remote 3 streams voice using HID over GATT, and supports several codecs, including ADPCM and Opus.

    Since voice-over-BLE is not a standardized profile, the requirement for this to work is that the same profile and configuration is implemented on both the remote and the TV.
    For now, every manufacturer uses his own method/configuration to stream data, so a AndroidTV remote for one device, won’t work with all the Android TVs, but this will most likely improve in the future.
    So in order to get the Smart Remote 3 to work with a given AndroidTV, you need to configure the Smart Remote 3 exactly with the same configuration as the AndroidTV uses(same codec, sampling frequency, frame rate, etc).

Children
No Data
Related