The short version
Getting started
Open the app. To look around first, tap Try the demo. It types sample sentences and needs no server or microphone. Tap Connect my own server to leave it.
Enter your server's address, for example
https://stt.example.com:8798. An address with no scheme is read as HTTPS. Plainhttp://works only for addresses on your local network.Enter your access token and tap Connect. The app checks
/health, then sends a quarter second of silence with your token. It saves the server only when both answer.Tap the big microphone, speak, tap again. The text appears in the box.
Your server
The app does not include a server. Any server that answers these two requests works:
GET /healthreturns any 2xx status, with no authorization.POST /dictatehas the audio (a 16 kHz mono WAV) as the raw request body, the headerAuthorization: Bearer <token>, and returns the transcript as plain text. Return 401 or 403 for a wrong token.
To test your server from a computer: curl https://your-server/health, then curl -X POST -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: audio/wav" --data-binary @sample.wav https://your-server/dictate. A server on a private network needs your phone to reach that network, for example through your VPN.
Keyboard setup
Open Settings, General, Keyboard, Keyboards, then Add New Keyboard and pick Homelab Dictate.
Tap Homelab Dictate in that list and turn on Allow Full Access. The privacy policy says why.
In any app, hold the globe key and pick Homelab Dictate. The first tap on the mic opens the app to start the microphone; swipe back with the top-left arrow. While the session is ready, later taps work in place.
Problems
- "Could not reach the server". Check that the server is running and that your phone is on the right network or VPN. If iOS asked for local network access and you said no, turn it on in Settings, Privacy & Security, Local Network.
- "The server rejected that token (401)". Check the token for stray characters. Your server's operator issues it.
- "iOS blocks plain http to that address". Use an https address, or an address on your local network.
- "The server answered 404, which is not a Homelab Dictate speech server". The address answered, but
/dictatedid not. Check the path and the port. - Keyboard says to turn on Full Access. Follow the keyboard setup steps above.
- No text appears. A recording shorter than a tenth of a second is discarded, and silence returns no text.
- Change or remove the server. Use Change server or token or Disconnect under Server in the app.
Contact
Email us with your iOS version, the app version and what you see. We reply by email.
tanner@meshvault.ai, Orange County, California