A Freeswitch module that generates real-time transcriptions on a Freeswitch channel by using Bodhi's streaming transcription API
The freeswitch module exposes the following API commands:
uuid_bodhi_transcribe <uuid> start <model-name>
Attaches media bug to channel and performs streaming recognize request.
uuid- unique identifier of Freeswitch channelmodel-name- a valid bodhi model-name
uuid_bodhi_transcribe <uuid> stop
Stop transcription on the channel.
- Add this variables in vars.xml or include in session before starting trascription
| variable | Description |
|---|---|
| BODHI_API_KEY | Bodhi API key used to authenticate |
| BODHI_CUSTOMER_ID | Bodhi Customer Id used to authenticate |
bodhi_transcribe::transcription - returns an interim and final transcription. The event contains a JSON body describing the transcription result:
{
"call_id": "<CALL_UUID>",
"segment_id": "<SENTENCE_SEGMENT_ID>",
"eos": false,
"type": "partial" _// "complete",_
"text": "<TRANSCRIPT>"
}- Copy build file from /poc folder to ~/freeswitch/mod/ directory.
- Copy all files from /poc/scripts to ~/freeswitch/scripts directory.
- Add Auth variables in
~/freeswitch/conf/vars.xmlfile - Add bodhi module to modules configuration
~/freeswitch/conf/autoload_configs/modules.conf.xml
<load module="mod_bodhi_transcribe"/>- Add Dialplan to run lua file
~/freeswitch/dialplan/default.xml
<condition field="destination_number" expression="^8000$">
<action application="answer"/>
<action application="log" data="Call connected successfully!" event="info"/>
<action application="lua" data="~/freeswitch/scripts/bodhi_transcribe.lua"/>
</condition>- Run dummy call using following command
fs_cli
reloadxml
originate {origination_caller_id_number=9090909090}loopback/8000/default &echo()Note: Change ~/freeswitch with actual path of freeswitch directory
- Bengali:
bn-general-jan24-v1-8khz - Hindi:
hi-general-feb24-v1-8khz - Kannada:
kn-general-jan24-v1-8khz - Marathi:
mr-general-jan24-v1-8khz - Tamil:
ta-general-jan24-v1-8khz - Telugu:
te-general-jan24-v1-8khz