-
-
Notifications
You must be signed in to change notification settings - Fork 927
Bluetooth headset microphone not used for Assistant voice input (audio input remains on phone mic) #6433
Description
Home Assistant Android app version(s):
2026.2.2-full
Android version(s):
16.0
Device model(s):
Motorola Razr 50 Ultra
Home Assistant version:
Core: 2026.2.1
Supervisor: 2026.02.1
OS: 17.0
Frontend: 20260128.6
Last working Home Assistant release (if known):
N/A (issue has always occurred)
Description of problem, include YAML if issue is related to notifications:
When using the voice assistant in the Home Assistant Companion Android app with any Bluetooth headset, the audio output is correctly routed to the headset, but the microphone input remains on the phone. The Bluetooth headset's microphone is not used. This is a significant problem when the phone is not easily accessible (e.g., in a pocket or bag), as commands are not understood or are missed entirely.
Technical findings from code investigation:
- The app's audio recording logic is hardcoded to use AudioSource.MIC (the internal device mic) for recording voice commands (see AudioRecorder.kt).
- No logic exists to check for and use Bluetooth SCO, BLUETOOTH_SCO, or VOICE_COMMUNICATION audio sources, nor to establish a Bluetooth SCO link via AudioManager.
- No setting or configuration is available to select the audio input source. Even though receiver logic exists for audio device events, it is used for reporting/sensors only, not for microphone routing.
- The default Android behavior is to keep audio input on the device mic unless the app specifically selects the Bluetooth audio path. (Output will follow the system route automatically.)
- There is previously reported feature request Issue #4230 about audio source selection, but this issue specifically documents the technical/UX problem and its technical cause.
Reproduction steps:
- Connect any Bluetooth headset (e.g. headphones, earbuds) to the device.
- Open the Home Assistant Companion Android app.
- Trigger "Assist" (the voice assistant) and attempt to speak a command via the headset mic.
- Observe that audio output is routed to the headset, but the input comes from the phone's built-in mic.
Expected behavior:
When a Bluetooth headset is connected, the app should detect it and select/route the microphone input through the Bluetooth headset microphone, not the internal mic. Ideally, users should be able to select the preferred audio input source or the app should follow standard Android patterns for voice input.
Logs:
(Not directly applicable)
Screenshot or video of problem:
N/A
Additional information:
- Problem occurs with any Bluetooth headset.
- Home Assistant OS installation, details as above.
- See also: Existing feature request #4230 (requests source selection, but this is focused on the technical gap and UX issue with Bluetooth mics specifically).
- Investigation and code references can be provided if needed. Several relevant code paths in AudioRecorder, AssistViewModel, and WakeWordListener show no conditional routing based on connected audio devices.