feat(learn): voice mode, a conversation spoken as Claude's "Let's talk" (ADR 0021, D68)
Beside the field's microphone, a button opens voice mode over the whole screen: a glow rising from below, a big microphone, and +, who answers, the speaker and End in one row. It listens with the device's recogniser, asks what was heard in one kept conversation, reads the answer aloud with the device's speech (flutter_tts, its Markdown left out) and listens again. On Linux there is none, as there is no microphone; where nothing reads aloud, answers are shown as text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
7be31dcbfc
commit
c984678c5b
1 changed files with 1180 additions and 6 deletions
|
|
@ -462,6 +462,31 @@ assistants' effort work:
|
|||
asking for the microphone only once it is tapped; on Linux there is none, and the
|
||||
field shows no microphone. On Android the recogniser may send the sound to Google or
|
||||
the phone's maker, which the instance's privacy page says; the instance never gets it.
|
||||
- **D68 Voice mode is a conversation spoken, as Claude's "Let's talk"** (the developer's
|
||||
review of 3 Nov 2026, full conversation chosen over dictation alone): beside the
|
||||
microphone, while nothing could be sent, a button opens it over the whole screen (no
|
||||
bar beneath), with a glow rising from the foot of it, brighter while it listens or
|
||||
reads, a big microphone and one row: + attaching to the next question, who answers (any
|
||||
other assistant picked starts a conversation with it, once agreed to as any question,
|
||||
D40, D9), the speaker and End. It listens (D67's recogniser), asks what was heard in
|
||||
one conversation kept as any other (D48), reads the answer aloud and listens again;
|
||||
the microphone tapped while it reads or waits listens at once, and nothing heard waits
|
||||
for it. The field's scope, the parts chosen and the files attached go with the first
|
||||
question. Only the question's text goes to the assistant, as typed ones do.
|
||||
- **Reading aloud is the device's own speech** (recommended): `flutter_tts` (4.2,
|
||||
maintained, Android's TextToSpeech, Apple's AVSpeechSynthesizer, Windows' SAPI), in
|
||||
the app's language where the device has it, the answer read without its Markdown
|
||||
(`speakableText`: no marks, a table's rows as their cells, a link as its words). Over
|
||||
a MethodChannel of our own to Android's TextToSpeech, which would spare the Kotlin
|
||||
Gradle plugin `flutter_tts` applies (as `flutter_web_auth_2` and
|
||||
`keyboard_height_plugin` do) but leave iOS, macOS and Windows to be written too; and
|
||||
over the provider's speech (OpenAI's, as the instance would forward it), which would
|
||||
send the answers out again and cost the operator's budget. Android 11 on needs the
|
||||
`TTS_SERVICE` query in the manifest to find the engine.
|
||||
- **Where the device can't**: on Linux nothing recognises speech, so there is no voice
|
||||
mode (as no microphone, D67); where nothing reads aloud (`flutter_tts` has no Linux,
|
||||
and a phone may lack the language), answers are shown in it as text, and it listens
|
||||
again at once, as with the speaker off. The speaker starts on.
|
||||
|
||||
As built on 26 Oct, for v0.22.0 (build 25, which the server needs: `minimumAppBuild` 25,
|
||||
as older apps read limits per grant), D57–D63 read so where they left something open:
|
||||
|
|
|
|||
Loading…
Reference in a new issue