ductai199x/dictation-to-text

Dataset

Dictation to Text

1

6 commits

1 linked in READMEs

updated Oct 12, 2026

See the code

README

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).

Dataset structure

splitrows
train79,246
test9,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.

columntypemeaning
idstring<passage id>-<category>
categorystringhow the passage was spoken (below)
domainstringwhat the passage is: chat, prose, qa, abstract, list, everyday-text and so on
dictatedstringwhat the speech recognizer (Parakeet) heard: the model's input
final_textstringthe text the speaker meant to type: the model's target
dictionarylist of stringsthe 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
listsboolwhether spoken lists are to be formatted as lists (false: the request said "Lists: off", keep prose)
messageslist of {role, content}the exact chat the model was trained on: system prompt, user message (Dictionary: / Lists: off lines, then Dictated: ...), assistant reply
sourcestringwhere the passage came from
source_urlstringthe passage's page (for passages Utter's tools wrote, the script that wrote them)
licensestringthe passage's license

Categories:

categoryspokenrows
grammarwith the grammar slips of real speakers, to be corrected20,257
amendwith a later edit to something said earlier10,057
commandwith a spoken editing command ("scratch that")9,727
disfluentwith fillers, repeats and false starts9,652
correctionwith a spoken self-correction ("three, no, four")9,535
naturalthe passage said plainly9,501
explicitwith spoken punctuation ("comma", "new paragraph")9,382
restatesaid again in other words partway through7,154
lista list, spoken item by item3,976

Sources and licensing

sourcerows
common-pile/stackexchange31,201
synthetic17,287
common-pile/arxiv_abstracts15,500
common-pile/ubuntu_irc12,781
wikimedia/wikipedia12,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:

licenserows
cc-by-sa-4.036,929
cc-by-sa-3.017,920
cc0-1.015,500
public-domain12,781
cc-by-sa-2.56,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.

Dataset creation

  1. Passages: real text of the kinds people dictate (questions and answers, chat, notes, prose), filtered to English and to lengths people say in one go; everyday messages written by a language model to cover what the public sources lack.
  2. Spoken renditions: each passage rewritten the way someone would say it, in one of the categories above, by a language model (Gemma 4 26B).
  3. Speech: each rendition spoken by Kokoro-82M (twelve English voices, speaking rate 0.9-1.1).
  4. Recognition: Parakeet (the speech model Utter ships) transcribed the audio; its output, errors and habits included, is dictated.
  5. Dictionary lines added to about a third of the rows.

Final texts

  • The passage itself, as its writer wrote it, with mechanical punctuation slips fixed (?., ,., a space before a comma); grammar-category targets are their passage with its grammar corrected.
  • With lists false, a spoken list's target is written as prose.

Personal and sensitive information

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.

Bias, risks and limitations

  • English only, written-style text; the spoken side is synthetic speech recognized by one model, so real speakers' accents and recognition errors are only partly represented.
  • Technical forums are overrepresented next to everyday writing.
  • Targets were produced with a language model's help and checked automatically, not by people, row by row.

Use

from datasets import load_dataset

ds = load_dataset("ductai199x/dictation-to-text")
ds["train"][0]["messages"]   # ready for chat fine-tuning

Citation

@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}}
}
dictation
disfluency-removal
grammar-correction
self-correction
speech-to-text
text-cleanup

ductai199x/dictation-to-text

Dataset

Dictation to Text

1

6 commits

1 linked in READMEs

updated Oct 12, 2026

See the code

README

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).

Dataset structure

splitrows
train79,246
test9,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.

columntypemeaning
idstring<passage id>-<category>
categorystringhow the passage was spoken (below)
domainstringwhat the passage is: chat, prose, qa, abstract, list, everyday-text and so on
dictatedstringwhat the speech recognizer (Parakeet) heard: the model's input
final_textstringthe text the speaker meant to type: the model's target
dictionarylist of stringsthe 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
listsboolwhether spoken lists are to be formatted as lists (false: the request said "Lists: off", keep prose)
messageslist of {role, content}the exact chat the model was trained on: system prompt, user message (Dictionary: / Lists: off lines, then Dictated: ...), assistant reply
sourcestringwhere the passage came from
source_urlstringthe passage's page (for passages Utter's tools wrote, the script that wrote them)
licensestringthe passage's license

Categories:

categoryspokenrows
grammarwith the grammar slips of real speakers, to be corrected20,257
amendwith a later edit to something said earlier10,057
commandwith a spoken editing command ("scratch that")9,727
disfluentwith fillers, repeats and false starts9,652
correctionwith a spoken self-correction ("three, no, four")9,535
naturalthe passage said plainly9,501
explicitwith spoken punctuation ("comma", "new paragraph")9,382
restatesaid again in other words partway through7,154
lista list, spoken item by item3,976

Sources and licensing

sourcerows
common-pile/stackexchange31,201
synthetic17,287
common-pile/arxiv_abstracts15,500
common-pile/ubuntu_irc12,781
wikimedia/wikipedia12,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:

licenserows
cc-by-sa-4.036,929
cc-by-sa-3.017,920
cc0-1.015,500
public-domain12,781
cc-by-sa-2.56,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.

Dataset creation

  1. Passages: real text of the kinds people dictate (questions and answers, chat, notes, prose), filtered to English and to lengths people say in one go; everyday messages written by a language model to cover what the public sources lack.
  2. Spoken renditions: each passage rewritten the way someone would say it, in one of the categories above, by a language model (Gemma 4 26B).
  3. Speech: each rendition spoken by Kokoro-82M (twelve English voices, speaking rate 0.9-1.1).
  4. Recognition: Parakeet (the speech model Utter ships) transcribed the audio; its output, errors and habits included, is dictated.
  5. Dictionary lines added to about a third of the rows.

Final texts

  • The passage itself, as its writer wrote it, with mechanical punctuation slips fixed (?., ,., a space before a comma); grammar-category targets are their passage with its grammar corrected.
  • With lists false, a spoken list's target is written as prose.

Personal and sensitive information

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.

Bias, risks and limitations

  • English only, written-style text; the spoken side is synthetic speech recognized by one model, so real speakers' accents and recognition errors are only partly represented.
  • Technical forums are overrepresented next to everyday writing.
  • Targets were produced with a language model's help and checked automatically, not by people, row by row.

Use

from datasets import load_dataset

ds = load_dataset("ductai199x/dictation-to-text")
ds["train"][0]["messages"]   # ready for chat fine-tuning

Citation

@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}}
}
dictation
disfluency-removal
grammar-correction
self-correction
speech-to-text
text-cleanup