This is a fantastic quality-of-life upgrade. Being able to generate recordings directly through the UI using TTS saves so much time compared to the old upload method. I really like the flexibility of language and voice selection too. Curious to see if broader voice support like OpenAI’s gets added down the line—this definitely opens up some creative use cases.
Thank you so much sir.
Where are you storing the api keys?
Oh nevermind, I see it goes into the kvstore tables.
Regarding KVstore. I just forgot to add this part on backup restore.
I will add this later.
That’s my bad.
Franck, would you consider adding a voice to the ElevenLabs list? Serena (legacy) voice id ‘pMsXgVXv3BLzUgSXRplE’ is Allison Smith - The Voice of Asterisk.
If you use ElevenMultilingual V1, or ElevenFlash V2, it sounds just like her.
I have been using this for many months to make custom Allison sound files directly from the ElevenLabs website, but if it was built into the recordings module, that would be awesome
Also, I see in the file Elevenlabs.php you have this line here:
public function convertToAudio($file_name, $text, $voiceId, $langCode = 'fr', $stability = 0.5, $similarity = 0.5) {
Would it be possible to use the language selected from views/form.php or at a minimum, the system default language $langs[$default]
?
I guess you would need something to map the $langs variable to what elevenlabs expects.
It looks like the recordings module is loading language values from
$langs = $this->FreePBX->Soundlang->getLanguages();
I haven’t looked at the ElevenLabs API docs, but freepbx Soundlang already has this mapping:
public function getLanguageNames() {
$names = ['cs' => _('Czech'), 'de' => _('German'), 'en' => _('English'), 'es' => _('Spanish'), 'fa' => _('Persian'), 'fi' => _('Finish'), 'fr' => _('French'), 'he' => _('Hebrew'), 'it' => _('Italian'), 'ja' => _('Japanese'), 'nl' => _('Dutch'), 'no' => _('Norwegian'), 'pl' => _('Polish'), 'pt' => _('Portuguese'), 'ru' => _('Russian'), 'sv' => _('Swedish'), 'tr' => _('Turkish'), 'zh' => _('Chinese')];
return $names;
}
So maybe it can pull the two character value from this list, if these are the same values that ElevenLabs expects.
I will try later.
For now, I’m busy. But yes… Will do.
BTW, I saw you are able to review the code. As the module is open source, you can change the code as well.
Otherwise, I will do, but not now. My calendar is full right now.
I’m a fulltime Business Analyst so I can read most code proficiently, but I am not a developer by any means. I can throw it into ChatGPT and see what it comes up with, lol.
Also for my PBX–We are on PBXAct Cloud, meaning I don’t have access to SSH or the module admin. It would need to be an actual build that gets put into production and Sangoma would have to update our instance.
No prob.
Just be patient so.
I will do that later on my free time. But for now, I’m busy.
Hi Franck, any plans on releasing this on v17 as well?
Thanks
Works for me on v17. I updated system recordings and it’s there.
I see now, for whatever reason, the initial showupgrades
didn’t show any new available updates for the recording module.
I updated now. Thank you, Tom!
I raised a PR to add the newest OpenAI voices.
Hi.
The feature should be available on 17 as well.
Why?
OpenIA should be ready.
Since you added OpenAI, they added additional voices.