Visual voicemail with transcription

Just starting a topic to say that,

  • I’d really like this (adding transcriptions to visual voicemail)
  • if anyone has ideas about how to DIY something like this, I’d be interested in either doing it properly or hacking it together for fun

Transcript injection into email works well (GitHub - simontelephonics/transcribe-with-azure) but it would be a whole lot nicer to see the transcript in the visual voicemail list rather than having to go back to the email inbox for it.

I store mine in the database and the users can view them, print them and delete them.

How do they access the transcripts?

Through a portal I designed for them. I’m not using FreePBX for what I’m doing. I was just giving an overview. Add a new table for the transcripts, update the voicemail/ucp to display the information about the transcripts. I just use a table style for listing CID, time/date, confidence score and view/delete icons. When they view it, a modal style window pops up and they can see the transcript and have options to print or delete the transcript.

1 Like

EDIT: It seems I misunderstood the requirements. I thought you needed transcription in general, but I re-read your post and it seems like you’re wanting something in the UCP. Can’t help there, but will keep my post below up.

@billsimon I currently do this, and a hack job it is… But it works.

First, I am on PBXact Cloud. This is important because one of the “features” as Sangoma calls it (sarcasm) is no root/ssh access to your box. So, I had to find a way to work around this, and still get the data I needed.

First I set each ext to send voicemail emails to a catchall email address. [email protected]

I then have a python script that extracts the attachment, ext, and vm data from the body of the email, and stores it in my own MySQL DB.

Another python script checks for new VMs in the DB, and if detected, runs a transcribe python script. I am using an API call to assemblyai.com to do the VM transcription, and then store the transcription text back in into MySQL.

Once transcribed, we call another script to fetch the now complete MySQL data, send an email to the user that received the voicemail, and do some file cleanup (moving the WAV file to an archive location).

This of course is a simplified expiation, and if you want to know more, feel free to PM me and we can discuss code, etc.
If you do have SSH/Root access to your PBX, you could probably just create a script to transcribe (using assemblyai or another transcription service of your choice) and store text into the freepbx DB, and then have that script call the function to email the transcription to the user.

To anyone else reading this in horror… I am well aware this whole setup is chaos, but it gets the job done given the restrictions I have on the PBX. :slight_smile:

@shane8johnson OP @billsimon already linked to a script he created that transcribes using Azure Speech, and it works great. He’s looking for a way to put that information into the visual voicemail list (ucp, sangoma phone, etc.), which I think would be useful as well.

Ideally I would like to see transcripts in Sangoma Phone or Talk softphone apps. The only way I can think to do this would be to send them as though they were SMS. However SMSes are DID-based and voicemail is extension-based, so there’s not a clean way to match it up.

Couldn’t you just send it as a SIP MESSAGE? Would those apps accept it that way?

Unfortunately not.

That’s odd, I’d figure those would have SIP MESSAGE support at least.