Many Bluetooth headsets support the Bluetooth Voice Recognition Activation (BVRA) command. Google Assistant, via the Google Assistant app running on a paired mobile device, uses BVRA to initiate a Google Voice Assistant (GVA) session. Optimizing the transmission for BVRA reduces latency in the signal chain.
Analyzing latency in the command chain
During typical usage, the link between a Bluetooth headset and its audio gateway (for example, a paired mobile device) operates in sniff mode. The typical sniff parameters are set to 500 ms.
Some headsets leave the link in sniff mode and send the BVRA command in the following manner:
|Time since sniff||Description|
|0 ms||Headset sends
|500 ms||Audio gateway takes the link out of sniff mode|
|501 ms||Audio gateway sends BVRA
|502 ms||Audio gateway opens a Synchronous Connection-Oriented (SCO) link with the headset|
If the headset brings the link out of sniff mode before the BVRA command is sent, then the following flow occurs:
|Time since out of sniff||Description|
|0 ms||Headset takes the link out of sniff mode|
|1 ms||Headset sends
|2 ms||Audio gateway sends BVRA
|3 ms||Audio gateway opens SCO|
From the analysis, taking the link out of sniff mode before the BVRA command is sent saves 500 ms (or the sniff time interval).
Before the audio gateway sends a BVRA command, ensure the link is awake first. This improvement can reduce BVRA-associated latency by one sniff interval.
Additionally, there might be other commands that could benefit from taking the link out of sniff mode first. You should survey your implementation to assess potential savings.
|2020-07-13||Added initial version of page|