claude-voice 1.3.2 → 1.3.4

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.
@@ -54,21 +54,22 @@
54
54
  "jarvis": [
55
55
  "▁JA R VI S",
56
56
  "▁JA R V I S",
57
- "J AR VI S"
57
+ "J AR VI S",
58
+ "J A R VI S",
59
+ "J A R V I S",
60
+ "▁J A R VI S"
58
61
  ],
59
62
  "claude": [
60
63
  "▁C L A U DE",
61
64
  "▁C L A U D E",
62
- "C L A U DE"
65
+ "C L A U DE",
66
+ "C L A U D E",
67
+ "▁C LA U DE",
68
+ "C LA U D E"
63
69
  ]
64
70
  },
65
71
  "picovoice": {
66
72
  "accessKey": ""
67
- },
68
- "openwakeword": {
69
- "model": "hey_jarvis",
70
- "threshold": 0.5,
71
- "debug": false
72
73
  }
73
74
  },
74
75
  "notifications": {
@@ -13,7 +13,7 @@ export interface InputInjectorOptions {
13
13
  typingDelay?: number;
14
14
  }
15
15
  /**
16
- * Injects text into the terminal using AppleScript on macOS.
16
+ * Injects text into the terminal using AppleScript on macOS or xdotool on Linux.
17
17
  * This allows voice-transcribed text to be sent to Claude Code.
18
18
  */
19
19
  export declare class TerminalInputInjector {
@@ -36,6 +36,10 @@ export declare class TerminalInputInjector {
36
36
  */
37
37
  pressKey(key: string): Promise<void>;
38
38
  private generateAppleScript;
39
+ /**
40
+ * Types text into the active terminal using xdotool on Linux
41
+ */
42
+ private typeLinux;
39
43
  private escapeForAppleScript;
40
44
  private getKeyCode;
41
45
  private delay;
@@ -1 +1 @@
1
- {"version":3,"file":"input-injector.d.ts","sourceRoot":"","sources":["../../src/terminal/input-injector.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,OAAO,GAAE,oBAAyB;IAS9C;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D;;OAEG;YACW,cAAc;IAO5B;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1C,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,UAAU;IAwClB,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,UAAU,GAAG,OAAO,GAAG,SAAS;CAa1D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE"}
1
+ {"version":3,"file":"input-injector.d.ts","sourceRoot":"","sources":["../../src/terminal/input-injector.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,OAAO,GAAE,oBAAyB;IAS9C;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B1D;;OAEG;YACW,cAAc;IAO5B;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1C,OAAO,CAAC,mBAAmB;IAkC3B;;OAEG;YACW,SAAS;IA6BvB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,UAAU;IAwClB,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,UAAU,GAAG,OAAO,GAAG,SAAS;CAa1D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE"}
@@ -6,7 +6,19 @@ const child_process_1 = require("child_process");
6
6
  const util_1 = require("util");
7
7
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
8
8
  /**
9
- * Injects text into the terminal using AppleScript on macOS.
9
+ * Check if a command exists in PATH
10
+ */
11
+ function hasCommand(cmd) {
12
+ try {
13
+ (0, child_process_1.execSync)(`which ${cmd}`, { stdio: 'ignore' });
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ /**
21
+ * Injects text into the terminal using AppleScript on macOS or xdotool on Linux.
10
22
  * This allows voice-transcribed text to be sent to Claude Code.
11
23
  */
12
24
  class TerminalInputInjector {
@@ -24,8 +36,11 @@ class TerminalInputInjector {
24
36
  * Types text into the active terminal window
25
37
  */
26
38
  async type(text, pressEnter = true) {
39
+ if (process.platform === 'linux') {
40
+ return this.typeLinux(text, pressEnter);
41
+ }
27
42
  if (process.platform !== 'darwin') {
28
- throw new Error('Terminal input injection is only supported on macOS');
43
+ throw new Error('Terminal input injection is only supported on macOS and Linux');
29
44
  }
30
45
  // Escape special characters for AppleScript
31
46
  const escapedText = this.escapeForAppleScript(text);
@@ -70,8 +85,16 @@ class TerminalInputInjector {
70
85
  * Simulates pressing a key
71
86
  */
72
87
  async pressKey(key) {
88
+ if (process.platform === 'linux') {
89
+ // Use xdotool for Linux
90
+ if (!hasCommand('xdotool')) {
91
+ throw new Error('xdotool not found. Install with: sudo apt install xdotool');
92
+ }
93
+ await execAsync(`xdotool key ${key}`);
94
+ return;
95
+ }
73
96
  if (process.platform !== 'darwin') {
74
- throw new Error('Key press simulation is only supported on macOS');
97
+ throw new Error('Key press simulation is only supported on macOS and Linux');
75
98
  }
76
99
  const keyCode = this.getKeyCode(key);
77
100
  const script = `
@@ -111,6 +134,33 @@ tell application "System Events"
111
134
  keystroke "${text}"
112
135
  end tell`;
113
136
  }
137
+ /**
138
+ * Types text into the active terminal using xdotool on Linux
139
+ */
140
+ async typeLinux(text, pressEnter) {
141
+ // Check for xdotool
142
+ if (!hasCommand('xdotool')) {
143
+ throw new Error('xdotool not found. Install it with: sudo apt install xdotool\n' +
144
+ 'Note: xdotool works with X11. For Wayland, use ydotool.');
145
+ }
146
+ // Escape special characters for shell
147
+ const escapedText = text
148
+ .replace(/\\/g, '\\\\')
149
+ .replace(/"/g, '\\"')
150
+ .replace(/`/g, '\\`')
151
+ .replace(/\$/g, '\\$');
152
+ try {
153
+ // Type the text using xdotool
154
+ await execAsync(`xdotool type --clearmodifiers "${escapedText}"`);
155
+ // Press Enter if requested
156
+ if (pressEnter) {
157
+ await execAsync('xdotool key Return');
158
+ }
159
+ }
160
+ catch (error) {
161
+ throw new Error(`Failed to inject text via xdotool: ${error}`);
162
+ }
163
+ }
114
164
  escapeForAppleScript(text) {
115
165
  return text
116
166
  .replace(/\\/g, '\\\\') // Escape backslashes first
@@ -1 +1 @@
1
- {"version":3,"file":"input-injector.js","sourceRoot":"","sources":["../../src/terminal/input-injector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-injector.js","sourceRoot":"","sources":["../../src/terminal/input-injector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wake-word/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAczD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,eAAe,GAC/B,iBAAiB,CAmBnB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,iBAAiB;IAC/E,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,GAAG,CAAa;IAExB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,gBAAgB,CAAuB;gBAEnC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe;IAMtE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAwBjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,iBAAiB;IAuFzB,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,eAAe;IAcvB,IAAI,IAAI,IAAI;IAYZ,OAAO,IAAI,IAAI;IAsBf;;OAEG;IACH,MAAM,CAAC,YAAY;;;;;;;CAGpB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BtD;AAGD,OAAO,EAAE,kBAAkB,IAAI,gBAAgB,EAAE,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wake-word/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAazD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,eAAe,GAC/B,iBAAiB,CAUnB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,iBAAiB;IAC/E,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,GAAG,CAAa;IAExB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,gBAAgB,CAAuB;gBAEnC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe;IAMtE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAwBjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,iBAAiB;IAuFzB,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,eAAe;IAcvB,IAAI,IAAI,IAAI;IAYZ,OAAO,IAAI,IAAI;IAsBf;;OAEG;IACH,MAAM,CAAC,YAAY;;;;;;;CAGpB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BtD;AAGD,OAAO,EAAE,kBAAkB,IAAI,gBAAgB,EAAE,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -44,7 +44,6 @@ const os = __importStar(require("os"));
44
44
  const platform_1 = require("../platform");
45
45
  const picovoice_detector_1 = require("./picovoice-detector");
46
46
  Object.defineProperty(exports, "PicovoiceDetector", { enumerable: true, get: function () { return picovoice_detector_1.PicovoiceDetector; } });
47
- const openwakeword_detector_1 = require("./openwakeword-detector");
48
47
  const audio_1 = require("../utils/audio");
49
48
  const silence_1 = require("../utils/silence");
50
49
  // Model info for keyword spotting
@@ -64,15 +63,6 @@ function createWakeWordDetector(config, recordingConfig) {
64
63
  console.log('Using Picovoice wake word detection');
65
64
  return new picovoice_detector_1.PicovoiceDetector(config, recordingConfig);
66
65
  }
67
- if (provider === 'openwakeword') {
68
- if ((0, openwakeword_detector_1.isOpenWakeWordInstalled)()) {
69
- console.log('Using openWakeWord detection');
70
- return new openwakeword_detector_1.OpenWakeWordDetector(config, recordingConfig);
71
- }
72
- else {
73
- console.log('openWakeWord not installed, falling back to Sherpa-ONNX');
74
- }
75
- }
76
66
  console.log('Using Sherpa-ONNX wake word detection');
77
67
  return new SherpaOnnxDetector(config, recordingConfig);
78
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wake-word/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wake-word/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-voice",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "Voice interface extension for Claude Code - TTS, STT, and wake word detection",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,7 +29,7 @@ console.log('║ Claude Voice Extension - Auto Setup ║'
29
29
  console.log('╚════════════════════════════════════════════════════════════╝\n');
30
30
 
31
31
  // 1. Create config directory
32
- console.log('Step 1/8: Setting up configuration...');
32
+ console.log('Step 1/7: Setting up configuration...');
33
33
  if (!fs.existsSync(CONFIG_DIR)) {
34
34
  fs.mkdirSync(CONFIG_DIR, { recursive: true });
35
35
  console.log(' [✓] Created config directory');
@@ -69,7 +69,7 @@ try {
69
69
  }
70
70
 
71
71
  // 4. Install Claude Code hooks
72
- console.log('\nStep 2/8: Installing Claude Code hooks...');
72
+ console.log('\nStep 2/7: Installing Claude Code hooks...');
73
73
  try {
74
74
  const settingsFile = installHooks(HOOKS_DIR);
75
75
  console.log(' [✓] Hooks installed');
@@ -79,7 +79,7 @@ try {
79
79
  }
80
80
 
81
81
  // 5. Install Claude Code plugin (skill)
82
- console.log('\nStep 3/8: Installing Claude Code plugin...');
82
+ console.log('\nStep 3/7: Installing Claude Code plugin...');
83
83
  try {
84
84
  const pluginPath = installPlugin(path.join(__dirname, '..'));
85
85
  console.log(' [✓] Plugin installed');
@@ -90,7 +90,7 @@ try {
90
90
 
91
91
  // 6. Install Piper TTS and download default voice
92
92
  const binPath = path.join(__dirname, '..', 'bin', 'claude-voice');
93
- console.log('\nStep 4/8: Installing Piper TTS engine...');
93
+ console.log('\nStep 4/7: Installing Piper TTS engine...');
94
94
  console.log(' (First-time install may take 1-2 minutes)\n');
95
95
  try {
96
96
  execSync(`"${binPath}" voice download en_US-joe-medium`, {
@@ -103,7 +103,7 @@ try {
103
103
  }
104
104
 
105
105
  // 7. Download whisper-tiny STT model
106
- console.log('\nStep 5/8: Downloading Whisper STT model...');
106
+ console.log('\nStep 5/7: Downloading Whisper STT model...');
107
107
  console.log(' (This may take 2-3 minutes depending on connection)\n');
108
108
  try {
109
109
  execSync(`"${binPath}" model download whisper-tiny`, {
@@ -128,8 +128,8 @@ try {
128
128
  console.log(' Run manually: claude-voice model download kws-zipformer-gigaspeech');
129
129
  }
130
130
 
131
- // 9. Install sox for audio capture (wake word)
132
- console.log('\nStep 7/7: Installing audio capture tools...');
131
+ // 9. Install platform-specific audio tools
132
+ console.log('\nStep 7/7: Checking audio tools...');
133
133
  const platform = os.platform();
134
134
 
135
135
  function checkCommand(cmd) {
@@ -141,13 +141,11 @@ function checkCommand(cmd) {
141
141
  }
142
142
  }
143
143
 
144
- if (checkCommand('rec')) {
145
- console.log(' [✓] sox already installed');
146
- } else {
147
- console.log(' [!] sox not found, attempting to install...');
148
-
149
- if (platform === 'darwin') {
150
- // macOS - try Homebrew
144
+ if (platform === 'darwin') {
145
+ // macOS - need sox for audio capture
146
+ if (checkCommand('rec')) {
147
+ console.log(' [] sox installed');
148
+ } else {
151
149
  if (checkCommand('brew')) {
152
150
  try {
153
151
  console.log(' Installing sox via Homebrew...');
@@ -158,28 +156,63 @@ if (checkCommand('rec')) {
158
156
  console.log(' Run manually: brew install sox');
159
157
  }
160
158
  } else {
161
- console.log(' [!] Homebrew not found');
162
- console.log(' Install sox manually: brew install sox');
163
- console.log(' Or install Homebrew first: https://brew.sh');
159
+ console.log(' [!] sox not found. Install with: brew install sox');
164
160
  }
165
- } else if (platform === 'linux') {
166
- // Linux - requires sudo, so just show instructions
167
- console.log(' [!] Please install sox manually:');
168
- console.log(' Ubuntu/Debian: sudo apt install sox');
169
- console.log(' Fedora: sudo dnf install sox');
170
- console.log(' Arch: sudo pacman -S sox');
161
+ }
162
+ console.log(' [✓] Audio playback: afplay (native)');
163
+ } else if (platform === 'linux') {
164
+ // Linux - check all required tools
165
+ console.log(' Checking Linux dependencies...\n');
166
+
167
+ // Check sox for audio capture
168
+ if (checkCommand('rec')) {
169
+ console.log(' [✓] sox installed');
170
+ } else {
171
+ console.log(' [!] sox not found');
172
+ console.log(' Install: sudo apt install sox');
173
+ }
174
+
175
+ // Check alsa-utils for arecord (alternative audio capture)
176
+ if (checkCommand('arecord')) {
177
+ console.log(' [✓] alsa-utils installed (arecord)');
178
+ } else {
179
+ console.log(' [!] alsa-utils not found');
180
+ console.log(' Install: sudo apt install alsa-utils');
181
+ }
182
+
183
+ // Check audio playback
184
+ if (checkCommand('aplay') || checkCommand('paplay') || checkCommand('ffplay')) {
185
+ console.log(' [✓] Audio playback available');
186
+ } else {
187
+ console.log(' [!] No audio player found');
188
+ console.log(' Install one: sudo apt install alsa-utils OR sudo apt install ffmpeg');
189
+ }
190
+
191
+ // Check xdotool for terminal injection
192
+ if (checkCommand('xdotool')) {
193
+ console.log(' [✓] xdotool installed (terminal injection)');
194
+ } else {
195
+ console.log(' [!] xdotool not found (required for voice commands)');
196
+ console.log(' Install: sudo apt install xdotool');
171
197
  }
172
198
  }
173
199
 
174
200
  // 10. Show platform info and completion
175
201
  console.log('\nFinalizing setup...');
176
- console.log(` [✓] Platform: ${platform}`);
202
+ console.log(` Platform: ${platform}`);
177
203
 
178
204
  if (platform === 'darwin') {
179
- console.log(' [✓] Audio: macOS native (afplay)');
205
+ console.log(' [✓] macOS: All features supported');
180
206
  } else if (platform === 'linux') {
181
- console.log(' [✓] Audio: Linux (aplay/paplay/ffplay)');
182
- console.log(' [i] Note: Install xdotool for terminal injection: sudo apt install xdotool');
207
+ const missingDeps = [];
208
+ if (!checkCommand('rec') && !checkCommand('arecord')) missingDeps.push('sox or alsa-utils');
209
+ if (!checkCommand('xdotool')) missingDeps.push('xdotool');
210
+
211
+ if (missingDeps.length === 0) {
212
+ console.log(' [✓] Linux: All features supported');
213
+ } else {
214
+ console.log(' [!] Linux: Missing dependencies: ' + missingDeps.join(', '));
215
+ }
183
216
  }
184
217
 
185
218
  // 11. Show next steps
@@ -1,136 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- openWakeWord server for Claude Voice Extension.
4
- Reads audio from stdin, outputs detections to stdout as JSON.
5
-
6
- Usage:
7
- python openwakeword_server.py [model_name] [threshold]
8
-
9
- Arguments:
10
- model_name: Wake word model to use (default: hey_jarvis)
11
- threshold: Detection threshold 0.0-1.0 (default: 0.5)
12
- """
13
- import sys
14
- import json
15
- import os
16
-
17
- # Suppress TensorFlow warnings
18
- os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
19
-
20
- import numpy as np
21
-
22
- try:
23
- from openwakeword.model import Model
24
- import openwakeword
25
- except ImportError:
26
- print(json.dumps({"status": "error", "message": "openwakeword not installed"}), flush=True)
27
- sys.exit(1)
28
-
29
- # Audio settings (must match Node.js - 16kHz 16-bit mono PCM)
30
- SAMPLE_RATE = 16000
31
- CHUNK_SIZE = 1280 # 80ms at 16kHz (1280 samples)
32
-
33
- # Available pre-trained models
34
- AVAILABLE_MODELS = [
35
- "alexa",
36
- "hey_jarvis",
37
- "hey_mycroft",
38
- "hey_rhasspy",
39
- "current_weather",
40
- "timers"
41
- ]
42
-
43
- def main():
44
- # Parse arguments
45
- model_name = sys.argv[1] if len(sys.argv) > 1 else "hey_jarvis"
46
- threshold = float(sys.argv[2]) if len(sys.argv) > 2 else 0.5
47
-
48
- # Validate model name
49
- if model_name not in AVAILABLE_MODELS:
50
- print(json.dumps({
51
- "status": "error",
52
- "message": f"Unknown model: {model_name}. Available: {', '.join(AVAILABLE_MODELS)}"
53
- }), flush=True)
54
- sys.exit(1)
55
-
56
- try:
57
- # Download models if needed (first run only)
58
- openwakeword.utils.download_models()
59
-
60
- # Initialize model
61
- model = Model(wakeword_models=[model_name])
62
-
63
- # Signal ready
64
- print(json.dumps({
65
- "status": "ready",
66
- "model": model_name,
67
- "threshold": threshold,
68
- "chunk_size": CHUNK_SIZE
69
- }), flush=True)
70
-
71
- except Exception as e:
72
- print(json.dumps({"status": "error", "message": str(e)}), flush=True)
73
- sys.exit(1)
74
-
75
- # Main detection loop with buffering for variable chunk sizes
76
- audio_buffer = b''
77
- frame_size = CHUNK_SIZE * 2 # 2560 bytes per frame
78
- frames_processed = 0
79
- max_score = 0.0
80
-
81
- while True:
82
- try:
83
- # Read whatever audio data is available (non-blocking style with larger reads)
84
- chunk = sys.stdin.buffer.read(4096)
85
-
86
- if not chunk:
87
- # EOF - stdin closed
88
- break
89
-
90
- # Add to buffer
91
- audio_buffer += chunk
92
-
93
- # Process all complete frames in buffer
94
- while len(audio_buffer) >= frame_size:
95
- # Extract one frame
96
- frame = audio_buffer[:frame_size]
97
- audio_buffer = audio_buffer[frame_size:]
98
- frames_processed += 1
99
-
100
- # Convert to numpy array and normalize to [-1, 1]
101
- audio = np.frombuffer(frame, dtype=np.int16).astype(np.float32) / 32768.0
102
-
103
- # Run inference
104
- prediction = model.predict(audio)
105
-
106
- # Check for detection
107
- for name, scores in prediction.items():
108
- # scores is an array, get the latest score
109
- score = float(scores[-1]) if hasattr(scores, '__len__') else float(scores)
110
-
111
- # Track max score for debugging
112
- if score > max_score:
113
- max_score = score
114
-
115
- if score > threshold:
116
- print(json.dumps({
117
- "event": "wakeword",
118
- "keyword": name,
119
- "score": score
120
- }), flush=True)
121
-
122
- # Reset the model after detection to prevent repeated triggers
123
- model.reset()
124
- max_score = 0.0
125
-
126
- # Log max score every 50 frames (~4 seconds)
127
- if frames_processed % 50 == 0:
128
- print(json.dumps({"event": "debug", "frames": frames_processed, "max_score": round(max_score, 3)}), flush=True)
129
- max_score = 0.0 # Reset after logging
130
-
131
- except Exception as e:
132
- print(json.dumps({"event": "error", "message": str(e)}), flush=True)
133
- continue
134
-
135
- if __name__ == "__main__":
136
- main()
@@ -1,3 +0,0 @@
1
- # openWakeWord dependencies for Claude Voice Extension
2
- openwakeword>=0.5.0
3
- numpy>=1.20.0