Fără Descriere

subDesTagesMitExtraKaese 067856f5eb update build script to debian bookworm 1 lună în urmă
.github 6aeb13ab96 remove preloaded images 1 lună în urmă
whisper.cpp @ fc7b1ee521 9b5326daaa update whisper.cpp 1 lună în urmă
.dockerignore e4de1a1d0a big bang 2 ani în urmă
.gitignore a6b423ceaa update dependencies 1 an în urmă
.gitmodules 26f403c679 migrate to native cpp implementation 2 ani în urmă
Dockerfile 067856f5eb update build script to debian bookworm 1 lună în urmă
LICENSE ee554b4de2 Create LICENSE 1 lună în urmă
README.md 377763ced2 allow loading external models 1 lună în urmă
main.py 377763ced2 allow loading external models 1 lună în urmă
renovate.json e29743a756 Add renovate.json 1 an în urmă
requirements.txt 670ec27f15 Revert "remove direct reference to matrix-nio" 1 lună în urmă
speech_recognition.py 377763ced2 allow loading external models 1 lună în urmă

README.md

Matrix Speech-To-Text Bot

Transcribes audio messages using OpenAI Whisper.

This bot is based on Simple-Matrix-Bot-Lib and whisper.cpp. It downloads audio messages from your homeserver, transcribes them locally and responds with the result as a text message.

Usage

The bot is available as an image on DockerHub. You can deploy it using docker-compose:

version: "3.7"

services:
  matrix-stt-bot:
    image: ftcaplan/matrix-stt-bot
    restart: on-failure
    volumes:
      - ./data/:/data/
    environment:
      - "HOMESERVER=https://matrix.example.com"
      - "USERNAME=@stt-bot:example.com"
      - "PASSWORD=<password>"
      - "ASR_MODEL=tiny"
      - "ASR_LANGUAGE=en"

Configuration

  • ASR_MODEL: You can choose a model by setting it with ASR_MODEL.

    • Available models are for example tiny.en, tiny, base, small, medium, and large-v3. The full list is available on Hugging Face.

    • The default is ASR_MODEL=tiny. The bot will download the model file on first run to reduce image size.

    • You can load your own ggml models by providing them at the following path: /data/models/ggml-$ASR_MODEL.bin

  • Authentication: You can authenticate using tokens instead of a password:

    • Set LOGIN_TOKEN=<login-token> or ACCESS_TOKEN=<access-token> instead of PASSWORD=<password>.
  • Allowlist:

    • To restrict commands to specific users, you can set up an allowlist using regular expressions of Matrix user IDs. This feature allows you to specify which users are allowed to send commands to the bot.
    • If the ALLOWLIST environment variable is defined, the bot will parse it and use it as the allowlist.
    • Example: ALLOWLIST=^@user1:example.com$,^@user2:example.com$
    • If ALLOWLIST is not defined, the bot will only allow commands from users of the bot's homeserver.