Live transskription af telefonopkald for døve med mulighed for at svare via tekst-til-tale.
Dansk alternativ til Nagish - fordi Nagish ikke understøtter danske telefonnumre.
Du søger job og venter på svar. Rekruttereren ringer fra et ukendt nummer. Med EchoText kan du:
- Se hvem der ringer og hvad de siger
- Svare professionelt via tekst-til-tale
- Aldrig misse en vigtig jobmulighed igen
- Dette er single-user PoC (multi-user kommer i v3.0)
- Ingen persistent lagring endnu (kommer i v2.1)
- Fokus på at validere transskriptions- og TTS-kvalitet
- Mållatency: Under 2 sekunder
Hospitalet ringer med prøvesvar eller aftaler. I stedet for at bede om SMS:
- Modtag opkaldet direkte
- Læs beskeden i realtid
- Still opfølgende spørgsmål via tekst
Banken ringer om dit lån. SKAT har spørgsmål. Mange institutioner kræver telefonverifikation:
- Håndter officielle opkald selvstændigt
- Ingen behov for tolk eller hjælper
- Bevar privatliv i følsomme samtaler
Elektrikeren ringer for at aftale tid. Pakkebuddet kan ikke finde adressen:
- Koordiner praktiske ting direkte
- Hurtige svar uden forsinkelse
- Undgå misforståelser via SMS-ping-pong
Ikke alle er gode til at skrive beskeder. Bedsteforældre foretrækker måske at ringe:
- Hold kontakten med dem der ringer
- Mere naturlig samtaleflow end SMS
- De behøver ikke ændre vaner
Opkalder ringer → Twilio streamer audio → Deepgram transskriberer →
Du ser teksten i browser → Du skriver svar → Google TTS læser op for opkalderen
- Indgående opkald til Twilio-nummer
- Live transskription (dansk) via Deepgram Nova-2
- Tekstsvar via Google TTS (Wavenet, naturlig stemme)
- Simpel webside i browser
- Udgående opkald
- Push notifikationer / PWA
- Multi-user / brugeroprettelse
- Persistent samtalehistorik
- Dialekthåndtering
┌─────────────────────────────────────────────────────────────┐
│ │
│ Opkalder ringer til Twilio nummer (+45 XX XX XX XX) │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ TWILIO │ │
│ └────┬────┘ │
│ │ WebSocket (mulaw 8kHz) │
│ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ CLOUDFLARE DURABLE OBJECT │ │
│ │ │ │
│ │ • Modtager audio fra Twilio │◄── WS ──┐│
│ │ • Streamer til Deepgram │ ││
│ │ • Sender transskription til browser │ ││
│ │ • Modtager tekstsvar fra browser │ ││
│ │ • Kalder Google TTS │ ││
│ │ • Sender TTS audio til Twilio │ ││
│ └─────────────────────────────────────────────┘ ││
│ │ │ ││
│ ▼ ▼ ││
│ ┌──────────┐ ┌──────────┐ ││
│ │ DEEPGRAM │ │ GOOGLE │ ││
│ │ Nova-2 │ │ TTS │ ││
│ │ (da) │ │ Wavenet │ ││
│ └──────────┘ └──────────┘ ││
│ ││
│ ┌─────────────────────────────────────────────┐ ││
│ │ BROWSER (din telefon) │─────────┘│
│ │ │ │
│ │ • Viser live transskription │ │
│ │ • Tekstfelt til svar │ │
│ │ • Send-knap │ │
│ └─────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
| Komponent | Teknologi | Formål |
|---|---|---|
| Telefoni | Twilio | Modtager opkald, streamer audio |
| Speech-to-Text | Deepgram Nova-2 | Dansk transskription i realtid |
| Text-to-Speech | Google Cloud TTS | Naturlig dansk stemme (Wavenet) |
| Backend | Cloudflare Workers + Durable Objects | WebSocket håndtering |
| Frontend | Simpel HTML/JS | Viser transskription, input til svar |
echotext/
├── worker/ # Cloudflare Worker
│ ├── src/
│ │ └── index.ts # Worker + Durable Object
│ ├── wrangler.toml # Cloudflare config
│ └── package.json
│
├── web/ # Frontend
│ └── index.html # Simpel webside
│
└── README.md
| Endpoint | Metode | Formål |
|---|---|---|
/incoming-call |
POST | Twilio webhook ved indgående opkald |
/media-stream/:sessionId |
WebSocket | Twilio audio stream |
/client/:sessionId |
WebSocket | Browser forbindelse |
Vælg den guide der passer til dig:
Bare kom i gang så hurtigt som muligt.
➡️ QUICKSTART.md - Minimal opsætning uden forklaring
Komplet trin-for-trin guide med screenshots og troubleshooting.
➡️ SETUP.md - Fuld vejledning til første gang
# 1. Installer dependencies
cd worker
npm install
# 2. Konfigurer API keys (kræver konti)
wrangler secret put DEEPGRAM_API_KEY
wrangler secret put GOOGLE_TTS_API_KEY
# 3. Deploy
wrangler deploy
# 4. Konfigurer Twilio webhook med din worker URL| Service | Formål | Pris | Link |
|---|---|---|---|
| Cloudflare | Hosting | ✅ Gratis | Opret konto |
| Deepgram | Speech-to-text | 💰 $200 gratis | Opret konto |
| Google Cloud | Text-to-speech | 💰 $300 gratis første år | Opret konto |
| Twilio | Telefoni | 💳 ~$16/md | Opret konto |
⚠️ Vigtigt: Twilio kræver konto-opgradering for danske numre - se SETUP.md
Baseret på ~10 opkald á 5 minutter per måned:
| Service | Pris |
|---|---|
| Twilio nummer | ~$15/md |
| Twilio tale | ~$1/md |
| Deepgram | ~$0.20/md (gratis credits) |
| Google TTS | ~$0.05/md |
| Cloudflare | Gratis |
| Total | ~$16/md (~110 kr) |
- Transskription: Kan du forstå hvad opkalder siger?
- TTS: Kan opkalder forstå dine svar?
- Latency: Er forsinkelsen acceptabel for samtale?
Mål: Validere at teknologien virker til danske telefonopkald.
- Deepgram dansk transskription test
- Cloudflare Worker med Durable Object
- Twilio Media Streams integration
- Live STT (bekræftet funktionel!)
- Google TTS integration
- Simpel webside til transskription
Succeskriterium: Gennemfør én samtale hvor begge parter forstår hinanden.
Mål: Vide når nogen ringer, selvom telefonen er i lommen.
- PWA med Service Worker
- Web Push notifikationer (VAPID)
- Vibration ved indgående opkald
- "Ring til mig" SMS når opkald starter
Succeskriterium: Aldrig misse et opkald fordi du ikke så browseren.
Mål: Kunne ringe til andre, ikke kun modtage.
- UI til at indtaste telefonnummer
- Twilio outbound call API
- Samme transskription/TTS flow
- Opkaldshistorik
Succeskriterium: Ring til en ven og hav en samtale.
Mål: Folk ringer til dit rigtige nummer, ikke et Twilio-nummer.
- Viderestilling fra dit nummer til Twilio
- Caller ID preservation
- Fallback hvis EchoText er offline
- Eventuelt nummer-portering til Telnyx (billigere)
Succeskriterium: Rekrutterer ringer dit CV-nummer og du modtager via EchoText.
Mål: Gennemlæs tidligere samtaler.
- Database (Cloudflare D1 eller KV)
- Gem transskription + dine svar
- Søgefunktion
- Eksport til tekst/PDF
Succeskriterium: Find hvad lægen sagde for 2 uger siden.
Mål: Andre døve kan bruge EchoText.
- Brugeroprettelse og login
- Hvert bruger får eget Twilio-nummer (eller medbring eget)
- Subscription/betaling
- Admin dashboard
Succeskriterium: 10 brugere der aktivt bruger systemet.
- Hurtigsvar: Foruddefinerede svar ("Jeg ringer tilbage", "Send SMS i stedet")
- AI-assistent: Automatisk svar på simple spørgsmål
- Flere sprog: Engelsk, svensk, norsk
- Dialekter: Jysk, sønderjysk, københavnsk
- Videoopkald: Integration med FaceTime/WhatsApp transskription
- Telefonsvarer: Transskriberet voicemail
MIT