Does "say" with mod_flite work anymore?

some1has2

New Member
Dec 19, 2025
10
0
1
Canada
It seems that mod_flite doesn't work out of the box, as I got an error in the logs "Invalid speech module [flite]!" and looking around these forums found no solutions.

So I followed the instructions on SignalWire to get it installed but the module won't turn on due to error "/usr/lib/freeswitch/mod/mod_flite.so: undefined symbol: register_cmu_us_slt" which lead me to an open bug report on the FS GitHub with no help.

My question is for the masses here: is it worth digging even harder into to get TTS working with "say:"? The official IVR YouTube implies it should just work, but running the latest fresh install didn't even give me mod_flite to make this work, I had to manually go try and load that up with the make files.

I'm wondering if there's another tool that's supposed to be used and this old information is outdated, or if I should've installed everything a different way to be able to do commands like "apt install freeswitch-mod-flite" that don't work (I don't have an apt repository for freeswitch and the base instructions don't guide on getting that going)
 
Mod flite is very old and robotic-sounding. If that isn't the style you want, then you probably don't want to use mod_flite.
 
Well the point is it doesn't work out of the box like it should, if it's so old it's unsupported now, what TTS do people setup in FusionPBX instead now? I didn't see any instructions online for getting a basic built-in mod working for executing the "say" feature.
 
How long ago was FusionPBX installed on your server? Also what version of FusionPBX do you have installed? Go to Status -> System Status to check your version.
 
I installed it 2 months ago myself just following the online documentation flow. It's currently 5.4.7 which is odd since your last tag is 5.4.4 I see in git, but here's the output:

Branch: 5.4
Commit: 5b83fc37fcbc816a358ac3d4766abc6e942eac1f
Origin: https://github.com/fusionpbx/fusionpbx
Status: Your branch is up to date with 'origin/5.4'. +69 days ago

It didn't come with the mod_flite components anywhere in the auto setup despite the mod_say stuff being enabled by default which depends on it? Found that kind of odd.
 
Do you want text-to-speech that actually sounds good, or do you want one that sounds retro and robotic? If you want retro and robotic you would like mod_flite. If you want something that sounds professional you probably don't want to use mod_flite.

I am interested in your reply asking because your answer would determine how to help you.
 
I would enjoy TTS that sounds good of course, but I'm looking for something that works automatically via typing within FusionPBX like "say" should do. For higher quality results I know that people use external TTS and then upload the recordings, but for my use case it's best to have the ability built-in regardless if it sounds robotic/retro.

I figured "say" only worked with mod_flite because that's the error I got in the logs, that the module wasn't found. If there's another mod or similar functionality of TTS that you can give some guidance towards, I'm all ears. I figured if "say" was included by default it should work out-of-the-box so I'm wondering if I missed a setup step or if I need to put a bug report for that on GitHub.
 
I think "speak" is what mod_flite is for. I'm pretty sure "say" only works on the predefined phrases in phrases_en.xml or similar, mainly used for creating automated clocks or other predefined prompt flows. I think that Youtube video just got mixed up during the demo.

As for the open bug, I wouldn't be surprised if it's one of those things where people just don't care except for tinkerers, the outputs are practically useless for commercial use. I've had a quick look, and I can't see a reason why the symbol is invalid now.
 
Hmm it was the error "Invalid speech module [flite]!" that I got trying to use "say" that even sent me down the path for finding mod_flite. I don't see anything about "speak" in the IVR section by default, there's tone_stream which I thought was just for making the number-dial sounds, and say which I thought would give me the basic robo-voice to instruct callers on what number to press. Definitely open to whatever path people take here to get basic IVR going with TTS (besides the known solution of go pre-record and upload to recordings as that's best in high quality commercial settings regardless).
 
So digging a bit deeper, I believe the say: to TTS functionality is part of the FreeSWITCH IVR code, so you are right. The official docs make no mention of this, but the FreeSWITCH documentation has always been crap:

mod_dptools: say
mod_dptools: speak

As for the module error, I've had a look but I can't seem to work it out myself, I try to stay as far away from the FreeSWITCH source code and its modules as much as I can. Probably best bumping that Github thread and hoping someone has a look at it. There's the other modules like mod_cepstral and mod_unimrcp but I'm pretty sure both require commercial software to be running on the server and have a bit more involved installation.