101 lines
No EOL
2.9 KiB
Markdown
101 lines
No EOL
2.9 KiB
Markdown
# Introduction
|
|
This is a simple matrix bot that transcribes your voice to text message using faster-whisper, a reimplementation of OpenAI's Whisper model using CTranslate2.
|
|
|
|
## Feature
|
|
|
|
1. Liberate your hands: support automatically speech to text transcribtion
|
|
2. Support E2EE Room
|
|
3. Self host your service without privacy problem
|
|
|
|
## Installation and Setup
|
|
|
|
1. Edit `config.json` or `.env` with proper values
|
|
2. Edit `compose.yaml`
|
|
3. Launch the container
|
|
|
|
Here is a guide to make bot works on E2E encrypted room.
|
|
|
|
For explainations and complete parameter list see: https://github.com/hibobmaster/matrix-stt-bot/wiki
|
|
|
|
1. Create `config.json`
|
|
|
|
Tips: set a non-exist `room_id` at the first time to prevent bot handling historical message which may mess your room up.
|
|
```json
|
|
{
|
|
"homeserver": "https://matrix.org",
|
|
"user_id": "@xxxx:matrix.org",
|
|
"password": "xxxxxxxxxx",
|
|
"device_id": "GMIAZSVFF",
|
|
"room_id": "!xxxxxxxx:xxx.xxx.xxx",
|
|
"model_size": "base",
|
|
"import_keys_path": "element-keys.txt",
|
|
"import_keys_password": "xxxxxxxxxxxx"
|
|
}
|
|
```
|
|
2. Create `compose.yaml`
|
|
|
|
```yaml
|
|
services:
|
|
app:
|
|
image: ghcr.io/hibobmaster/matrix-stt-bot:latest
|
|
container_name: matrix-stt-bot
|
|
restart: always
|
|
# build:
|
|
# context: .
|
|
# dockerfile: ./Dockerfile
|
|
# env_file:
|
|
# - .env
|
|
volumes:
|
|
# use env file or config.json
|
|
- ./config.json:/app/config.json
|
|
# use touch to create an empty file stt_db, for persist database only
|
|
- ./stt_db:/app/db
|
|
# import_keys path
|
|
- ./element-keys.txt:/app/element-keys.txt
|
|
# store whisper models that program will download
|
|
- ./models:/app/models
|
|
networks:
|
|
- matrix_network
|
|
|
|
networks:
|
|
matrix_network:
|
|
```
|
|
Get your E2E room keys here:
|
|
![e2e-room-keys](https://i.imgur.com/WTKlXob.jpg)
|
|
Notice: If you deploy [matrix_chatgpt_bot](https://github.com/hibobmaster/matrix_chatgpt_bot) along with this project, remember do not use the same database name.
|
|
|
|
3. Launch for the first time
|
|
```sh
|
|
docker compose up
|
|
```
|
|
You will get notice: `INFO - start import_keys process`
|
|
|
|
After `INFO - import_keys success, please remove import_keys configuration!!!`
|
|
|
|
Wait a second, to see if `stt_db` has finished syncing_progress (The space occupied is about 100kb and above?)
|
|
|
|
Then `Ctrl+C` stop the container
|
|
|
|
4. Edit `config.json` again
|
|
|
|
Remove `import_keys_path` and `import_keys_password` options
|
|
|
|
Set a correct `room_id` or remove it if you hope the bot to work in the rooms it is in.
|
|
|
|
Tips: if bot exits because `RuntimeError: Unable to open file 'model.bin' in model`, try `rm -r models` then relaunch the container.
|
|
|
|
5. Finally
|
|
|
|
Launch the container
|
|
```sh
|
|
docker compose up -d
|
|
```
|
|
|
|
## Demo
|
|
![demo1](https://i.imgur.com/vntImys.png)
|
|
![demo2](https://i.imgur.com/VkOOVZA.png)
|
|
|
|
## Thanks
|
|
1. https://github.com/guillaumekln/faster-whisper
|
|
2. https://github.com/poljar/matrix-nio
|
|
3. https://github.com/8go/matrix-commander |