user 013cc9f226 Merge pull request 'Update docker/build-push-action action to v6' (#11) from renovate/docker-build-push-action-6.x into master | 3 kuukautta sitten | |
---|---|---|
.github | 5 kuukautta sitten | |
whisper.cpp @ fff24a0148 | 8 kuukautta sitten | |
.dockerignore | 2 vuotta sitten | |
.gitignore | 1 vuosi sitten | |
.gitmodules | 2 vuotta sitten | |
Dockerfile | 1 vuosi sitten | |
README.md | 8 kuukautta sitten | |
main.py | 8 kuukautta sitten | |
renovate.json | 1 vuosi sitten | |
requirements.txt | 4 kuukautta sitten | |
speech_recognition.py | 1 vuosi sitten |
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.
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"
The bot will download the model file on first run to reduce image size. Available models are tiny.en
, tiny
, base.en
, base
, small.en
, small
, medium.en
, medium
, and large
. The default is ASR_MODEL=tiny
.
You can authenticate using tokens instead of a password by setting LOGIN_TOKEN=<login-token>
or ACCESS_TOKEN=<access-token>
instead of PASSWORD=<password>
.
ASR_MODEL: You can choose a docker tag with the corresponding model pre downloaded or set it with ASR_MODEL
. Available models are tiny.en
, tiny
, base.en
, base
, small.en
, small
, medium.en
, medium
, and large
. The default is ASR_MODEL=tiny
.
Authentication:
LOGIN_TOKEN=<login-token>
or ACCESS_TOKEN=<access-token>
instead of PASSWORD=<password>
.Allowlist:
ALLOWLIST
environment variable is defined, the bot will parse it and use it as the allowlist.ALLOWLIST=^@user1:example.com$,^@user2:example.com$
ALLOWLIST
is not defined, the bot will only allow commands from users of the bot's homeserver.