[SOLUTION] Local TTS on Android Auto via VLC and Piper TTS

Local TTS on Android Auto via VLC and Piper TTS

Hi everyone,

After several iterations, I've put together a working solution to play
text-to-speech notifications through car speakers via Android Auto,
using only local components - no cloud, no Google Assistant.

Key features

  • :white_check_mark: Fully local TTS with Piper (no cloud dependency)
  • :white_check_mark: Works with any vehicle supporting Android Auto
  • :white_check_mark: Privacy-friendly - no data sent to external services
  • :white_check_mark: Reliable audio routing to car speakers (not phone speaker)
  • :white_check_mark: Tested on Mercedes-Benz with wireless Android Auto

How it works

The solution uses VLC as a bridge: Home Assistant generates TTS audio
via Piper, then sends a VLC intent to the phone with the audio file URL.
Android Auto recognizes VLC as a media source and routes audio to car speakers.

Complete guide on GitHub

I've documented the full solution with step-by-step installation,
validation tests at each stage, and a troubleshooting guide
:

:backhand_index_pointing_right: GitHub - Kolia56/ha-car-spoken-alerts: Local spoken alerts in your car via Android Auto - Home Assistant integration with Piper TTS and VLC. Privacy-friendly, no cloud dependency. · GitHub

The repository includes:

  • Detailed installation instructions
  • Ready-to-use example files (scripts, automations)
  • Validation tests for each component
  • Known limitations and how to handle them
  • Vehicle compatibility notes

Known limitations

The previous audio source (radio, Spotify, etc.) does not auto-resume
after TTS finishes. Android Auto replaces the audio source rather than
pausing it. A manual tap on the radio/music app is needed to resume.

This is acceptable for critical notifications (fuel alerts, security, etc.)
but may not suit frequent non-critical messages.

Looking for feedback

If you test this solution on a different vehicle, I'd love to hear:

  • Car make/model/year
  • Connection type (wired/wireless)
  • Audio source behavior (auto-resume or not)
  • Any quirks or issues

This will help build community compatibility data.

Feedback and improvements welcome!