Skip to main content

AI Components Setup

To enable and start the AI features, follow the steps mentioned below.

Pre-requisites

  • AI Framework:

    • Python version >=3.10.0

    • PM2

  • Vosk:

    • Minimum 16 GB RAM

    • 4 Core CPU

AI Framework

  • Installation

  1. Clone the repository containing the folder proconf-ai.

  2. Navigate inside the folder and download the required libraries from the requirements.txt

    pip3 install -r requirements.txt
  • Configuration

  1. Change the owner of the proconf-ai folder to jigasi:jitsi by running the following command:

    chown -R jigasi:jitsi proconf-ai
  2. App

    Navigate to app/configs.py and configure the Host and Port as per need. By Default:

    • Host: 127.0.0.1
    • Port: 8081
  3. 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
  1. App

    In the app folder, run the following command

    pm2 start -n app main.py
  2. 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

    1. Open the /etc/jitsi/jigasi/sip-communicator.properties file and set the following properties

      org.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
    2. Open the /etc/jitsi/meet/prod-jitsi.proconf.live-config.js file and set the following properties

      transcription: {
      enabled: true,
      useAppLanguage: true,
      },
    3. 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,

    1. 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
    2. 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.