Skip to content
OSSFlow

Guide

OpenAI-compatible speech-to-text on Android

OSSFlow can send dictation audio to any OpenAI-compatible transcription API over HTTPS. In the app that mode is labelled OpenAI. It posts the recording to the base URL you enter, plus /audio/transcriptions. A blank model uses whisper-1.

What OpenAI-compatible means here

It means the host speaks the same transcription request that OpenAI's audio API speaks. OSSFlow does not require that the host is OpenAI. Grok is a separate built-in mode and is the default. Groq and other hosts fit the OpenAI-compatible mode when they publish that endpoint.

The app is free, bring your own key. There is no OSSFlow account and no proxy server. The key is stored on the phone and the phone talks to the host you named.

Point OSSFlow at the host

  1. Create an API key with the provider.
  2. In OSSFlow, open Settings, then Transcription.
  3. Choose OpenAI. That label is the OpenAI-compatible mode, not a requirement to use OpenAI itself.
  4. Set Base URL to the provider's HTTPS API root, with no path pasted on the end. OSSFlow adds /audio/transcriptions.
  5. Paste the key. Set Model, or leave it blank to use whisper-1.
  6. Tap Save. Optional cleanup is a separate OpenAI-compatible chat call to /chat/completions, and it can use another base URL and key.

Two hosts people actually set

For OpenAI's own API, the base URL is https://api.openai.com/v1 and a blank model selects whisper-1. For Groq, the transcription base URL is https://api.groq.com/openai/v1 and the model is whisper-large-v3-turbo or whisper-large-v3. The Groq key guide has both, without prices.

HTTPS only. A base URL that is not https is rejected. OSSFlow does not call a provider's translation endpoint. If you need English text from another language, OSSFlow will not translate it for you.

Questions

Does the OpenAI label mean I must use OpenAI?
No. In OSSFlow, OpenAI is the name of the OpenAI-compatible transcription mode. The base URL decides the host.
What if I leave the model blank?
OSSFlow uses whisper-1. Set a model id when the host expects a different one, such as a Groq Whisper model.
Does cleanup use the same request?
No. Transcription is /audio/transcriptions. Cleanup, if you leave it on, is /chat/completions. You can share the key and base URL or set another pair.
Is there an on-device Whisper mode in OSSFlow?
No. Open-source on-device Whisper on Android is a keyboard such as WhisperType, covered in the open-source roundup. OSSFlow always uses the network.