voice-router-dev 0.8.6 → 0.8.7

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/CHANGELOG.md CHANGED
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.8.7] - 2026-04-18
9
+
10
+ ### Fixed
11
+
12
+ #### Speechmatics: Fix Content-Type for URL-Based Batch Transcription
13
+
14
+ Speechmatics `POST /v2/jobs` always requires `multipart/form-data`, but the URL path was sending a JSON body with `Content-Type: application/json`, causing HTTP 400 errors.
15
+
16
+ The `config` field is now sent as a FormData field for both URL and file inputs. Also fixed the file upload path to properly convert `Buffer` to `Blob` before appending to FormData (pre-existing type error).
17
+
18
+ #### Soniox: Migrate to Current Async Transcription API
19
+
20
+ The batch transcription adapter was using the old `/speech/transcribe` endpoint which no longer exists (HTTP 404). Soniox migrated to an async job-based API.
21
+
22
+ | | Before (broken) | After (fixed) |
23
+ |---|---|---|
24
+ | **Create job (URL)** | `POST /speech/transcribe` (JSON) | `POST /transcriptions` (JSON with `audio_url`) |
25
+ | **Create job (file)** | `POST /speech/transcribe` (multipart) | `POST /files` → `POST /transcriptions` with `file_id` |
26
+ | **Get result** | `GET /speech/transcripts/{id}` | `GET /transcriptions/{id}` (status) + `GET /transcriptions/{id}/transcript` (result) |
27
+ | **Flow** | Synchronous (immediate result) | Async with `pollForCompletion()` |
28
+
29
+ `normalizeResponse` updated to handle batch transcript tokens (no `is_final` field — all tokens are final) and read `audio_duration_ms` from job metadata.
30
+
31
+ **No breaking changes for consumers.** The adapter's public API (`transcribe()`, `getTranscript()`) is unchanged.
32
+
33
+ #### Azure STT: Add Utterance Extraction to Batch Transcription
34
+
35
+ Azure batch transcription had words with speaker labels but wasn't building utterances from them. Now uses `buildUtterancesFromWords()` to group speaker-labeled words into utterances, matching all other adapters.
36
+
37
+ ---
38
+
8
39
  ## [0.8.6] - 2026-04-15
9
40
 
10
41
  ### Changed
@@ -3413,7 +3413,7 @@ declare const OpenAIModel: {
3413
3413
  readonly "whisper-1": "whisper-1";
3414
3414
  };
3415
3415
  declare const OpenAIModelCodes: readonly ["gpt-4o-mini-realtime-preview", "gpt-4o-mini-realtime-preview-2024-12-17", "gpt-4o-mini-transcribe", "gpt-4o-mini-transcribe-2025-12-15", "gpt-4o-realtime-preview", "gpt-4o-realtime-preview-2024-10-01", "gpt-4o-realtime-preview-2024-12-17", "gpt-4o-realtime-preview-2025-06-03", "gpt-4o-transcribe", "gpt-4o-transcribe-diarize", "gpt-audio-1.5", "gpt-audio-mini", "gpt-audio-mini-2025-10-06", "gpt-audio-mini-2025-12-15", "gpt-realtime", "gpt-realtime-1.5", "gpt-realtime-2025-08-28", "gpt-realtime-mini", "gpt-realtime-mini-2025-10-06", "gpt-realtime-mini-2025-12-15", "whisper-1"];
