Microsoft Text-to-Speech (TTS)

:studio_microphone: Microsoft Text-to-Speech (TTS) - Integration replacement

Modern and updated replacement for the official Microsoft Text-to-Speech integration

Hi everyone! :wave:

I created a custom integration to replace the official Home Assistant Microsoft TTS integration, which unfortunately is no longer maintained and is now obsolete.

Download: :point_right: GitHub - pajeronda/microsoft: Microsoft Text-to-Speech (TTS) for Home Assitant with streaming support.

:dart: Why this integration?

The original Microsoft TTS integration:

❌ Is no longer updated

❌ Does not support new Home Assistant features

My version:

✅ Real-time streaming for immediate voice responses

✅ Compatible with Assist Pipeline and conversation agents

✅ Supports all Azure voices (400+ voices in 140+ languages)

✅ Configuration via User Interface (no YAML!)

:zap: TTS Streaming: What changes?

With streaming, when you use an LLM (like ChatGPT, Gemini, Grok, etc.) with the voice assistant:

BEFORE (without streaming):

You ask a voice question

The LLM generates the WHOLE text response

Only at the end is it converted to audio

⏱️ Wait: several seconds before hearing anything

NOW (with streaming):

You ask a voice question

The LLM starts generating the response

Each sentence is immediately converted to audio

⚡ Wait: the first sentence starts almost immediately

The rest continues while the LLM writes

Result: Latency reduction of 50-70%! :rocket:

:package: Installation and Configuration

This integration completely replaces the official Home Assistant one.

For installation via HACS and full configuration, check the repository README:

:point_right: GitHub - pajeronda/microsoft: Microsoft Text-to-Speech (TTS) for Home Assitant with streaming support.

The README contains:

Detailed HACS installation instructions

How to remove the old YAML configuration

How to configure the integration via UI

How to get a free Azure API Key

:control_knobs: Advanced Features

Besides streaming, you can customize:

Voice: Choose from 400+ voices (male/female, different accents)

Rate: Speaking speed (-50% to +200%)

Pitch: Voice tone (low/high)

Volume: Audio volume

Style: Emotions (cheerful, sad, angry, neutral, etc.)

Role: Narrative role (child, adult, senior)

:wrench: Requirements

Home Assistant 2024.2 or higher

Azure Cognitive Services account (free up to 500,000 chars/month)

Azure Speech Services API Key

:earth_africa: Supported Languages

All Azure TTS languages (140+), including:

English (50+ voices with UK, US, AU, IN accents, etc.)

Italian (10+ different voices)

Spanish, French, German, Portuguese

Chinese, Japanese, Korean

Arabic, Hindi, and many others

:open_book: Useful Links

GitHub Repository: https://github.com/Pajeronda/microsoft

Official Home Assistant service docs: https://www.home-assistant.io/integrations/microsoft

Bug reports/requests: https://github.com/Pajeronda/microsoft/issues

:question: FAQ

Q: Can I use it with Assist Pipeline and conversation agents? A: Yes! That’s exactly why I added streaming.

Q: Does it work without LLMs? A: Absolutely! It works with any normal TTS service.

Q: Is it free? A: Azure offers 500,000 characters/month for free (across all voices). More than enough for home use!

Q: Do I need to remove the old integration? A: Yes, remove the YAML configuration before installing this.

I hope this integration is useful for you! If you have questions, doubts, or find bugs, feel free to write here or open an issue on GitHub.

Have fun with your voice assistants! :tada:

@pajeronda

1 Like

Perhaps add a post similar to this as a feature request? Maybe someone could use your groundwork to ‘fix’ the core version? (Worded as a feature request, not as an offer for others to try.)
OR
Maybe the version that doesn’t work could be retired?

Thanks for the suggestion, @Sir_Goodenough!

I created this custom integration primarily because I urgently needed streaming support for my setup, and the official version hasn’t been maintained for a couple of years.

I’m sharing it with the community in case others have the same need, but I don’t intend to take on the responsibility of maintaining a basic integration or submitting feature requests for official adoption.

If the Home Assistant team would like to use this work for the official integration, they’re absolutely welcome to do so: the code is open source and available under the MIT license. I’d be happy to see it integrated into the core.

So far, it’s working great for my needs, and I hope it helps others in the same situation! :slightly_smiling_face:

For them to see it, it needs to be a Feature Request or a Discussion, it likely won’t be seen here.
It didn’t seem like you were in a position to take on a core integration or you just would have, but your completed work might give someone the boost to carry it forward.