Open Voice Input Linux v0.1.0-alpha.3
Pre-release
Pre-release
·
10 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Open Voice Input Linux alpha.3 makes microphone selection user-configurable
and dynamic while retaining bounded adaptive corrections and default-off local
dataset collection.
Highlights
- The native settings window now lets the user order four microphone
categories: DJI, headset, other external, and built-in. The recommended
default isDJI > headset > other external > built-in, but the complete
order can be changed and saved privately. - Every new dictation reloads the saved policy and re-enumerates available
inputs. Unavailable or unresolved categories fall through in saved order.
Within one category, an exact saved source is preferred, followed by the
current system default in that category and then a unique candidate.
Ambiguous categories are skipped instead of guessed. - DJI routing now respects the saved position. A proven-online transmitter
makes its receiver eligible, a proven-offline receiver is excluded, and an
unknown link state is not promoted ahead of known-working alternatives. An
already-default unique DJI source may remain only as a last-resort continuity
path when no verified non-DJI or recoverable input exists. - Conservative recovery of a hidden built-in input participates at the
built-in category's saved rank. Failed recovery is rolled back safely before
considering a lower-priority source. USB/external cards are never recovered
merely because inconsistent metadata labels them internal. - Routing remains application-scoped. The daemon binds only its newly opened
capture stream and does not request a playback-sink, desktop-wide
default-source, mute, volume, or mid-utterance route change. - A missing microphone policy uses the documented recommended default without
writing a file. An existing malformed, unsafe, or unsupported policy rejects
the next dictation withmicrophone-policy-invalidbefore preedit
acquisition, provider construction, USB probing, profile mutation, or
microphone capture. - GTK settings, private configuration, installer, upgrade, uninstall, service
units, documentation, bundle verification, and SBOM coverage were updated
for the new policy.
Optional local dataset collection
- Collection remains off by default. The user must explicitly select an
existing absolute local or mounted folder and enable it. - An accepted authoritative final can publish the exact 16 kHz mono signed
16-bit WAV together with a versioned JSON record. provider_finalremainsteacher-unreviewed: it is a pseudo-label, not
ground truth.spoken_verbatimandpreferred_outputremain null and
unreviewed until a separate human-review workflow exists.- This release does not transfer records to Orange, upload an additional cloud
dataset, encrypt the dataset at the application layer, provide review/delete
UI, or train, fine-tune, or distil a model. - Storage is best-effort direct to the selected folder and has no fallback
spool. It never silently switches to another local or cloud destination. - Normal service shutdown gives the background writer a bounded 10-second
drain within systemd's 30-second stop budget. A stalled or unavailable mount
can lose an unpublished staged record; already published records remain. - Collection failures are reported independently and do not stop normal
dictation. Uninstall retains the private collection setting and datasets in
user-selected folders.
Important alpha limitations
- The source is fixed after a recording stream opens. Disconnecting or changing
microphone state does not hand an active utterance to another device; the
next dictation re-evaluates the saved order. - Bluetooth A2DP playback alone does not expose a microphone. This release can
use an already-active HSP/HFP input but does not switch the headset's global
Bluetooth profile or reduce playback quality automatically. - Classification relies on PulseAudio/PipeWire metadata. An unlabelled device
may be classified as other external, and an ambiguous category may be
skipped. Exact same-category source preferences exist in the private schema
but are not yet exposed in the settings UI. - Fake-device tests cover the policy and recovery branches, but the complete
physical matrix remains an explicit alpha validation gap: built-in only;
headset plus built-in; DJI plus headset plus built-in; unavailable
higher-priority inputs; disconnect/reconnect; hidden-profile recovery; and
representative real-provider/application testing. A real mounted collection
destination is also outside the completed release matrix. - Automated and offline-artifact verification used no microphone, provider key,
user recording, dictated text, or selected dataset path. - Adaptive correction still requires trustworthy IBus surrounding-text
support. Unsupported, private, unfocused, ambiguous, insertion-only, and
deletion-only cases learn nothing; this alpha has no settings switch for the
adaptive observation window. - This preview targets Ubuntu 24.04 x86_64 with CPython 3.12. It is not a
distribution-native or broadly qualified Wayland release. - The companion Doubao Murmur right-Alt controller remains a separate
controller-only project and release. - Uninstall retains private key, vocabulary, manual-correction,
adaptive-memory, microphone-policy, collection-setting, and external dataset
files.
Audio is uploaded to Volcengine only during explicit dictation and is billed
under the user's account. Local collection is independently opt-in and does
not add another network upload.
Integrity and provenance
- Source commit:
d656f7986a2c0f0149955688b238640338afeef0 - Signed annotated tag:
v0.1.0-alpha.3— GitHub verification:valid - CI run: https://github.com/SidUParis/openVoiceInput_linux/actions/runs/33308965643
- CI artifact ID:
9731381351 - CI artifact ZIP SHA256:
dec5d37c3f539183fcc53c050530e62ccb1a9ffb194605f7e55953770ab71407 - Archive SHA256:
0ba904b72a5edb3dc749b33d98dff932c4c216476e70314f6caeaedcebc0f060 - Checksum-file SHA256:
418e4bf582610abf91a561f5d5769a31513ba05c71e5fe80856e26323ef5a591 - CycloneDX SBOM serial:
urn:uuid:f79211cb-8895-5de1-ad1b-82db002abda7 - Repository immutable-release policy: enabled; publication is gated on
post-publishimmutable=trueverification.
See CHANGELOG.md, README.md, docs/README.zh-CN.md,
docs/personal-asr-data-plan.md, and docs/release-process.md for
installation, routing, privacy, dataset semantics, and troubleshooting.