Skip to content
Changelog Docs

Speech API

Changelog

Public changes that affect integration behavior, billing, lifecycle status, or production operations.

September 17, 2026

Continuous word proficiency with backward-compatible CEFR

  • The existing oruk-proficiency-1 endpoint now adds continuous-pilot-v2 word and recording pronunciation scores on 0–1, word timings, and accuracy, fluency and prosody components. The model ID and request fields are unchanged.
  • The original CEFR model, 0–5 cefr_score, fluency fields, metadata, validity checks and billing behavior are retained. continuous_check and continuous_metadata describe the new scorer separately. Invalid legacy checks remain free; a valid CEFR check can still consume usage when word alignment is partial.
  • The docs explain the two score scales, null handling, alignment and frozen-encoder architecture, and the reused benchmark tradeoff: lower error on weak/intermediate words but higher overall word error. New Python and Node.js examples show how to read both outputs.

September 14, 2026

SDK 0.2.10 on PyPI and npm

  • Python and TypeScript SDK 0.2.10 are available as oruk on PyPI and @oruk-ai/sdk on npm. The registry packages match the verified versioned downloads. Install with python -m pip install oruk==0.2.10 or npm install @oruk-ai/sdk@0.2.10.
  • The SDK docs and AI references now point to the current npm release. Fresh installation checks cover all six client methods, optional task flags, multipart uploads, request IDs, retry behavior, and structured errors. Versioned download mirrors remain available at /docs/sdks.

September 7, 2026

SDK 0.2.6 and runnable file-analysis examples

  • Python and TypeScript SDK 0.2.6 are published on PyPI and npm. Package documentation distinguishes selected model scores from calibrated probabilities and reference cost estimates from subscription invoices. Runtime client implementations are unchanged from 0.2.5.
  • The SDK docs include complete downloadable Python and TypeScript programs for the supported file tasks, with model selection, diarization, proficiency transcripts, full response output, and structured errors. Fresh registry installations and the runnable programs pass the transport fixture checks.

September 7, 2026

SDK 0.2.5 on PyPI and npm

  • The official oruk Python package and @oruk-ai/sdk TypeScript package are published as version 0.2.5 on PyPI and npm. Their registry archives match the verified first-party downloads, and fresh installations pass the SDK transport checks.
  • Installation commands in the SDK docs, guides, analyzer, and MCP references now use the published package names. Versioned download mirrors remain available at /docs/sdks.

September 6, 2026

SDK 0.2.5 documentation update

  • Python and TypeScript SDK 0.2.5 are available as versioned first-party downloads from /docs/sdks. Package documentation uses current Resonance naming and describes speaker labeling through the Oruk API.
  • Client methods, request behavior, and dependencies are unchanged from 0.2.4. Existing versioned download artifacts remain unchanged for integrations that pin them.

September 6, 2026

Subscriptions, Resonance naming, and clearer evaluation

  • Hobby, Builder, and Production subscriptions use one shared audio-minute allowance across supported tasks, including realtime and speaker labeling. Standard trials last 7 days with a card on file and $0 today; trial usage pauses at its limit. Current fees, included minutes, and extra-minute rates are on /pricing.
  • New self-serve purchases use subscriptions; the old add-credit checkout and outdated signup credit offers have been removed. Existing account balances and previously agreed metered terms remain recorded on the account; this migration does not erase purchased balances or retroactively change invoices.
  • The model family is consistently named Resonance. Dated evaluation results identify their measured checkpoint and protocol; a naming update is not a new evaluation of a later release.
  • The public demo accepts common recording formats, offers a temporary API request without an account, and links directly to subscription access. The MCP account-check tool is now oruk_check_usage.
  • Optional authenticator-app two-factor authentication is available in Account → Security for both password and connected-account sign-in, with single-use recovery codes and controls to replace or disable the authenticator.
  • Benchmark tables and research articles now share the recorded evaluation results and uncertainty. Processing descriptions and subscription explanations have been reconciled across the site.

September 6, 2026

SDK 0.2.4 metadata correction

  • Python and TypeScript SDK 0.2.4 are available as versioned first-party downloads from /docs/sdks. Client methods and request behavior are unchanged from 0.2.3.
  • The Python package no longer advertises an inaccessible private source-repository link. Public documentation, pricing, and changelog links remain available. Previously released download artifacts are unchanged.

September 6, 2026