3416
- declare const OpenAIModelLabels: Record<"gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-mini-transcribe" | "gpt-4o-mini-transcribe-2025-12-15" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-realtime-preview-2024-12-17" | "gpt-4o-realtime-preview-2025-06-03" | "gpt-4o-transcribe" | "gpt-4o-transcribe-diarize" | "gpt-audio-1.5" | "gpt-audio-mini" | "gpt-audio-mini-2025-10-06" | "gpt-audio-mini-2025-12-15" | "gpt-realtime" | "gpt-realtime-1.5" | "gpt-realtime-2025-08-28" | "gpt-realtime-mini" | "gpt-realtime-mini-2025-10-06" | "gpt-realtime-mini-2025-12-15" | "whisper-1", string>;
3416
+ declare const OpenAIModelLabels: Record<"gpt-4o-mini-transcribe" | "gpt-4o-mini-transcribe-2025-12-15" | "gpt-4o-transcribe" | "gpt-4o-transcribe-diarize" | "whisper-1" | "gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-realtime-preview-2024-12-17" | "gpt-4o-realtime-preview-2025-06-03" | "gpt-audio-1.5" | "gpt-audio-mini" | "gpt-audio-mini-2025-10-06" | "gpt-audio-mini-2025-12-15" | "gpt-realtime" | "gpt-realtime-1.5" | "gpt-realtime-2025-08-28" | "gpt-realtime-mini" | "gpt-realtime-mini-2025-10-06" | "gpt-realtime-mini-2025-12-15", string>;
3417
3417
  /**
3418
3418
  * OpenAI Realtime API models (streaming)
3419
3419
  * @see scripts/generate-openai-models.js
@@ -3413,7 +3413,7 @@ declare const OpenAIModel: {
3413
3413
  readonly "whisper-1": "whisper-1";
3414
3414
  };
3415
3415
  declare const OpenAIModelCodes: readonly ["gpt-4o-mini-realtime-preview", "gpt-4o-mini-realtime-preview-2024-12-17", "gpt-4o-mini-transcribe", "gpt-4o-mini-transcribe-2025-12-15", "gpt-4o-realtime-preview", "gpt-4o-realtime-preview-2024-10-01", "gpt-4o-realtime-preview-2024-12-17", "gpt-4o-realtime-preview-2025-06-03", "gpt-4o-transcribe", "gpt-4o-transcribe-diarize", "gpt-audio-1.5", "gpt-audio-mini", "gpt-audio-mini-2025-10-06", "gpt-audio-mini-2025-12-15", "gpt-realtime", "gpt-realtime-1.5", "gpt-realtime-2025-08-28", "gpt-realtime-mini", "gpt-realtime-mini-2025-10-06", "gpt-realtime-mini-2025-12-15", "whisper-1"];
3416
- declare const OpenAIModelLabels: Record<"gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-mini-transcribe" | "gpt-4o-mini-transcribe-2025-12-15" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-realtime-preview-2024-12-17" | "gpt-4o-realtime-preview-2025-06-03" | "gpt-4o-transcribe" | "gpt-4o-transcribe-diarize" | "gpt-audio-1.5" | "gpt-audio-mini" | "gpt-audio-mini-2025-10-06" | "gpt-audio-mini-2025-12-15" | "gpt-realtime" | "gpt-realtime-1.5" | "gpt-realtime-2025-08-28" | "gpt-realtime-mini" | "gpt-realtime-mini-2025-10-06" | "gpt-realtime-mini-2025-12-15" | "whisper-1", string>;
3416
+ declare const OpenAIModelLabels: Record<"gpt-4o-mini-transcribe" | "gpt-4o-mini-transcribe-2025-12-15" | "gpt-4o-transcribe" | "gpt-4o-transcribe-diarize" | "whisper-1" | "gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-realtime-preview-2024-12-17" | "gpt-4o-realtime-preview-2025-06-03" | "gpt-audio-1.5" | "gpt-audio-mini" | "gpt-audio-mini-2025-10-06" | "gpt-audio-mini-2025-12-15" | "gpt-realtime" | "gpt-realtime-1.5" | "gpt-realtime-2025-08-28" | "gpt-realtime-mini" | "gpt-realtime-mini-2025-10-06" | "gpt-realtime-mini-2025-12-15", string>;
3417
3417
  /**
3418
3418
  * OpenAI Realtime API models (streaming)
3419
3419
  * @see scripts/generate-openai-models.js