---
title: "From WhisperX concepts"
url: https://recursiveai.org/onespeech/docs/migrate-whisperx/
description: "This guide uses only the published package description, consulted 2026-11-08. It maps a workflow, not Python modules, dictionaries or an API signature."
version: "1.0.0"
source: https://github.com/recursive-ai-oss/onespeech-csharp/blob/63002de486786163a0a7800a51811e76d511fae6/docs/migration/whisperx.md
---

# From WhisperX concepts

This guide uses only the [published package description](https://pypi.org/project/whisperx/), consulted 2026-11-08. It maps a workflow, not Python modules, dictionaries or an API signature.

| Familiar step | OneSpeech equivalent |
|---|---|
| ASR transcription | A `SpeechRecognizer`, or `Speech.Transcribe` for the integrated file path |
| Forced alignment for word timestamps | `Aligner` / `Speech.Align`, with nullable timing and per-word `TimingMethod` |
| Speaker diarization | A `Diarizer` producing original-clock `Turn` values |
| Assigning words to speakers | `TranscriptDiarization.Merge`, greatest covered duration with documented overlap rules |
| Saving segments/words | Immutable `Transcript` and schema-v1 JSON |

The integrated helper performs the supported workflow, but its defaults are different. The default diarizer **does not detect overlap**; use the explicit [Nemotron upgrade](https://recursiveai.org/onespeech/docs/nemotron-diarization/) if you need overlapping turns. An authorized local segmentation-3.0 snapshot can also supply [overlapping turns with our clustering](https://recursiveai.org/onespeech/docs/gated-segmentation/); community-1 has no native pipeline adapter. No noncommercial alignment weights are loaded.

Timing follows the [supported timing policy](https://recursiveai.org/onespeech/docs/word-timing/), not a language-to-aligner dictionary copied from another project. Standalone alignment currently has a 60-second limit. Words without valid timing stay untimed, and words with no covering turn are `Unassigned`; neither is silently fabricated. Inspect [timing and diarization results](https://recursiveai.org/onespeech/docs/results/) before treating labels or boundaries as ground truth.
