AI Components Setup
To enable and start the AI features, follow the steps mentioned below.
Pre-requisites
-
AI Framework:
-
Python version >=3.10.0
-
-
Vosk:
-
Minimum 16 GB RAM
-
4 Core CPU
-
AI Framework
-
Installation
-
Clone the repository containing the folder
proconf-ai. -
Navigate inside the folder and download the required libraries from the requirements.txt
pip3 install -r requirements.txt
-
Configuration
-
Change the owner of the proconf-ai folder to jigasi:jitsi by running the following command:
chown -R jigasi:jitsi proconf-ai -
App
Navigate to app/configs.py and configure the Host and Port as per need. By Default:
- Host: 127.0.0.1
- Port: 8081
-
Connector
-
Give write permissions to this folder
chmod +777 connector/ -
Navigate inside connector folder and open configs.py to configure the Host and Port as per need. By Default:
- Host: 127.0.0.1
- Port: 5000
-
Change the WEBHOOK_MESSAGE_API according to the configs set in App (if changed)
-
Set the CATCHUP_TRANSCRIPTS_PATH according to where you want the temporary files to be stored and create the folder at the specified path.
-
Give write permissions to main.py and services.py.
chmod +777 main.py services.py
-
-
Start
-
App
In the app folder, run the following command
pm2 start -n app main.py -
Connector
In the connector folder, run the following command
pm2 start -n connector main.py
Jigasi
-
Installation
No specific installation required to enable AI features.
-
Configuration
-
Open the
/etc/jitsi/jigasi/sip-communicator.propertiesfile and set the following propertiesorg.jitsi.jigasi.ENABLE_TRANSCRIPTION=true
org.jitsi.jigasi.transcription.DIRECTORY=/var/lib/jigasi/transcripts
# save formats
org.jitsi.jigasi.transcription.SAVE_JSON=false
org.jitsi.jigasi.transcription.SAVE_TXT=true
# send formats
org.jitsi.jigasi.transcription.SEND_JSON=true
#org.jitsi.jigasi.transcription.SEND_TXT=false
org.jitsi.jigasi.transcription.SEND_JSON_REMOTE_URLS=<WEBHOOK_MESSAGE_API>
# Vosk server
org.jitsi.jigasi.transcription.customService=org.jitsi.jigasi.transcription.VoskTranscriptionService
org.jitsi.jigasi.transcription.vosk.websocket_url=ws://<Vosk_Server_IP>:2700
# execute one or more scripts when a transcript or recording is saved
org.jitsi.jigasi.transcription.EXECUTE_SCRIPTS=true
org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST_SEPARATOR=","
org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST=/var/lib/jigasi/test_script.sh
# Vosk server
org.jitsi.jigasi.transcription.customService=org.jitsi.jigasi.transcription.VoskTranscriptionService
org.jitsi.jigasi.transcription.vosk.websocket_url=<ws://<Vosk_Server_IP>:2700>
# execute one or more scripts when a transcript or recording is saved
org.jitsi.jigasi.transcription.EXECUTE_SCRIPTS=true
org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST_SEPARATOR=","
org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST=/var/lib/jigasi/test_script.sh -
Open the
/etc/jitsi/meet/prod-jitsi.proconf.live-config.jsfile and set the following propertiestranscription: {
enabled: true,
useAppLanguage: true,
}, -
Restart the jigasi service
systemctl restart jigasi.service
-
Vosk
-
Installation
Please follow the steps on Vosk Installation for setting up vosk websocket server.
note: Once the vosk server is up and running, restart the jigasi service using the command given above. -
Start
To start the vosk server, run the following command
sudo docker run -d -p 2700:2700 alphacep/kaldi-en:latest
Setup Verification
To ensure that the setup is done correctly and running as expected, follow the steps below.
-
Flow 1
Start the jitsi meeting and turn the subtitles on in English. Once the subtitles are turned on, the Transcriber should join the meeting and you should be able to see real-time transcription as and when you speak. This flow will ensure that the transcription feature is working.
-
Flow 2
While the transcription is being generated, naivgate to the catchup_transcripts folder on the server. There, you should be able to see a file [with a name containing the meeting_id of the meeting] created with transcription getting added in it. Then hit the button on UI or manually hit the summary api to get a recap of the meeting, you should receive a summary of the transcript stored till that time. This flow will ensure that the catchup-summary feature is working.
-
Flow 3
Finally, turn off the subtitles. Then,
- Navigate to /var/lib/jigasi/transcripts. In this folder, go inside the latest folder generated. There you should see two text files generated: transcript.txt and transcript_summary.txt
- Navigate to the catchup_transcripts folder. In this folder, the file [with a name containing the meeting_id of the meeting] should not be present anymore.
This flow will ensure that the entire meeting summary feature is working.