From 85659c71e7195da91f05f9802fdcf646c5bb5716 Mon Sep 17 00:00:00 2001 From: ciregenz Date: Wed, 5 Aug 2026 21:14:22 -0700 Subject: [PATCH] [eric] voice: text-landed paste cue on successful injection, lock cue when a tap latches hands-free --- .../shared/voice/VoiceDictationContext.tsx | 18 ++++++++++++- .../src/shared/voice/useVoiceDictation.ts | 7 ++++-- frontend/src/shared/voice/voiceCueSounds.ts | 5 +++- frontend/src/shared/voice/voiceCues.ts | 25 +++++++++++++------ 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/frontend/src/shared/voice/VoiceDictationContext.tsx b/frontend/src/shared/voice/VoiceDictationContext.tsx index 34a39db8..31b6c585 100644 --- a/frontend/src/shared/voice/VoiceDictationContext.tsx +++ b/frontend/src/shared/voice/VoiceDictationContext.tsx @@ -1,6 +1,7 @@ import React, { useCallback, useEffect, useRef } from 'react'; import { useAppSelector } from '@/shared/hooks'; import { useVoiceDictation } from './useVoiceDictation'; +import { playVoiceCue } from './voiceCues'; import { VoiceContext } from './voiceContext'; import VoiceOverlay from './VoiceOverlay'; @@ -29,13 +30,17 @@ export function VoiceDictationProvider({ children }: { children: React.ReactNode stateRef.current = state; const heldRef = useRef(false); + // A quick tap releases before start() flips state to 'recording': the session latches hands-free + // (Wispr's lock). The lock cue lands once recording is actually live, confirming the latch. + const latchedRef = useRef(false); + const pressStart = useCallback((): void => { if (holdMode) { // A TAP while recording must stop: the quick tap's press-end fires before the async start // flips state to 'recording', so without this the mic could be started by a click but never // stopped by one. if (stateRef.current === 'recording') { heldRef.current = false; void stop(); return; } - if (stateRef.current === 'idle') { heldRef.current = true; void start(true); } + if (stateRef.current === 'idle') { heldRef.current = true; latchedRef.current = false; void start(true); } } else { toggle(); } @@ -45,9 +50,20 @@ export function VoiceDictationProvider({ children }: { children: React.ReactNode if (holdMode && heldRef.current) { heldRef.current = false; if (stateRef.current === 'recording') void stop(); + else latchedRef.current = true; } }, [holdMode, stop]); + useEffect(() => { + if (state === 'recording' && latchedRef.current) { + latchedRef.current = false; + const t = setTimeout(() => playVoiceCue('lock'), 160); + return () => clearTimeout(t); + } + if (state === 'idle') latchedRef.current = false; + return undefined; + }, [state]); + // Keyboard hotkey channels, matched to what the source can actually see: // voice:hold-down/up come ONLY from main's native uiohook tap (real global key-up, so the keyboard // gets the same hold-vs-toggle press semantics as the mic buttons); voice:toggle comes from the diff --git a/frontend/src/shared/voice/useVoiceDictation.ts b/frontend/src/shared/voice/useVoiceDictation.ts index d2a67934..3f8fdbe7 100644 --- a/frontend/src/shared/voice/useVoiceDictation.ts +++ b/frontend/src/shared/voice/useVoiceDictation.ts @@ -223,9 +223,12 @@ export function useVoiceDictation() { // Success is silent: the text landing at the cursor IS the feedback. Only the clipboard // fallback still speaks, because the user has to act (paste) to get the text. const target = injectAtFocus(text); - if (!target) { + if (target) { + playVoiceCue('paste'); + } else { const inj = await window.openswarm?.voiceInject?.(text); - if (!inj?.pasted) setFeedback({ tone: 'ok', icon: 'clipboard', text: `${text} (copied, press Cmd+V)`, at: Date.now() }); + if (inj?.pasted) playVoiceCue('paste'); + else setFeedback({ tone: 'ok', icon: 'clipboard', text: `${text} (copied, press Cmd+V)`, at: Date.now() }); } setState('idle'); } else if (res?.ok && !res.text) { diff --git a/frontend/src/shared/voice/voiceCueSounds.ts b/frontend/src/shared/voice/voiceCueSounds.ts index 6228ed36..49b42df3 100644 --- a/frontend/src/shared/voice/voiceCueSounds.ts +++ b/frontend/src/shared/voice/voiceCueSounds.ts @@ -1,5 +1,8 @@ // Google Material product sounds (CC BY 4.0, https://m2.material.io/design/sound/sound-resources.html): -// navigation_forward-selection-minimal (start) and navigation_backward-selection-minimal (stop). +// navigation_forward-selection-minimal (start), navigation_backward-selection-minimal (stop), +// navigation_selection-complete-celebration (text landed), ui_lock (hands-free latch). // Embedded as data URIs so the packaged file:// + asar build needs no asset paths and no webpack rule. export const VOICE_CUE_START = 'data:audio/ogg;base64,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'; export const VOICE_CUE_STOP = 'data:audio/ogg;base64,T2dnUwACAAAAAAAAAAAgwdp9AAAAAByZ0eQBHgF2b3JiaXMAAAAAAoC7AAD/////AGsDAP////+4AU9nZ1MAAAAAAAAAAAAAIMHafQEAAAAIvIAyEDz//////////////////3EDdm9yYmlzLAAAAFhpcGguT3JnIGxpYlZvcmJpcyBJIDIwMTUwMTA1ICjim4Tim4Tim4Tim4QpAAAAAAEFdm9yYmlzK0JDVgEACAAAADFMIMWA0JBVAAAQAABgJCkOk2ZJKaWUoSh5mJRISSmllMUwiZiUicUYY4wxxhhjjDHGGGOMIDRkFQAABACAKAmOo+ZJas45ZxgnjnKgOWlOOKcgB4pR4DkJwvUmY26mtKZrbs4pJQgNWQUAAAIAQEghhRRSSCGFFGKIIYYYYoghhxxyyCGnnHIKKqigggoyyCCDTDLppJNOOumoo4466ii00EILLbTSSkwx1VZjrr0GXXxzzjnnnHPOOeecc84JQkNWAQAgAAAEQgYZZBBCCCGFFFKIKaaYcgoyyIDQkFUAACAAgAAAAABHkRRJsRTLsRzN0SRP8ixREzXRM0VTVE1VVVVVdV1XdmXXdnXXdn1ZmIVbuH1ZuIVb2IVd94VhGIZhGIZhGIZh+H3f933f930gNGQVACABAKAjOZbjKaIiGqLiOaIDhIasAgBkAAAEACAJkiIpkqNJpmZqrmmbtmirtm3LsizLsgyEhqwCAAABAAQAAAAAAKBpmqZpmqZpmqZpmqZpmqZpmqZpmmZZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZQGjIKgBAAgBAx3Ecx3EkRVIkx3IsBwgNWQUAyAAACABAUizFcjRHczTHczzHczxHdETJlEzN9EwPCA1ZBQAAAgAIAAAAAABAMRzFcRzJ0SRPUi3TcjVXcz3Xc03XdV1XVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYHQkFUAAAQAACGdZpZqgAgzkGEgNGQVAIAAAAAYoQhDDAgNWQUAAAQAAIih5CCa0JrzzTkOmuWgqRSb08GJVJsnuamYm3POOeecbM4Z45xzzinKmcWgmdCac85JDJqloJnQmnPOeRKbB62p0ppzzhnnnA7GGWGcc85p0poHqdlYm3POWdCa5qi5FJtzzomUmye1uVSbc84555xzzjnnnHPOqV6czsE54Zxzzonam2u5CV2cc875ZJzuzQnhnHPOOeecc84555xzzglCQ1YBAEAAAARh2BjGnYIgfY4GYhQhpiGTHnSPDpOgMcgppB6NjkZKqYNQUhknpXSC0JBVAAAgAACEEFJIIYUUUkghhRRSSCGGGGKIIaeccgoqqKSSiirKKLPMMssss8wyy6zDzjrrsMMQQwwxtNJKLDXVVmONteaec645SGultdZaK6WUUkoppSA0ZBUAAAIAQCBkkEEGGYUUUkghhphyyimnoIIKCA1ZBQAAAgAIAAAA8CTPER3RER3RER3RER3RER3P8RxREiVREiXRMi1TMz1VVFVXdm1Zl3Xbt4Vd2HXf133f141fF4ZlWZZlWZZlWZZlWZZlWZZlCUJDVgEAIAAAAEIIIYQUUkghhZRijDHHnINOQgmB0JBVAAAgAIAAAAAAR3EUx5EcyZEkS7IkTdIszfI0T/M00RNFUTRNUxVd0RV10xZlUzZd0zVl01Vl1XZl2bZlW7d9WbZ93/d93/d93/d93/d939d1IDRkFQAgAQCgIzmSIimSIjmO40iSBISGrAIAZAAABACgKI7iOI4jSZIkWZImeZZniZqpmZ7pqaIKhIasAgAAAQAEAAAAAACgaIqnmIqniIrniI4oiZZpiZqquaJsyq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rukBoyCoAQAIAQEdyJEdyJEVSJEVyJAcIDVkFAMgAAAgAwDEcQ1Ikx7IsTfM0T/M00RM90TM9VXRFFwgNWQUAAAIACAAAAAAAwJAMS7EczdEkUVIt1VI11VItVVQ9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV1TRN0zSB0JCVAAAZAABDreYchDGSUg5KDEZpyCgHKSflKYQUo9qDyJhiTGJOpmOKKQa1txIypgySXGPKlDKCYe85dM4piEkJl0oJqQZCQ1YEAFEAAAZJIkkkSfI0okj0JM0jijwRgCSKPI/nSZ7I83geAEkUeR7PkzyR5/E8AQAAAQ4AAAEWQqEhKwKAOAEAiyR5HknyPJLkeTRNFCGKkqaJIs8zTZ5mikxTVaGqkqaJIs8zTZonmkxTVaGqniiqJlV1XarpumTbtmHLniiaKlV1XabqumTZtiHbAAAAJE9TTZpmmjTNNImiakJVJc0zVZpmmjTNNImiqUJVPVN0XabpukzTdbmuLEOWPdF0XabpukxTdbmuLEOWAQAASJ6nqjTNNGmaaRJFU4VqSp5nqjTNNGmaaRJF1YSpiqbpukzTdZmm63JlWYbsiqbpukzTdZmm65JdWYYrAwAA0EzTlomi6xJF12WargvX1UxTtomiKxNF12WargvXFVXVlqmm7FJVWea6sgxZFlVVtpmqK1NVWea6sgxZBgAAAAAAAAAAgKiqts1UZZlqyjLXlWXIrqiqtk01ZZmpyjLXtWXIsgAAgAEHAIAAE8pAoSErAYAoAACH40iSpokix7EsTRNFjmNZmiaKJMmyPM80YVmeZ5rQNFE0TWia55kmAAACAAAKHAAAAmzQlFgcoNCQlQBASACAxXEkSdM8z/NE0TRVleNYlqZ5niiapqq6LsexLE3zPFE0TVV1XZJkWZ4niqJomqrrurAsTxNFUTRNVXVdaJrniaJpqqrryi40zfNE0TRV1XVdGZrmeaJomqrqurIMPE8UTVNVXVeWAQAAAAAAAAAAAAAAAAAAAAAEAAAcOAAABBhBJxlVFmGjCRcegEJDVgQAUQAAgDGIMcWYUUxKKSU0SkkpJZRISkitpJZJSa211jIpqbXWWiWltJZay6S01lpqmZTUWmutAACwAwcAsAMLodCQlQBAHgAAgpBSjDnnHDVGKcacg5AaoxRjzkFoEVKKMQghtNYqxRiEEFJKGWPMOQgppYwx5hyElFLGnHMOQkoppc455yCllFLnnHOOUkopY845JwAAqMABACDARpHNCUaCCg1ZCQCkAgAYHMeyNM3TRM80LUnSNM8TRdFUVU2SNM3zRNE0VZWmaZroiaJpqirP0zRPFEXTVFWqKoqmqZqq6rpcVxRNU1VV1XUBAAAAAAAAAAAAAQDgCQ4AQAU2rI5wUjQWWGjISgAgAwAAMQYhZAxCyBiEFEIIKaUQEgAAMOAAABBgQhkoNGQlAJAKAAAYoxRzEEppqUKIMeegpNRahhBjzklJqbWmMcYclJJSi01jjEEoJbUYm0qdg5BSazE2lToHIaXWYmzOmVJKazHG2JwzpZTWYoy1OWdrSq3FWGtzztaUWoux1uacUzLGWGuuSSmlZIyx1pwLAEBocAAAO7BhdYSTorHAQkNWAgB5AAAMQkoxxhhjTinGGGOMMaeUYowxxphTijHGGGPMOccYY4wx5pxjjDHGGHPOMcYYY4w55xhjjDHGnHPOMcYYY8455xhjjDHnnHOMMcaYAACgAgcAgAAbRTYnGAkqNGQlABAOAAAYw5hzjkEHoZQKIcYgdE5CKi1VCDkGoXNSUmopec45KSGUklJLyXPOSQmhlJRaS66FUEoopaTUWnIthFJKKaW11pJSIoSQSkotxZiUEiGEVFJKLcaklIylpNRaa7ElpWwsJaXWWowxKaWUay21WGOMSSmlXGuptVhjTUop5XuLLcaaazLGGJ9baqm2WgsAMHlwAIBKsHGGlaSzwtHgQkNWAgC5AQAIQkwx5pxzzjnnnHPOSaUYc845CCGEEEIIIZRKMeaccxBCCCGEEEIoGXPOOQghhBBCCCGEUErpnHMQQgghhBBCCKGU0jkHIYQQQgghhBBCKaVzEEIIIYQQQgghhFJKCCGEEEIIIYQQQggllVJCCCGEEEIoIZQQSiqphBBCCKGUEkoIIaSSSgkhhBBKCCWEEkJJpaQSQgihlFBKKaGUUkpJKZUQQimllFJKKaWUlEoppZRSSikllBJKSiWVVEIpoZRSSimllJRSKimVUkopoYRSQgmllFRSSamUUkoJpZRSSkmllFJKKaWUUkoppZRSUkmplFJCKCWEEkopJaVSSimlhFBKCaGUUkoqqZRSSgmllFJKKaUAAKADBwCAACMqLcROM648AkcUMkxAhYasBABSAQAAQiillFJKKTVKUUoppZRSahijlFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSAcDdFw6APhM2rI5wUjQWWGjISgAgFQAAMIYxxphyzjmllHPQOQYdlUgp56BzTkJKvXPQQQidhFR65yCUEkIpKfUYQygllJRa6jGGTkIppaTUa+8ghFRSaqn3HjLJqKTUUu+9tVBSaqm13nsrJaPOUmu9595TK6Wl1nrvOadUSmutFQBgEuEAgLhgw+oIJ0VjgYWGrAIAYgAACEMMQkgppZRSSinGGGOMMcYYY4wxxhhjjDHGGGOMMQEAgAkOAAABVrArs7Rqo7ipk7zog8AndMRmZMilVMzkRNAjNdRiJdihFdzgBWChISsBADIAAMRRzLXGXCuDGJSUaiwNQcxBibFlxiDloNUYKoSUg1ZbyBRCylFqKXRMKSYpphI6phSkGFtrJXSQWs25tlRKCwAAgCAAwECEzAQCBVBgIAMADhASpACAwgJDx3AREJBLyCgwKBwTzkmnDQBAECIzRCJiMUhMqAaKiukAYHGBIR8AMjQ20i4uoMsAF3Rx14EQghCEIBYHUEACDk644Yk3POEGJ+gUlToQAAAAAAAIAHgAAEg2gIhoZuY4Ojw+QEJERkhKTE5QUlQEAAAAAAAQAD4AAJIVICKamTmODo8PkBCREZISkxOUFJUAAEAAAQAAAAAQQAACAgIAAAAAAAEAAAACAk9nZ1MABMQ4AAAAAAAAIMHafQIAAACpOOBYFAH/of89/xL/Rubm1LuyhGpmXN7XAPo0rJv0Emywdp9PWrjXKgFyrfg0rJv0Emywdp9PWrjXKgFyrVhv2tjjOMqqqqqqMjMzMzMtTNu2bS/Zs8lOM2xWpiQAAAAAEIaPFwzho3wMIYTwYxqJGUBHCFPpTEwwWRAODx8fPy+Xy7Isy9VEEw1qaioKQQRmqVSqqqqqqqqqqqqqqqqrq6sqrYKIMcbhcOHChQsXLly4cOHC4XAYEUBVSqVSVVVVXV1VVamUkhFQq4gYYxwOh8PhcDgcxhgRAZRZKpWq6qpKBgBmVVVVEDHG4XA4HA6Hw2GMMcaICICqqqqqqqp1qqqrq0oGAABEFDIsYQlLWMJiQQeoWmuttU6n0+l0WmtVVRUQESEiIgJYSggVNRWHEQBVVVVVnZiYmIjQ6UKGJSxhsaATEQBVVWut0+m0VsW4cBjUqoKIMcYYYxwOh8MYo9MB3hX+8Ic//OF35HJRGF3IsITFQsiwhEUHwOVyucLvcrlcFFpHR0dHR0dHR0cwJiZcLlfk8IffhY7QOjo6OjpCR0fAxMTExMTERAQ6Ojp0Ol1YwqKDn4gAXpZcN/4i6NRfnzehTCoSQv2GZcl14y+CTv31eRPKpCIh1G/Y9m0nMT2j6bTRCZjERGZlMQgBAAAAAAA/wwWXj4eXh5eHl4+fnxIAIJRQsLw8DAuSCgmFqmY01aBRg0Y1zWrUoFFNXUVVRVUhCSykw+lw6cKlC5cuXLpw6cKlw2msKCAqLqzT4XThdDgdTofTWGNFRUFFjTXWWIfT4TQ2iiicBEavZxLqAkxMTEwMwOmMFIVDJzExwArNakZVMDFZY4011ljjNNaoYPT7/b7T6QSASBqgUSEFExMTExMFAKcziiiiiMLpdAKt2+12u91uFA6dTgCgtW632+2C0e/3+/1+H0RFHaouFFFR6UYY/X6/3+/3Q0CM3W632+02cDodOp1Op3Og2+12u91uFwj9fgAAAMCKUwADAIVDAp43/EvumLse17Oym2J24Op/mDf8S+6Yux7Xs7KbYnbg6n+4MbE5cQC9yQix2DWAicxMCgRCAAAAAAAAUC4X/JSPF4TlY7ng4eclDIewLHh4CK+m6kKDBqhrlAoNClZVZYcLo06LcWCdKsZASiZBkKyqgQQzNcSlJ+HXOwzWacXhEHXpUo0LB9apIqhFjKi1GBG1TpfGYK0aBlcoQ2RHxgLWqjGi6kSMqGUM6XRkGCJTY0SdVhwuxDoVkREbQrPGpQEFEVClwwR0eEchSWR9WLyjUOIyOk9BAAMgYhXNKAkYDNDEFgg0AOB0CAKAMMCERuwwhCGILUx0O4YWJoQRO0x0tNg1YgsRsQEAEAUA+CgIAD7J/GBP0umvj83wZ0ihpjjJ/GBP0umvj83wZ0ihpngBGalSr9bIfnIRQygrJoBOMD2SlajJyqyUAQAAAAAACxaCJYhYSsoDLoeP4eEj/HyUl58XLAMuPwsWBJSAUhCWgEv4WZbDJYRKzWhKapoqFBpVSF2NlSpMKupQqJJQCpIC7DAMYxQ6i5EYJIFZoQlUSUgQk/dGH8Gg14tLMRZRRAU1qsZinGKcItZgTb/FfuuOoKdOncUIhjBOo4+ks+iJOhRRRAUVVBRRRDFiXWKUfov90B39FvutO0KjTqL3Oouufot9Xf0W+6E7QgNRUEBUcJooDPVEDyKO0Ea/KaKICiqo4BQXKIIKKqpCi0PTb91+6I7QROgYPTHU2eIIURBH6MZ+N/ZFxBHiCF39hhb7LTqJPpKOArpCi/0WhwggMA4tUAIMEQA+NnzgBdPaa/3579ne+uuBSkxQG44NH3jBtPZaf/57trf+eqASE9SGT5AQNVUWpmdRTQIiQNEgACkKWZMlAFnDQFbqlQSSxZSJLBABBCIgSQAAAAAAABhoFCaBqXQGk0n5ObwM4VIuy3D5KOFyCWUoAAAA4bAAMTOYwSAADAJJCCYAAAAAREySBAAYwKkOFUEA0QEwYShAFABQsA6XBgUVUQAAdSAiBlEEgQhHBAAAAAB1qAsraIQ4BACAAgjG4QIhNBEgAgDAOwoAtABAX10AAAAAIGAALFAAAIgAiGAAALEPGIBuBJ41vIsteZu79Wzv+NYL7mIhaopZw7vYkre5W8/2jm+94C4Woqb4GwBZFtAAETUZUE0CwihcF3oIWcAIQYnMTDIhAAAAAAAAWAY3HwiERLn5BCgLFpBCAsQgFiw/w1BQUFAQcAkAgICP5SMAAMSpOI0TFBBACBCGAEwMaGBVgIkIAKAOK6AqGraOuBg8g05ErQMMVhSAGSQVqpowAAagEQi0ELod0UA0IggAGAAAQIBQZwAIABABAABcOFyiACjgGYiAgOgYAMrQ6BunQwEAACA2Ew3QmsiAAAOgAaOPECMEgKYBQBgA3jQ8wYV0z2M9T9/2dV5Hc02xaXiCC+mex3qevu3rvI7mmuITANVqoka0HGQRygoBXDO4JiEIQQgwmCQAAAAAAAAgRFIwiUkABoVGUsJwGcKAj8vHUpaPAgB4WBAAAKAY4zBONSLGqECkqQCImUAEUuijiAAiADCINEKjIGIQGC4nCRmBCIeqQVVRa1EVQRAnFgugYhDRIgQAA4BCsxIAAEAzThAAAAAAfBggauhrUYgTAAAxCJBq6ipgAgJQAEBIwFgkFIgEAAAlNAANQBcDCAKgiQC+NNyyLfk6x+O+bW89l8g149Jwy7bk6xyP+7a99Vwi14y/ACCqEgcthlAK6QQ6oCBgZgKSBAkAAAAAAABCmSwBtyhDlE+YcjkclsPyEi6XspRQBgAAcDmUglACVlEIpSbqADMTMwHqYAKDJYgVSl2odwiiMwCEmpq6lABDwTA6F/QI1TsVBBARRQA66iMRAABBM6wOAAAAIQAAFAwALFADIA6GBiDehx8A9EEEMAJgoAFoTWQAMEQgAiAAvjTcuhP91vF7Se7w1QtepZpxabh1J/qt4/eS3OGrF7xKNeMvAKhkCQbowhQS1CQyCEhCAAAAAAAAAAAAgIDlFhcQ5WMZXIaCl+UhvCyXn6EsIakOVQmhwlKhICms0+kCYw0qosalRqLeO9TDSEEKVaUSGpUsQYBRRa0oKiAOVMQpgkUFjGJchkaAAgBBoSmBAABoIAAAQAAaASKACREBUQMCKOo0DgA0wACgDTAIAwAAAL40PM1W0Mp9fJievg6q1BSXhqfZClq5jw/T09dBlZrizwAQWT7phJWSJAEAAAAAAAAAAAAACpYLhFdYQJBHgCVoRiMUUErNECs0KiCZoKZKkhlSQJIYdYgiKEasMd2JMfQFSVIQVDQjmRUAAAMLegD9wCCMwYgCjEXqBCDSB1oc/Q4YAN40fLoV8c3j2s30tVBTbBo+3Yr45nHtZvpaqCk+gYCayBqRLEyYSQAAAAAAAAAAAAAAgDGVChSCTiFIKlBwwQ9QhpdQLg+XA0TyYSzq4MMwghriMI5uv3V1AZYqrKm6ApAEgDY0AfoAXQD+NLynA/3P8biH4xvgZKkpPg3v6UD/czzu4fgGOFlqir8AQCWAgZgwAwAAAAAAAAAAAAAAUF4BSoi4CJMjSEB5eLgEBOASPpbhNcaJdWEV1ChoBLqxRS22DiYiViPNAAAAaAhCIACeNNy2E3/2Y5nT8XW81BSThtt24s9+LHM6vo6XmuITANVVw8FCLAQAAAAAAAAAAAAAAAAAk4aADkygASIcho9lAJaHoXwUHHGKAogogAoDIAzgAUoMAQVpJAAEAJ40/Ooj0Tku8IaaMWn41Ueic1zgDTXjIwDKmsjAhJmZmZmZmYCAgAAAAAAAAAAAIBkI02lUTKdjhYqKBqVQqkrNEJEkGUIfQRvixMTEmJiIQwQMZlJTlySYQNTR0RFaAxMTExMTExMTEejo6Ojo6Ojo6ABMTExMTExMTEwAOjo6Ojo6Ojo6ABMTExMTExMTEWgdHR0dHR0dHYAxMTExMTExMQFoHR0dHR0dHQEwMTExMTExEQE6Ojo6Ojo6AmBMTExMTExM6Ojo6OjoYGJiYmJiQuvo6Ojo6DDixMQEAN40/L02FhzAF2qKTcPfa2PBAXyhprhg+z6YmZmZmZmZJEmSBAAAAAAAAKEMy8dh+DmEn18TzWqirqKqoq6mKhgAMPp9jH4/AK3b7Xa73W43Qr/f7/f7/X6/3+9Dt9vtdrvdbrfbjdDv9/v9fr/f7/dBt9vtdrvdbrcbQb/f7/f7/X6/H0C32+12u91uNwL9fr/f7/f7/QB0u91ut9vtRkC/3+/3+/1+AHS73W63240A/X6/3+/3A6B1u91ut9sd/X6/3+/3u91ut9vtxn6/3+/3+0G32+0C'; +export const VOICE_CUE_PASTE = 'data:audio/ogg;base64,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'; +export const VOICE_CUE_LOCK = 'data:audio/ogg;base64,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'; diff --git a/frontend/src/shared/voice/voiceCues.ts b/frontend/src/shared/voice/voiceCues.ts index 85b2cf15..ed985ceb 100644 --- a/frontend/src/shared/voice/voiceCues.ts +++ b/frontend/src/shared/voice/voiceCues.ts @@ -1,24 +1,35 @@ -import { VOICE_CUE_START, VOICE_CUE_STOP } from './voiceCueSounds'; +import { VOICE_CUE_START, VOICE_CUE_STOP, VOICE_CUE_PASTE, VOICE_CUE_LOCK } from './voiceCueSounds'; // Eric picked these from Google's Material product sound set after a bake-off against Wispr Flow's // real cues; the synth versions never survived an ear test. Files are embedded data URIs (see -// voiceCueSounds.ts), pre-instantiated so playback is instant on the press. +// voiceCueSounds.ts), pre-instantiated so playback is instant on the press. The grammar mirrors +// Wispr's three-beat: tap in, tap out, and a rising completion the moment the text actually lands; +// lock marks a hands-free latch. const CUE_VOLUME = 0.35; -const p_players: Record<'start' | 'stop', HTMLAudioElement | null> = { start: null, stop: null }; +type CueKind = 'start' | 'stop' | 'paste' | 'lock'; -function player(kind: 'start' | 'stop'): HTMLAudioElement { +const SOURCES: Record = { + start: VOICE_CUE_START, + stop: VOICE_CUE_STOP, + paste: VOICE_CUE_PASTE, + lock: VOICE_CUE_LOCK, +}; + +const p_players: Partial> = {}; + +function player(kind: CueKind): HTMLAudioElement { let a = p_players[kind]; if (!a) { - a = new Audio(kind === 'start' ? VOICE_CUE_START : VOICE_CUE_STOP); - a.volume = CUE_VOLUME; + a = new Audio(SOURCES[kind]); + a.volume = kind === 'paste' ? CUE_VOLUME * 0.8 : CUE_VOLUME; p_players[kind] = a; } return a; } -export function playVoiceCue(kind: 'start' | 'stop'): void { +export function playVoiceCue(kind: CueKind): void { try { const a = player(kind); a.currentTime = 0;