Call Transcriber App Development for 3CX using OpenAI
Budget: $750 – $1,500 NZD
The goal is to build a small app that accurately transcribes phone calls on a 3CX phone system using OpenAI's Whisper model.
The app will be deployed solely on Debian 12 servers, specifically the 3CX Debian 12 distribution. Ideally, we would like the app written in Python as we have some in-house experience.
The app needs to do the following:
1. Listen for SIP and RTP network traffic on a given network interface.
2. Identify a phone call starting from the SIP traffic.
3. Record the two streams of audio from each side of the call separately. Potentially also store a single combined audio at this point too to save future processing.
4. Send the two separate audios to the OpenAI Whisper model to be transcribed.
5. The two transcriptions should be returned with timestamps throughout identifying when the sentence/paragraph was said. These need to be collated in to a single transcriptions so it can be clearly read as:
Speaker 1: "Hello, how are you"
Speaker 2: "I'm good thanks. I need help with my account"
Speaker 1: "Ok sure, I can help with that"
6. Finally, the completed transcription and single call audio needs to be sent to a given RESTful endpoint.
We then want a bash installation script to install this. We want to just quickly install this on lots of servers using something like... 'wget http://my-apps/install.sh | bash'
It should install all dependencies and set up the systemd script, and enable to run on boot. It should also ask input for certain variables like the network interface, OpenAI key, restful endpoint it posts the data too, log files etc and store these in a simple config file (JSON would be fine).
The most important thing is the app uses the least amount of resource possible. It should only store the minimal amount of data possible and purge temporary data right away. Logs should be removed daily, perhaps with a verbose log setting in the config to enable up to 5 days. If Python isn't suitable, or something else is significantly more efficient, we are open to looking at these options. It would also be good to limit the amount of extra packages need to be installed on top of the standard 3CX Debian 12 distribution.
The app will be deployed solely on Debian 12 servers, specifically the 3CX Debian 12 distribution. Ideally, we would like the app written in Python as we have some in-house experience.
The app needs to do the following:
1. Listen for SIP and RTP network traffic on a given network interface.
2. Identify a phone call starting from the SIP traffic.
3. Record the two streams of audio from each side of the call separately. Potentially also store a single combined audio at this point too to save future processing.
4. Send the two separate audios to the OpenAI Whisper model to be transcribed.
5. The two transcriptions should be returned with timestamps throughout identifying when the sentence/paragraph was said. These need to be collated in to a single transcriptions so it can be clearly read as:
Speaker 1: "Hello, how are you"
Speaker 2: "I'm good thanks. I need help with my account"
Speaker 1: "Ok sure, I can help with that"
6. Finally, the completed transcription and single call audio needs to be sent to a given RESTful endpoint.
We then want a bash installation script to install this. We want to just quickly install this on lots of servers using something like... 'wget http://my-apps/install.sh | bash'
It should install all dependencies and set up the systemd script, and enable to run on boot. It should also ask input for certain variables like the network interface, OpenAI key, restful endpoint it posts the data too, log files etc and store these in a simple config file (JSON would be fine).
The most important thing is the app uses the least amount of resource possible. It should only store the minimal amount of data possible and purge temporary data right away. Logs should be removed daily, perhaps with a verbose log setting in the config to enable up to 5 days. If Python isn't suitable, or something else is significantly more efficient, we are open to looking at these options. It would also be good to limit the amount of extra packages need to be installed on top of the standard 3CX Debian 12 distribution.