@botuyo/chat-widget-standalone 1.0.83 → 1.0.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/dist/{AudioPlayer-CmWNaFAM.js → AudioPlayer-DI98JrBM.js} +2 -2
- package/dist/AudioPlayer-DI98JrBM.js.map +1 -0
- package/dist/Avatar3D-LfNJe183.js +9 -0
- package/dist/Avatar3D-LfNJe183.js.map +1 -0
- package/dist/{Gallery-Bg8EmBE6.js → Gallery-CSN57fUw.js} +2 -2
- package/dist/Gallery-CSN57fUw.js.map +1 -0
- package/dist/botuyo-chat.es.js +1 -1
- package/dist/botuyo-chat.umd.js +1 -1
- package/dist/botuyo-chat.umd.js.map +1 -1
- package/dist/src/chat-widget/components/Avatar3D.d.ts.map +1 -1
- package/dist/src/chat-widget/components/Gallery.stories.d.ts.map +1 -1
- package/dist/src/chat-widget/components/VoiceCallOverlay.d.ts.map +1 -1
- package/dist/src/chat-widget/voice/index.d.ts +0 -1
- package/dist/src/chat-widget/voice/index.d.ts.map +1 -1
- package/dist/src/chat-widget/voice/useLiveCall.d.ts.map +1 -1
- package/dist/src/chat-widget/voice/useVoiceChat.d.ts.map +1 -1
- package/dist/{standalone-B8sCmApK.js → standalone-D-wUb5qW.js} +33 -33
- package/dist/standalone-D-wUb5qW.js.map +1 -0
- package/dist/stats-umd.html +1 -1
- package/dist/stats.html +1 -1
- package/package.json +157 -156
- package/dist/AudioPlayer-CmWNaFAM.js.map +0 -1
- package/dist/Avatar3D-CoXzuLgX.js +0 -9
- package/dist/Avatar3D-CoXzuLgX.js.map +0 -1
- package/dist/Gallery-Bg8EmBE6.js.map +0 -1
- package/dist/src/chat-widget/voice/audioEnhancement.d.ts +0 -89
- package/dist/src/chat-widget/voice/audioEnhancement.d.ts.map +0 -1
- package/dist/standalone-B8sCmApK.js.map +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @package @botuyo/chat-widget
|
|
3
|
-
* Audio Enhancement Utilities
|
|
4
|
-
*
|
|
5
|
-
* Shared audio processing chain for voice capture:
|
|
6
|
-
* - Highpass filter (cuts low-freq ambient noise: HVAC, traffic, rumble)
|
|
7
|
-
* - Lowpass filter (cuts high-freq noise above speech range)
|
|
8
|
-
* - Dynamic compressor (normalizes volume, boosts close speech)
|
|
9
|
-
*
|
|
10
|
-
* Plus a noise gate implemented inside AudioWorklet processors
|
|
11
|
-
* to silence chunks below an RMS threshold (background chatter, distant voices).
|
|
12
|
-
*
|
|
13
|
-
* Compatible with desktop and mobile browsers (Chrome, Safari, Firefox).
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Optimized audio constraints for voice capture.
|
|
17
|
-
* These leverage browser-level DSP which works on both desktop and mobile.
|
|
18
|
-
*/
|
|
19
|
-
export declare const ENHANCED_AUDIO_CONSTRAINTS: MediaTrackConstraints;
|
|
20
|
-
/**
|
|
21
|
-
* RMS threshold for the noise gate (Float32 scale 0–1).
|
|
22
|
-
* - Quiet room ambient ≈ 0.003–0.008
|
|
23
|
-
* - Normal speech at arm's length ≈ 0.02–0.10
|
|
24
|
-
* - 0.008 cuts background chatter while keeping soft speech
|
|
25
|
-
*/
|
|
26
|
-
export declare const NOISE_GATE_THRESHOLD = 0.008;
|
|
27
|
-
/**
|
|
28
|
-
* Number of consecutive silent frames before the gate closes.
|
|
29
|
-
* Prevents choppy cutoffs on natural pauses between words.
|
|
30
|
-
* At 16kHz with 1600-sample buffers (100ms each), 3 frames = 300ms hold.
|
|
31
|
-
* At 16kHz with 320-sample buffers (20ms each), 15 frames = 300ms hold.
|
|
32
|
-
*/
|
|
33
|
-
export declare const NOISE_GATE_HOLD_FRAMES = 3;
|
|
34
|
-
/**
|
|
35
|
-
* Audio enhancement chain parameters.
|
|
36
|
-
* Tuned for speech capture on mobile and desktop.
|
|
37
|
-
*/
|
|
38
|
-
export declare const ENHANCEMENT_CONFIG: {
|
|
39
|
-
/** Highpass filter — removes low-frequency rumble (HVAC, traffic, wind) */
|
|
40
|
-
readonly highpass: {
|
|
41
|
-
readonly frequency: 85;
|
|
42
|
-
readonly q: 0.7;
|
|
43
|
-
};
|
|
44
|
-
/** Lowpass filter — removes high-frequency hiss/noise above speech */
|
|
45
|
-
readonly lowpass: {
|
|
46
|
-
readonly frequency: 7500;
|
|
47
|
-
readonly q: 0.7;
|
|
48
|
-
};
|
|
49
|
-
/** Dynamic compressor — normalizes volume, boosts close speaker */
|
|
50
|
-
readonly compressor: {
|
|
51
|
-
readonly threshold: -24;
|
|
52
|
-
readonly knee: 12;
|
|
53
|
-
readonly ratio: 4;
|
|
54
|
-
readonly attack: 0.003;
|
|
55
|
-
readonly release: 0.15;
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Creates a Web Audio processing chain for voice enhancement.
|
|
60
|
-
* Chain: source → highpass → lowpass → compressor → (output node)
|
|
61
|
-
*
|
|
62
|
-
* @param ctx - AudioContext to create nodes in
|
|
63
|
-
* @param source - MediaStreamAudioSourceNode from getUserMedia
|
|
64
|
-
* @returns The final node in the chain (connect your worklet/processor to this)
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```ts
|
|
68
|
-
* const source = ctx.createMediaStreamSource(stream)
|
|
69
|
-
* const enhanced = createEnhancementChain(ctx, source)
|
|
70
|
-
* enhanced.connect(workletNode) // or analyser, etc.
|
|
71
|
-
* ```
|
|
72
|
-
*/
|
|
73
|
-
export declare function createEnhancementChain(ctx: AudioContext, source: MediaStreamAudioSourceNode): AudioNode;
|
|
74
|
-
/**
|
|
75
|
-
* Generates the noise gate logic as a string to inject into AudioWorklet code.
|
|
76
|
-
* This adds RMS calculation + hold-time gating to prevent sending silent/noisy chunks.
|
|
77
|
-
*
|
|
78
|
-
* The generated code expects:
|
|
79
|
-
* - `this.holdCounter` initialized in constructor
|
|
80
|
-
* - The buffer to be checked as a Float32Array
|
|
81
|
-
*
|
|
82
|
-
* @param threshold - RMS threshold (default: NOISE_GATE_THRESHOLD)
|
|
83
|
-
* @param holdFrames - Frames to hold gate open after speech (default: NOISE_GATE_HOLD_FRAMES)
|
|
84
|
-
*/
|
|
85
|
-
export declare function generateNoiseGateCode(threshold?: number, holdFrames?: number): {
|
|
86
|
-
constructorInit: string;
|
|
87
|
-
gateCheck: string;
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=audioEnhancement.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audioEnhancement.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/voice/audioEnhancement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,qBAMxC,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAMvC;;;GAGG;AACH,eAAO,MAAM,kBAAkB;IAC7B,2EAA2E;;;;;IAK3E,sEAAsE;;;;;IAKtE,mEAAmE;;;;;;;;CAQ3D,CAAA;AAEV;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,0BAA0B,GACjC,SAAS,CA2BX;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,MAA6B,EACxC,UAAU,GAAE,MAA+B,GAC1C;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAqBhD"}
|