claude-voice 1.5.9 → 1.5.10

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.
@@ -34,7 +34,7 @@
34
34
  "provider": "sherpa-onnx",
35
35
  "language": "en",
36
36
  "sherpaOnnx": {
37
- "model": "whisper-tiny"
37
+ "model": "whisper-small"
38
38
  },
39
39
  "whisperLocal": {
40
40
  "model": "base",
@@ -13,6 +13,7 @@ export declare class PicovoiceDetector extends EventEmitter {
13
13
  private recordingProcess;
14
14
  constructor(wakeWordConfig: WakeWordConfig, recordingConfig: RecordingConfig);
15
15
  initialize(): Promise<void>;
16
+ private findCustomKeywordPath;
16
17
  start(): Promise<void>;
17
18
  private tryPvRecorder;
18
19
  private readFrames;
@@ -1 +1 @@
1
- {"version":3,"file":"picovoice-detector.d.ts","sourceRoot":"","sources":["../../src/wake-word/picovoice-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAsB5D,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,SAAS,CAAa;IAE9B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,gBAAgB,CAAyC;gBAErD,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe;IAMtE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,aAAa;YAgBb,UAAU;IAkDxB,OAAO,CAAC,iBAAiB;IAqFzB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,8BAA8B;IA6BtC,OAAO,CAAC,eAAe;IAavB,IAAI,IAAI,IAAI;IAoBZ,OAAO,IAAI,IAAI;IAsBf,gBAAgB,IAAI,IAAI;IAQxB,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;CAGf"}
1
+ {"version":3,"file":"picovoice-detector.d.ts","sourceRoot":"","sources":["../../src/wake-word/picovoice-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAsB5D,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,SAAS,CAAa;IAE9B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,gBAAgB,CAAyC;gBAErD,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe;IAMtE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CjC,OAAO,CAAC,qBAAqB;IAgBvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,aAAa;YAgBb,UAAU;IAkDxB,OAAO,CAAC,iBAAiB;IAqFzB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,8BAA8B;IA6BtC,OAAO,CAAC,eAAe;IAavB,IAAI,IAAI,IAAI;IAoBZ,OAAO,IAAI,IAAI;IAsBf,gBAAgB,IAAI,IAAI;IAQxB,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;CAGf"}
@@ -36,6 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.PicovoiceDetector = void 0;
37
37
  const events_1 = require("events");
38
38
  const child_process_1 = require("child_process");
39
+ const path = __importStar(require("path"));
40
+ const fs = __importStar(require("fs"));
39
41
  const platform_1 = require("../platform");
40
42
  const audio_1 = require("../utils/audio");
41
43
  // Built-in Porcupine keywords
@@ -86,18 +88,26 @@ class PicovoiceDetector extends events_1.EventEmitter {
86
88
  try {
87
89
  // Dynamic import for picovoice
88
90
  const { Porcupine, BuiltinKeyword } = await Promise.resolve().then(() => __importStar(require('@picovoice/porcupine-node')));
89
- // Get keyword
91
+ // Get keyword - check for custom .ppn file first
90
92
  const keywordLower = this.config.keyword.toLowerCase();
91
- const builtinName = BUILTIN_KEYWORDS[keywordLower];
92
- if (!builtinName) {
93
- console.warn(`Keyword "${this.config.keyword}" is not a built-in Porcupine keyword.`);
94
- console.warn(`Available: ${Object.keys(BUILTIN_KEYWORDS).join(', ')}`);
95
- return;
93
+ const customPpnPath = this.findCustomKeywordPath(keywordLower);
94
+ if (customPpnPath) {
95
+ // Use custom .ppn model file
96
+ console.log(`Using custom Picovoice keyword: ${customPpnPath}`);
97
+ this.porcupine = new Porcupine(accessKey, [customPpnPath], [this.config.sensitivity]);
98
+ }
99
+ else {
100
+ // Fall back to built-in keyword
101
+ const builtinName = BUILTIN_KEYWORDS[keywordLower];
102
+ if (!builtinName) {
103
+ console.warn(`Keyword "${this.config.keyword}" is not a built-in Porcupine keyword and no .ppn file found.`);
104
+ console.warn(`Available built-in: ${Object.keys(BUILTIN_KEYWORDS).join(', ')}`);
105
+ console.warn(`Custom .ppn files can be placed in ~/.claude-voice/models/`);
106
+ return;
107
+ }
108
+ const keyword = BuiltinKeyword[builtinName];
109
+ this.porcupine = new Porcupine(accessKey, [keyword], [this.config.sensitivity]);
96
110
  }
97
- // Get the built-in keyword enum value
98
- const keyword = BuiltinKeyword[builtinName];
99
- // Create Porcupine instance
100
- this.porcupine = new Porcupine(accessKey, [keyword], [this.config.sensitivity]);
101
111
  console.log(`Picovoice detector initialized (keyword: "${this.config.keyword}")`);
102
112
  }
103
113
  catch (error) {
@@ -105,6 +115,20 @@ class PicovoiceDetector extends events_1.EventEmitter {
105
115
  throw error;
106
116
  }
107
117
  }
118
+ findCustomKeywordPath(keyword) {
119
+ // Normalize keyword: "hey-claude" or "hey_claude" or "hey claude" → "hey-claude.ppn"
120
+ const normalized = keyword.replace(/[\s_]/g, '-');
121
+ const searchPaths = [
122
+ path.join(process.env.HOME || '', '.claude-voice', 'models', `${normalized}.ppn`),
123
+ path.join(__dirname, '..', '..', 'models', `${normalized}.ppn`),
124
+ ];
125
+ for (const p of searchPaths) {
126
+ if (fs.existsSync(p)) {
127
+ return p;
128
+ }
129
+ }
130
+ return null;
131
+ }
108
132
  async start() {
109
133
  if (!this.porcupine) {
110
134
  console.warn('Picovoice detector not initialized');
@@ -1 +1 @@
1
- {"version":3,"file":"picovoice-detector.js","sourceRoot":"","sources":["../../src/wake-word/picovoice-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picovoice-detector.js","sourceRoot":"","sources":["../../src/wake-word/picovoice-detector.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.5.9",
3
+ "version": "1.5.10",
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",
@@ -7,10 +7,8 @@
7
7
  * 2. Install Claude Code hooks
8
8
  * 3. Install Claude Code plugin
9
9
  * 4. Download keyword spotting model for wake word (19MB)
10
- * 5. Check platform-specific audio tools
11
- *
12
- * TTS uses native providers (macOS-say / espeak) for zero-config.
13
- * STT model (whisper-tiny) downloads on first voice command.
10
+ * 5. Download STT model (whisper-small, ~488MB)
11
+ * 6. Check platform-specific audio tools
14
12
  * Uses pure Node.js for downloads (no curl/bzip2 system dependencies)
15
13
  */
16
14
 
@@ -198,7 +196,7 @@ async function runSetup() {
198
196
  let ttsProviderId = platform === 'darwin' ? 'macos-say' : 'espeak';
199
197
 
200
198
  // 1. Create config directory and set up configuration
201
- console.log('Step 1/6: Setting up configuration...');
199
+ console.log('Step 1/7: Setting up configuration...');
202
200
  if (!fs.existsSync(CONFIG_DIR)) {
203
201
  fs.mkdirSync(CONFIG_DIR, { recursive: true });
204
202
  console.log(' [✓] Created config directory');
@@ -224,7 +222,7 @@ async function runSetup() {
224
222
  config.stt = config.stt || {};
225
223
  config.stt.provider = 'sherpa-onnx';
226
224
  config.stt.sherpaOnnx = config.stt.sherpaOnnx || {};
227
- config.stt.sherpaOnnx.model = 'whisper-tiny';
225
+ config.stt.sherpaOnnx.model = 'whisper-small';
228
226
  config.wakeWord = config.wakeWord || {};
229
227
  // Smart wake word provider: prefer openWakeWord if Python 3 is available
230
228
  const pythonCmd = hasPython3();
@@ -241,7 +239,7 @@ async function runSetup() {
241
239
  }
242
240
 
243
241
  // 2. Install Claude Code hooks
244
- console.log('\nStep 2/6: Installing Claude Code hooks...');
242
+ console.log('\nStep 2/7: Installing Claude Code hooks...');
245
243
  try {
246
244
  const settingsFile = installHooks(HOOKS_DIR);
247
245
  console.log(' [✓] Hooks installed');
@@ -251,7 +249,7 @@ async function runSetup() {
251
249
  }
252
250
 
253
251
  // 3. Install Claude Code plugin (skill)
254
- console.log('\nStep 3/6: Installing Claude Code plugin...');
252
+ console.log('\nStep 3/7: Installing Claude Code plugin...');
255
253
  try {
256
254
  const pluginPath = installPlugin(path.join(__dirname, '..'));
257
255
  console.log(' [✓] Plugin installed');
@@ -261,7 +259,7 @@ async function runSetup() {
261
259
  }
262
260
 
263
261
  // 4. Set up wake word detection
264
- console.log('\nStep 4/6: Setting up wake word detection...');
262
+ console.log('\nStep 4/7: Setting up wake word detection...');
265
263
 
266
264
  // Re-read config to check which provider was selected
267
265
  let wakeWordProvider = 'sherpa-onnx';
@@ -330,8 +328,53 @@ async function runSetup() {
330
328
  console.log(' Tip: Install Python 3 + openwakeword for better wake word detection');
331
329
  }
332
330
 
333
- // 5. Install Piper TTS voice for high-quality speech
334
- console.log('\nStep 5/6: Installing Piper TTS voice...');
331
+ // Copy custom Picovoice .ppn keyword files to models dir
332
+ try {
333
+ const ppnSourceDir = path.join(__dirname, '..', 'models');
334
+ if (fs.existsSync(ppnSourceDir)) {
335
+ const ppnFiles = fs.readdirSync(ppnSourceDir).filter(f => f.endsWith('.ppn'));
336
+ if (ppnFiles.length > 0) {
337
+ if (!fs.existsSync(MODELS_DIR)) {
338
+ fs.mkdirSync(MODELS_DIR, { recursive: true });
339
+ }
340
+ for (const ppn of ppnFiles) {
341
+ const src = path.join(ppnSourceDir, ppn);
342
+ const dest = path.join(MODELS_DIR, ppn);
343
+ fs.copyFileSync(src, dest);
344
+ }
345
+ console.log(` [✓] Copied ${ppnFiles.length} Picovoice keyword model(s): ${ppnFiles.join(', ')}`);
346
+ }
347
+ }
348
+ } catch (err) {
349
+ console.log(' [!] Could not copy Picovoice keyword models:', err.message);
350
+ }
351
+
352
+ // 5. Download STT model (whisper-small)
353
+ console.log('\nStep 5/7: Downloading STT model...');
354
+ try {
355
+ const sttModelId = 'whisper-small';
356
+ const sttModelFolder = 'sherpa-onnx-whisper-small';
357
+ const sttModelUrl = 'https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-whisper-small.tar.bz2';
358
+ const sttModelPath = path.join(MODELS_DIR, sttModelFolder);
359
+
360
+ if (fs.existsSync(sttModelPath)) {
361
+ console.log(` [✓] STT model already installed: ${sttModelId}`);
362
+ } else {
363
+ if (!fs.existsSync(MODELS_DIR)) {
364
+ fs.mkdirSync(MODELS_DIR, { recursive: true });
365
+ }
366
+
367
+ console.log(` Model: Whisper Small (~950MB download, ~488MB extracted)`);
368
+ await downloadAndExtract(sttModelUrl, MODELS_DIR, sttModelFolder, sttModelId);
369
+ console.log(` [✓] STT model installed: ${sttModelId}`);
370
+ }
371
+ } catch (err) {
372
+ console.log(' [!] Could not download STT model:', err.message);
373
+ console.log(' Run manually: claude-voice model download whisper-small');
374
+ }
375
+
376
+ // 6. Install Piper TTS voice for high-quality speech
377
+ console.log('\nStep 6/7: Installing Piper TTS voice...');
335
378
  const pythonForPiper = hasPython3();
336
379
  if (pythonForPiper) {
337
380
  try {
@@ -407,8 +450,8 @@ async function runSetup() {
407
450
  console.log(` Using ${ttsProvider} (native TTS)`);
408
451
  }
409
452
 
410
- // 6. Check platform-specific audio tools
411
- console.log('\nStep 6/6: Checking audio tools...');
453
+ // 7. Check platform-specific audio tools
454
+ console.log('\nStep 7/7: Checking audio tools...');
412
455
 
413
456
  if (platform === 'darwin') {
414
457
  console.log(' [✓] TTS: macOS Say (built-in)');
@@ -494,11 +537,12 @@ async function runSetup() {
494
537
  }
495
538
  }
496
539
 
497
- // STT model downloads on first use - just note it
540
+ // Check STT model
541
+ const whisperSmall = path.join(MODELS_DIR, 'sherpa-onnx-whisper-small');
498
542
  const whisperTiny = path.join(MODELS_DIR, 'sherpa-onnx-whisper-tiny');
499
543
  const whisperBase = path.join(MODELS_DIR, 'sherpa-onnx-whisper-base');
500
- if (!fs.existsSync(whisperTiny) && !fs.existsSync(whisperBase)) {
501
- console.log(' [i] STT model (whisper-tiny, 75MB) will download on first voice command');
544
+ if (!fs.existsSync(whisperSmall) && !fs.existsSync(whisperTiny) && !fs.existsSync(whisperBase)) {
545
+ installationIssues.push('STT model not installed. Run: claude-voice model download whisper-small');
502
546
  } else {
503
547
  console.log(' [✓] STT model installed');
504
548
  }
@@ -536,7 +580,7 @@ async function runSetup() {
536
580
  console.log(' The extension will auto-start when you launch Claude Code.');
537
581
  const ttsLabel = ttsProviderId === 'piper' ? `${ttsProvider} (neural voice: en_US-joe-medium)` : `${ttsProvider} (native)`;
538
582
  console.log(` TTS: ${ttsLabel}`);
539
- console.log(' STT: Sherpa-ONNX Whisper (downloads on first use)');
583
+ console.log(' STT: Sherpa-ONNX Whisper Small');
540
584
  const wakeWordName = wakeWordProvider === 'openwakeword' ? 'openWakeWord' : 'Sherpa-ONNX KWS';
541
585
  const wakeWordPhrase = wakeWordProvider === 'openwakeword' ? 'Hey Jarvis' : 'Jarvis';
542
586
  console.log(` Wake Word: ${wakeWordName} - Say "${wakeWordPhrase}" to start speaking.\n`);