A web service where users authenticate with passkeys, and upload different files/text to have it read out loud. https://passkey.tmathiassen.dk/
  • Go 47.2%
  • TypeScript 34.9%
  • Python 7.9%
  • CSS 7.2%
  • Shell 1.4%
  • Other 1.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Theis Randeris Mathiassen bc4b8229af feat: Adds an OCR subpage (#100)
Adds an OCR subpage: renders the PDF client-side with pdf.js, lets the user brush/erase/marquee word boxes per page, autosaves the selection to a new ocr_selection JSONB column, and "Apply to text" assembles selected words into content. OCR job controls move from the Text page to this page. Solid structure overall: selection state normalized (default + per-page overrides), word geometry isolated in tested pure functions, pdf.js lazy-loaded and wasm assets handled via predev/prebuild.

Reviewed-on: #100
2026-08-30 16:47:09 +00:00
.forgejo/workflows feat: add ocr and translation (#75) 2026-08-22 08:47:15 +00:00
backend feat: Adds an OCR subpage (#100) 2026-08-30 16:47:09 +00:00
compose feat: added speech status, and text splitting of long segments (#91) 2026-08-23 18:45:08 +00:00
frontend feat: Adds an OCR subpage (#100) 2026-08-30 16:47:09 +00:00
ocr feat: add heartbeat to tts and translation (#94) 2026-08-24 19:04:47 +00:00
translator feat: improved dockerfiles (#97) 2026-08-24 20:03:43 +00:00
tts feat: added voice consistency, and an instruct field (#98) 2026-08-24 20:53:31 +00:00
.env.example chore: revert accidentally added rocm default (#95) 2026-08-24 19:51:55 +00:00
.gitignore feat: add ocr and translation (#75) 2026-08-22 08:47:15 +00:00
Caddyfile feat: add qwen text to speech and add tts jobs (#47) 2026-08-13 20:24:02 +00:00
Database overview.ods feat: began creating migration scripts, and webauthn 2025-08-29 00:28:13 +02:00
docker-compose.override.yaml chore: revert accidentally added rocm default (#95) 2026-08-24 19:51:55 +00:00
docker-compose.yaml feat: added speech status, and text splitting of long segments (#91) 2026-08-23 18:45:08 +00:00
jwt.secret.example chore: moved environment variables of code base and into compose file. 2025-09-23 23:36:35 +02:00
package-lock.json feat: added support for roles based authorization and generating registration secrets, so only invited people can register 2025-09-06 23:59:56 +02:00
postgres.secret.example chore: moved environment variables of code base and into compose file. 2025-09-23 23:36:35 +02:00
README.md feat: improved dockerfiles (#97) 2026-08-24 20:03:43 +00:00
Webspeaker diagram.excalidraw feat: added design diagram, and setup development environment 2025-08-20 18:55:55 +02:00

Webspeaker

An app for uploading pdf files and having them read out loud.

In Development

Currently only the main features of authentication is working.

Setup

  1. Clone the repository.
  2. Install a torch version appropriate for your system.
  3. Create the secret files from the example files (Ensure no special characters), can be populated by openssl rand -hex 32
  4. Create the .env file based on the example. (You do not need to own the domain)
  5. On linux edit the /etc/hosts to tell your computer to point the domain specified in .env to this computer by adding the following line.
    • IP domain_from_env
  6. run: docker compose up --build