You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d76ceaf
Browse filesBrowse the repository at this point in the historyBrowse files
## Description
- New `createQwen3AsrSpeechToText` task for [Qwen3-ASR
0.6B](https://huggingface.co/Qwen/Qwen3-ASR-0.6B), same
`transcribe`/`stream` API as Whisper; language is auto-detected or
forced via `QWEN3_ASR_LANGUAGES`.
- `useSpeechToText` accepts Qwen3-ASR models; registry entry
`models.speechToText.QWEN3_ASR.SIZE_0_6B` (XNNPACK 8da4w; iOS default
Core ML audio tower + MLX decoder; HF
`react-native-executorch-qwen-3-asr` @ v0.11.0).
- A variant key naming two backends (`MLX_COREML_INT4`) is the default
only when both are linked; loading a method whose backend is not linked
now names it.
- Speech demo screens list the model; docs section added.
### Introduces a breaking change?
- [ ] Yes
- [x] No
### Type of change
- [ ] Bug fix (change which fixes an issue)
- [x] New feature (change which adds functionality)
- [x] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)
### Tested on
- [x] iOS
- [x] Android
### Testing instructions
- `apps/speech`: pick "Qwen3-ASR 0.6B (CPU)" on the audio file or
microphone screen and transcribe.
### Screenshots
### Related issues
#769
### Checklist
- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have updated the documentation accordingly
- [x] My changes generate no new warnings
### Additional notes
- WER on 100 LibriSpeech test-clean clips: 2.46% (fp32 2.14%). Decoder
layer 0 must stay 8-bit or transcripts derail.
- iPhone 16: Core ML + MLX 293 ms per clip vs XNNPACK 468, WER 2.51%.
- No Vulkan: on a Galaxy S26 Ultra it wins prefill but loses encoder and
decode (whole clip 451 vs 360 ms).
- Exporters and findings: export-scripts !41. ExecuTorch fixes found on
the way: pytorch/executorch#24055, #24056.
Copy file name to clipboardExpand all lines: docs/docs/02-extensions/speech/03-speech-to-text.md
+13-7Lines changed: 13 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,15 @@
1
1
---
2
2
title: Speech-to-Text (STT)
3
3
slug: /extensions/speech-to-text
4
-
description: 'Transcribe spoken audio in real time on-device in React Native using OpenAI Whisper with integrated Voice Activity Detection.'
4
+
description: 'Transcribe spoken audio in real time on-device in React Native using OpenAI Whisper or Qwen3-ASR with integrated Voice Activity Detection.'
5
5
keywords:
6
6
[
7
7
react native,
8
8
speech to text,
9
9
stt,
10
10
asr,
11
11
whisper,
12
+
qwen3-asr,
12
13
voice recognition,
13
14
transcription,
14
15
vad,
@@ -20,7 +21,7 @@ keywords:
20
21
21
22
# Speech-to-Text (STT)
22
23
23
-
The Speech-to-Text extension transcribes spoken audio into text directly on-device using OpenAI's Whisper model paired with an integrated FSMN Voice Activity Detector (VAD).
24
+
The Speech-to-Text extension transcribes spoken audio into text directly on-device using OpenAI's Whisper or Alibaba's [Qwen3-ASR](https://huggingface.co/Qwen/Qwen3-ASR-0.6B) paired with an integrated FSMN Voice Activity Detector (VAD).
24
25
25
26
The pipeline supports two primary workflows:
26
27
@@ -206,18 +207,20 @@ See [Worklets & Threading](../../03-core-and-advanced/06-worklets-and-threading.
206
207
207
208
The library provides ready-to-use Whisper models from the [Software Mansion HuggingFace Whisper Collection](https://huggingface.co/collections/software-mansion/whisper), available in [`models.speechToText`](../../06-api-reference/variables/models.md#speechtotext):
208
209
209
-
| Model Family | Variants | Size Range | Supported Backends | Languages | Notes |
|**Whisper Base**|[`Multilingual`](../../06-api-reference/variables/models.md#speechtotextwhisperbase), [`English`](../../06-api-reference/variables/models.md#speechtotextwhisperenbase)| 97.8 MB – 380.2 MB | XNNPACK (CPU), Core ML (Apple), MLX (Apple), Vulkan (Android) | English / [`WHISPER_LANGUAGES`](../../06-api-reference/variables/WHISPER_LANGUAGES.md) (99+ languages) | Balanced accuracy and speed for general voice dictation. |
214
+
|**Whisper Small**|[`Multilingual`](../../06-api-reference/variables/models.md#speechtotextwhispersmall), [`English`](../../06-api-reference/variables/models.md#speechtotextwhisperensmall)| 276.0 MB – 1.05 GB | XNNPACK (CPU), Core ML (Apple), MLX (Apple), Vulkan (Android) | English / [`WHISPER_LANGUAGES`](../../06-api-reference/variables/WHISPER_LANGUAGES.md) (99+ languages) | High-capacity model for complex, noisy, or multi-speaker audio. |
215
+
|**Qwen3-ASR 0.6B**|[`0.6B`](../../06-api-reference/variables/models.md#speechtotextqwen3_asr)| 707.7 MB – 808.1 MB | XNNPACK (CPU), Core ML + MLX (Apple) |[`QWEN3_ASR_LANGUAGES`](../../06-api-reference/variables/QWEN3_ASR_LANGUAGES.md) (30 languages) | Detects the language; pass `language` only to force one. |
214
216
215
217
## API Reference
216
218
217
219
### Hooks & Pipelines
218
220
219
221
-[`useSpeechToText()`](../../06-api-reference/functions/useSpeechToText.md) — React hook for Whisper model loading, downloading, and live transcription state.
220
222
-[`createWhisperSpeechToText()`](../../06-api-reference/functions/createWhisperSpeechToText.md) — Imperative factory for Whisper Speech-to-Text pipelines.
223
+
-[`createQwen3AsrSpeechToText()`](../../06-api-reference/functions/createQwen3AsrSpeechToText.md) — Imperative factory for Qwen3-ASR Speech-to-Text pipelines.
221
224
222
225
### Types & Options
223
226
@@ -226,15 +229,18 @@ The library provides ready-to-use Whisper models from the [Software Mansion Hugg
0 commit comments