SDK 0.2.3 and current-plan documentation

  • Python and TypeScript SDK 0.2.3 are available as versioned downloads from /docs/sdks. Both releases support file transcription, emotions, styles, affect, unified analysis, and proficiency. Python requires 3.10 or later.
  • SDK 0.2.3 corrects the Realtime label description from 0.2.2: the live preview can emit labels beyond the earlier seven-class set. Integrations should read the returned label/score array. SDK methods are unchanged.
  • Examples now use the current SDK methods and Resonance as the flagship file model. File analysis, Realtime preview, and their different language and label coverage are documented separately.
  • Current subscriptions include every API task in their plan minutes, including diarization. Older per-task rates remain explicitly labeled as legacy metered references.

September 4, 2026

Current Resonance model identifiers

  • Use model=oruk-resonance for the current flagship file API. Older version-specific identifiers are no longer listed by GET /v1/models and may return 400 model_retired with a replacement. Use the model catalog to select a served identifier.
  • Resonance is the default for /v1/audio/styles and /v1/audio/affect as well as transcriptions and analysis. Current subscriptions use shared plan minutes for every supported task.
  • The served file models are Resonance and Fourier (both stable); Realtime and Proficiency 1 remain in preview. Docs, OpenAPI, SDK types, and the MCP tool schema were updated to match.

September 4, 2026

Resonance emotion-only

  • /v1/audio/emotions defaults to oruk-resonance. It runs acoustic analysis without transcription, so the response has no transcript text, words, or language. On a subscription it consumes the same audio minutes as unified analysis.
  • Works with diarize=true for per-speaker emotion without a transcript. Use the current model catalog and model-specific quickstarts to choose a supported file model.
  • GET /v1/models now lists emotion, style, and affect under recommended_for for oruk-resonance.

September 4, 2026

Live speaker labels on the realtime socket

  • session.update accepts diarize (default false). When enabled, speaker labeling runs alongside transcription: every phrase event carries a speaker field, phrases close at speaker changes and silences, and speaker-start/end events report turn boundaries.
  • Speaker labeling is included in subscription plan minutes. Without the flag, speaker is null. Existing metered accounts retain their agreed account terms.
  • File-API speaker labeling was updated. An unavailable diarization step returns 503 diarization_upstream_failed; it does not silently return unlabelled speech. See /security#processing for data handling.

September 4, 2026

Speaker diarization for Resonance

  • Added a diarize=true form flag to /v1/audio/transcriptions, emotions, styles, affect, and analysis with model=oruk-resonance. Speakers are located first, then Resonance transcribes and labels each speaker turn, so every segment carries one speaker’s text, emotions, and styles.
  • Segments gain a speaker field (speaker_0, speaker_1, …); responses gain diarized and a speakers list in order of first appearance. Optional num_speakers (1–32) caps the speaker count.
  • Diarized requests use the same subscription audio-minute allowance. Other file models return 400 diarization_unsupported. Existing metered accounts retain their agreed account terms.
  • SDKs 0.2.1 accept diarize / num_speakers on every file task.

September 4, 2026

Speaking proficiency scoring (preview)

  • Added POST /v1/audio/proficiency with the oruk-proficiency-1 model: CEFR band with a continuous 0–5 score and per-band probabilities, a three-level fluency estimate, utterance-fluency measures, and the transcript used.
  • The initial release supported per-check metered billing. Current subscriptions use audio minutes, including proficiency; older account terms remain available in Plan & billing. Checks that return insufficient_audio do not consume usage.
  • Optional transcript field skips the built-in transcription step when you already have text for the audio.
  • SDKs 0.2.0 add client.proficiency(...) in Python and oruk.proficiency(...) in TypeScript.

July 12, 2026

Self-serve billing and production onboarding

  • Introduced hosted checkout, saved payment methods, receipts, and invoices. The current signup offering uses subscriptions; see the September 6 update above.
  • Added usage controls and account billing alerts.
  • Added temporary 15-minute quickstart keys, sample audio, and an activation checklist.
  • Published pricing calculator, benchmark methodology, service status, security, and responsible-use pages.
  • Added downloadable OpenAPI and source SDKs for Python and TypeScript.

July 11, 2026

Speech API v1 public contract

  • Consolidated documentation around transcription, emotion, style, affect, and unified analysis.
  • Published stable model identifiers and versioned usage accounting. See current subscription pricing for today's offer.
  • Added request reservations, idempotent settlement, and request-level usage history.