89,241 pairs of what a speech recognizer heard someone dictate and the text they meant to type: punctuated, formatted and corrected the way a careful writer would type it, in the speaker's own words. Fillers and false starts go, spoken self-corrections and editing commands are applied, spoken lists become lists, grammar slips are fixed.
It is the training data of Utter's cleanup models
(ductai199x/utter). Its speech counterpart, the audio these transcripts came
from, is ductai199x/dictation-speech (joined on id =
rendition_id).
| split | rows |
|---|---|
| train | 79,246 |
| test | 9,995 |
The split is by passage (a passage's renditions are all in one split) and balanced: test holds 11.1-11.3% of every category, domain, source, license, length and of the rows with a dictionary or with lists off. No pair appears twice.
| column | type | meaning |
|---|---|---|
id | string | <passage id>-<category> |
category | string | how the passage was spoken (below) |
domain | string | what the passage is: chat, prose, qa, abstract, list, everyday-text and so on |
dictated | string | what the speech recognizer (Parakeet) heard: the model's input |
final_text | string | the text the speaker meant to type: the model's target |
dictionary | list of strings | the person's dictionary words given with the request (empty for most rows); some are the right spelling of a misheard word, some are near-misses that must be left alone |
lists | bool | whether spoken lists are to be formatted as lists (false: the request said "Lists: off", keep prose) |
messages | list of {role, content} | the exact chat the model was trained on: system prompt, user message (Dictionary: / Lists: off lines, then Dictated: ...), assistant reply |
source | string | where the passage came from |
source_url | string | the passage's page (for passages Utter's tools wrote, the script that wrote them) |
license | string | the passage's license |
Categories:
| category | spoken | rows |
|---|---|---|
| grammar | with the grammar slips of real speakers, to be corrected | 20,257 |
| amend | with a later edit to something said earlier | 10,057 |
| command | with a spoken editing command ("scratch that") | 9,727 |
| disfluent | with fillers, repeats and false starts | 9,652 |
| correction | with a spoken self-correction ("three, no, four") | 9,535 |
| natural | the passage said plainly | 9,501 |
| explicit | with spoken punctuation ("comma", "new paragraph") | 9,382 |
| restate | said again in other words partway through | 7,154 |
| list | a list, spoken item by item | 3,976 |
| source | rows |
|---|---|
| common-pile/stackexchange | 31,201 |
| synthetic | 17,287 |
| common-pile/arxiv_abstracts | 15,500 |
| common-pile/ubuntu_irc | 12,781 |
| wikimedia/wikipedia | 12,472 |
Passages from Common Pile (Stack Exchange, arXiv abstracts, Ubuntu IRC)
and Wikipedia, plus everyday messages, emails and notes written
for this dataset (synthetic). Every row carries its passage's license:
| license | rows |
|---|---|
| cc-by-sa-4.0 | 36,929 |
| cc-by-sa-3.0 | 17,920 |
| cc0-1.0 | 15,500 |
| public-domain | 12,781 |
| cc-by-sa-2.5 | 6,111 |
The dataset as a whole is CC BY-SA 4.0, as most of its text requires (share-alike; CC BY-SA 2.5 and 3.0 allow
adaptations under later versions). Rows under CC0 or in the public domain keep that status; text written for the
dataset is CC BY-SA 4.0. The passages were adapted (spoken renditions, corrections; see Dataset creation).
Attribution: each row's source_url, the page with the passage and its author.
dictated.?., ,., a space before a
comma); grammar-category targets are their passage with its grammar corrected.lists false, a spoken list's target is written as prose.Public posts (Stack Exchange, IRC) can contain usernames and the occasional personal detail their writers published. Nothing was added; nothing about the people who use Utter is in this dataset.
from datasets import load_dataset
ds = load_dataset("ductai199x/dictation-to-text")
ds["train"][0]["messages"] # ready for chat fine-tuning
@misc{nguyen2026dictation,
author = {Tai Duc Nguyen},
title = {Dictation to Text},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/ductai199x/dictation-to-text}}
}
89,241 pairs of what a speech recognizer heard someone dictate and the text they meant to type: punctuated, formatted and corrected the way a careful writer would type it, in the speaker's own words. Fillers and false starts go, spoken self-corrections and editing commands are applied, spoken lists become lists, grammar slips are fixed.
It is the training data of Utter's cleanup models
(ductai199x/utter). Its speech counterpart, the audio these transcripts came
from, is ductai199x/dictation-speech (joined on id =
rendition_id).
| split | rows |
|---|---|
| train | 79,246 |
| test | 9,995 |
The split is by passage (a passage's renditions are all in one split) and balanced: test holds 11.1-11.3% of every category, domain, source, license, length and of the rows with a dictionary or with lists off. No pair appears twice.
| column | type | meaning |
|---|---|---|
id | string | <passage id>-<category> |
category | string | how the passage was spoken (below) |
domain | string | what the passage is: chat, prose, qa, abstract, list, everyday-text and so on |
dictated | string | what the speech recognizer (Parakeet) heard: the model's input |
final_text | string | the text the speaker meant to type: the model's target |
dictionary | list of strings | the person's dictionary words given with the request (empty for most rows); some are the right spelling of a misheard word, some are near-misses that must be left alone |
lists | bool | whether spoken lists are to be formatted as lists (false: the request said "Lists: off", keep prose) |
messages | list of {role, content} | the exact chat the model was trained on: system prompt, user message (Dictionary: / Lists: off lines, then Dictated: ...), assistant reply |
source | string | where the passage came from |
source_url | string | the passage's page (for passages Utter's tools wrote, the script that wrote them) |
license | string | the passage's license |
Categories:
| category | spoken | rows |
|---|---|---|
| grammar | with the grammar slips of real speakers, to be corrected | 20,257 |
| amend | with a later edit to something said earlier | 10,057 |
| command | with a spoken editing command ("scratch that") | 9,727 |
| disfluent | with fillers, repeats and false starts | 9,652 |
| correction | with a spoken self-correction ("three, no, four") | 9,535 |
| natural | the passage said plainly | 9,501 |
| explicit | with spoken punctuation ("comma", "new paragraph") | 9,382 |
| restate | said again in other words partway through | 7,154 |
| list | a list, spoken item by item | 3,976 |
| source | rows |
|---|---|
| common-pile/stackexchange | 31,201 |
| synthetic | 17,287 |
| common-pile/arxiv_abstracts | 15,500 |
| common-pile/ubuntu_irc | 12,781 |
| wikimedia/wikipedia | 12,472 |
Passages from Common Pile (Stack Exchange, arXiv abstracts, Ubuntu IRC)
and Wikipedia, plus everyday messages, emails and notes written
for this dataset (synthetic). Every row carries its passage's license:
| license | rows |
|---|---|
| cc-by-sa-4.0 | 36,929 |
| cc-by-sa-3.0 | 17,920 |
| cc0-1.0 | 15,500 |
| public-domain | 12,781 |
| cc-by-sa-2.5 | 6,111 |
The dataset as a whole is CC BY-SA 4.0, as most of its text requires (share-alike; CC BY-SA 2.5 and 3.0 allow
adaptations under later versions). Rows under CC0 or in the public domain keep that status; text written for the
dataset is CC BY-SA 4.0. The passages were adapted (spoken renditions, corrections; see Dataset creation).
Attribution: each row's source_url, the page with the passage and its author.
dictated.?., ,., a space before a
comma); grammar-category targets are their passage with its grammar corrected.lists false, a spoken list's target is written as prose.Public posts (Stack Exchange, IRC) can contain usernames and the occasional personal detail their writers published. Nothing was added; nothing about the people who use Utter is in this dataset.
from datasets import load_dataset
ds = load_dataset("ductai199x/dictation-to-text")
ds["train"][0]["messages"] # ready for chat fine-tuning
@misc{nguyen2026dictation,
author = {Tai Duc Nguyen},
title = {Dictation to Text},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/ductai199x/dictation-to-text}}
}