Nodes/ComfyUI_MSSpeech_TTS/MicorsoftSpeech_TTS
ComfyUI Node

MicorsoftSpeech_TTS

Free Microsoft TTS in ComfyUI — no API key, no GPU, no model download

By chflame163·Created 3 years ago·Updated about a year ago· 30
MicorsoftSpeech_TTS
    • MP3 file: String
    voice
    rate0
    filename_prefixcomfyUI
    text

    The name says "Microsoft," so you'd brace for an Azure subscription, an API key, and a surprise bill. It's none of those. This node turns text into an MP3 by talking to the same free speech endpoint Microsoft's Edge browser uses for read-aloud - no key, no GPU, no model files to fetch. If you want a narrator for an image-to-video workflow, a character voice for an interactive dialogue graph, or just a fast way to audition forty voices, it's about the cheapest on-ramp to speech in ComfyUI.

    It's a tiny utility from a Chinese-maintained pack that wears the author's 😺dzNodes branding (the category is literally 😺dzNodes/MSSpeechTTS). It is not a local neural TTS like F5-TTS or XTTS - those need a GPU and a multi-gigabyte download. This one needs exactly two things: edge_tts installed and an internet connection.

    How it works

    Under the hood it's the edge_tts Python library doing the heavy lifting. The node sends your text, a voice ID, and a rate to Microsoft's speech servers, gets back MP3 audio, and writes it to disk. All the synthesis happens server-side, so your machine barely notices it. The file lands in ComfyUI/output/audio/<prefix>_<timestamp>_<voicename>.mp3, which is the same folder the Output sidebar reads, so the MP3 shows up there as playable output after a run.

    The inputs that matter

    There are only four, and you'll actually touch two of them.

    • voice - a dropdown of neural voices. It ships with about two dozen enabled, mostly US English plus Mandarin, Cantonese, and Taiwanese voices. Roughly 300 more sit in voicelist.ini in the pack folder, commented out; delete the # at the start of a line to enable one. That's the author's own customization mechanism, and it's the first thing to know when the voice you want isn't in the list. (Side note: the parser eats the last letter of the gender label, so you'll see "(Femal)" and "(Mal)". Harmless, and oddly endearing.)
    • text - multiline string, your script. That's it.
    • rate - speech speed as a percentage, -200 to 200, default 0. Positive is faster, negative slower. It's applied as +50% or -30%, and at the extremes voices get comically chipmunk.
    • filename_prefix - the output filename prefix (default comfyUI).

    The output

    One output, named MP3 file: String. It's a string holding the absolute path to the saved file - there is no first-class audio type in vanilla ComfyUI, so don't expect to wire it straight into a video node. Treat it as an output node: run it, grab the MP3 from the sidebar or the output/audio/ folder. If you do want to chain it, you need a node that accepts a file path string.

    Install

    Easiest via ComfyUI Manager: Install Custom Nodes → search "ComfyUI_MSSpeech_TTS", then restart. Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chflame163/ComfyUI_MSSpeech_TTS
    cd ComfyUI_MSSpeech_TTS
    pip install -r requirements.txt
    

    Then restart ComfyUI. For a portable install, use the embedded Python like the README shows: ..\..\..\python_embeded\python.exe -s -m pip install -r requirements.txt. Of the dependencies, edge_tts is the one that matters for this node; numpy, pyglet, arcade, and pygame are mostly for the pack's sibling sound-playing nodes. No models, no weights, no API signup.

    Common gotchas

    • It needs internet. Synthesis happens on Microsoft's servers, not your machine. Offline, it errors and writes nothing.
    • It's an unofficial endpoint. Microsoft can change or throttle it at any time; the fix usually lands in edge_tts. If a node that worked yesterday starts failing, pip install -U edge-tts and restart.
    • A voice is "missing." Check voicelist.ini - it's probably just commented out.
    • The spelling. The node registers in ComfyUI as MicrosoftSpeech_TTS, while the comfy.icu page slug is MicorsoftSpeech_TTS (a long-lived typo). Searching either will find you here.

    For a free, zero-install-weight way to add speech to a ComfyUI workflow, this is the one to reach for. Just keep in mind the synth happens on someone else's servers - fine for experimentation, and worth remembering if you're automating hundreds of runs.

    CategoryMicorsoftSpeech_TTS

    Inputs (4)

    NameTypeDefaultDescription
    voiceCOMBO14 options: zh-CN-XiaoxiaoNeural, zh-CN-XiaoyiNeural, zh-CN-YunjianNeural, zh-CN-YunxiNeural, zh-CN-YunxiaNeural, zh-CN-YunyangNeural, +8
    rateINT0-200–200
    filename_prefixSTRINGcomfyUI
    textSTRING

    Outputs (1)

    NameTypeDescription
    MP3 file: StringSTRING