1.6 KiB
1.6 KiB
Transui design
- Linux is a GTK3 desktop recorder. It supports hosted transcription with an optional local fallback and can type at the cursor or copy to the clipboard.
- Android is remote-only. It provides an Android
RecognitionService, a voice-only input method, and a floating recognition activity. Do not add a local llama.cpp path to Android. - Both clients call OpenAI-compatible
/v1/audio/transcriptionsendpoints and clean only the Qwen3-ASRlanguage …<astext>orlanguage …<asr_text>prefix. - The Android voice UI is an opaque, compact system surface. Teal is the recording signal.
PushToTalkButtondraws the Apps and Stop Circle glyphs with Canvas because the target device dropsImageButtonimage layers. Keep the glyphs drawn above the button background.
llama.cpp local endpoint
The Linux local fallback begins with this multipart request. response_format=json
is required; prompt is optional and may request transcription or translation.
curl -s -X POST -F response_format=json http://localhost:8080/v1/audio/transcriptions \
-F file="@test.mp3" \
-F 'prompt=Transcribe the following speech segment in English, and translate them into chinese.'
llama.cpp may return an event envelope instead of a bare OpenAI response:
{"type":"transcript.text.done","text":"这是个测试。你能听到什么?我希望这很好。","usage":{"type":"tokens","input_tokens":241,"output_tokens":516,"total_tokens":757,"input_tokens_details":{"cached_tokens":0}}}
Use text as the transcript. Accept transcript.text.done; do not require a
bare { "text": "…" } response.